Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS - матричный отчет. / 6 сообщений из 6, страница 1 из 1
08.06.2015, 10:39
    #38978730
Андрей_Вин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS - матричный отчет.
Всем доброго дня.
Столкнулся с жизненной необходимостью нарисовать матричный отчет.
С источником данных проблем не возникло, а вот с визуализацией что-то не разберусь никак.
Источник данных имеет 3 поля
1 - это номер столбца от 1 до 3
2 - название товара
3 - ШК товара

Т.е как то вот так:

col data1 data2
1 1111111 ШК
1 2222222 ШК2
1 3333333 ШК3
2 4444444 ШК4
2 5555555 ШК5
2 6666666 ШК6
3 7777777 ШК7
3 8888888 ШК8
3 9999999 ШК9


Хотелось бы получить следующее

1 2 3
ШК ШК4 ШК7
11111 444444 777777
ШК2 ШК5 ШК8
22222 555555 888888
ШК3 ШК6 ШК9
33333 666666 999999


Заранее спасибо всем за ответы
...
Рейтинг: 0 / 0
09.06.2015, 10:27
    #38979817
SSRS - матричный отчет.
Андрей_Вин,

17747892
...
Рейтинг: 0 / 0
09.06.2015, 10:57
    #38979885
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS - матричный отчет.
"можно решить на T-SQL" - не вариант... решить-то можно, как отрисовывать будем?
Используйте Matrix. Возможно, проще будет добавить еще одно поле в DataSet... типа номер строки в группе, например, для ms sql через row_number() over ( partition by col order by data1 asc ), если я вас правильно понял...
Как-то так...
...
Рейтинг: 0 / 0
09.06.2015, 11:28
    #38979926
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS - матричный отчет.
я объясню, почему репортинг не соглашается на такое.
сначала надо навести порядок в том, чего хочется.
и точно это сформулировать.
у репортинга все просто до безобразия, надо только определиться, это будет list или matrix.
он даже в визарде рисует, что чем он называет.
ну так если вы хотите list, а вы именно его хотите, то самому надо развернуть, как надо,
и ему подсунуть.

можно и через matrix, потом скрыть ненужное слева
(сейчас покажу картинкой)
но тогда надо же продумать rows.
репортинг не может за вас решить, какой у вас порядок.
col -- номер колонки, ok, но 2 вопроса:
1. почему в столбцах не задан порядок строк, сперва data1 или data2?
2. каков вообще порядок строк, ну почему у вас
10 20 30
ШК1 ШК4 ШК7
11111 444444 777777
ШК2 ШК5 ШК8
22222 555555 888888

а не
10 20 30
ШК1 ШК4 ШК7
11111 555555 777777
ШК2 ШК5 ШК8
22222 444444 888888
?

и как он об этом должен догадаться?
----
отвечаете на "его" вопросы, и все получится.
допустим, порядок записей в каждом столбце определяется как order by data1,
получим вот такое
(пока что мы задали порядок только для data1, data2 "вместе")
...
Рейтинг: 0 / 0
09.06.2015, 11:29
    #38979929
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS - матричный отчет.
...
Рейтинг: 0 / 0
09.06.2015, 11:30
    #38979931
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS - матричный отчет.
теперь совсем уж ваш результат можно получить,
задав еще и приоритет между data1, data2, относящимся к одной строке в одной колонке:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with cte as (
select *, ROW_NUMBER() over (partition by col order by data1) rn
from (values
(10, '1111111', N'ШК'),
(10, '2222222', N'ШК2'),
(10, '3333333', N'ШК3'),
(20, '4444444', N'ШК4'),
(20, '5555555', N'ШК5'),
(20, '6666666', N'ШК6'),
(30, '7777777', N'ШК7'),
(30, '8888888', N'ШК8')
)
v(col, data1, data2) 
)

select col, rn,
       case n when 2 then data1
              when 1 then data2
       end as data, n       
from cte 
cross join (values (1),(2))num(n)
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS - матричный отчет. / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]