powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS - матричный отчет.
6 сообщений из 6, страница 1 из 1
SSRS - матричный отчет.
    #38978730
Андрей_Вин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.
Столкнулся с жизненной необходимостью нарисовать матричный отчет.
С источником данных проблем не возникло, а вот с визуализацией что-то не разберусь никак.
Источник данных имеет 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
SSRS - матричный отчет.
    #38979817
Андрей_Вин,

17747892
...
Рейтинг: 0 / 0
SSRS - матричный отчет.
    #38979885
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"можно решить на T-SQL" - не вариант... решить-то можно, как отрисовывать будем?
Используйте Matrix. Возможно, проще будет добавить еще одно поле в DataSet... типа номер строки в группе, например, для ms sql через row_number() over ( partition by col order by data1 asc ), если я вас правильно понял...
Как-то так...
...
Рейтинг: 0 / 0
SSRS - матричный отчет.
    #38979926
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
я объясню, почему репортинг не соглашается на такое.
сначала надо навести порядок в том, чего хочется.
и точно это сформулировать.
у репортинга все просто до безобразия, надо только определиться, это будет 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
SSRS - матричный отчет.
    #38979929
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
...
Рейтинг: 0 / 0
SSRS - матричный отчет.
    #38979931
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
теперь совсем уж ваш результат можно получить,
задав еще и приоритет между 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
6 сообщений из 6, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS - матричный отчет.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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