SSRS Отображение групп отображаемых таблиц бок о бок - PullRequest
0 голосов
/ 17 июня 2020

Поскольку я не нашел подходящего решения для своей проблемы, я надеюсь на ваш опыт.

В отчете SSRS у меня есть такой набор данных:

| Tracking_Print_Right_Side | Tracking_Title_No | Tracking_Serial_No | Tracking_Lot_No |
| Nein | 002 | SN00043 | CHARGE0015 |
| Nein | 002 | SN00044 | CHARGE0015 |
| Nein | 002 | SN00045 | CHARGE0015 |
| Ja | 002 | SN00050 | CHARGE0015 |
| Ja | 002 | SN00051 | CHARGE0016 |
| Ja | 002 | SN00052 | CHARGE0016 |
| Nein | 003 | XYZ01125 | CHARGE0017 |
| Nein | 003 | XYZ01126 | CHARGE0017 |
| Nein | 003 | XYZ01127 | CHARGE0017 |
| Nein | 003 | XYZ01128 | CHARGE0017 |
| Ja | 003 | XYZ01135 | CHARGE0017 |
| Ja | 003 | XYZ01136 | CHARGE0017 |
| Ja | 003 | XYZ01137 | CHARGE0017 |
| Ja | 003 | XYZ01138 | CHARGE0017 |

Пример: Ja = True, Nein = False

В качестве результата я напечатаю это так:

|     |            | False    | True     |
| 002 | CHARGE0015 | SN00043  | SN00050  |
|     |            | SN00044  |          |
|     |            | SN00045  |          |
|     | CHARGE0016 |          | SN00051  |
|     |            |          | SN00052  | 
| 003 | CHARGE0017 | XYZ01125 | XYZ01135 |
|     |            | XYZ01126 | XYZ01136 |
|     |            | XYZ01127 | XYZ01137 |
|     |            | XYZ01128 | XYZ01136 |

Группировка строк на Tracking_Title_No и Tracking_Lot_No и группировка столбцов на Tracking_Print_Right_Side

Я могу создавать только таблицы, в которых группы False и True идут одна за другой, а не бок о бок.

Как мне настроить столы? Tracking_Print_Right_Side создан мной. В основном я разделю группу Charge посередине, чтобы сэкономить место в отчете и использовать всю ширину отчета.

С уважением

Bjoern

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Вы можете сделать это довольно легко, немного поработав в SQL.

Здесь я воспроизвел ваши данные и добавил новый столбец RowN, который мы затем можем использовать в отчете, чтобы получить желаемый результат.

Вот полный запрос

DECLARE @t TABLE (Tracking_Print_Right_Side sysname,Tracking_Title_No sysname, Tracking_Serial_No sysname, Tracking_Lot_No sysname)

INSERT INTO @t values 
('Nein' , '002', 'SN00043', 'CHARGE0015'),
('Nein' , '002', 'SN00044', 'CHARGE0015'),
('Nein' , '002', 'SN00045', 'CHARGE0015'),
('Ja' , '002', 'SN00050', 'CHARGE0015'),
('Ja' , '002', 'SN00051', 'CHARGE0016'),
('Ja' , '002', 'SN00052', 'CHARGE0016'),
('Nein' , '003', 'XYZ01125', 'CHARGE0017'),
('Nein' , '003', 'XYZ01126', 'CHARGE0017'),
('Nein' , '003', 'XYZ01127', 'CHARGE0017'),
('Nein' , '003', 'XYZ01128', 'CHARGE0017'),
('Ja' , '003', 'XYZ01135', 'CHARGE0017'),
('Ja' , '003', 'XYZ01136', 'CHARGE0017'),
('Ja' , '003', 'XYZ01137', 'CHARGE0017'),
('Ja' , '003', 'XYZ01138', 'CHARGE0017')

SELECT 
    Tracking_Title_No
    , Tracking_Lot_No
    , Tracking_Print_Right_Side
    , Tracking_Serial_No
    , RowN = ROW_NUMBER() OVER(PARTITION BY Tracking_Print_Right_Side, Tracking_Lot_No, Tracking_Title_No ORDER BY Tracking_Serial_No)
FROM @t

Это дает нам следующие результаты ...

enter image description here

Если мы посмотрим на серийные номера SN00050 и SN00043, у них обоих RowN = 1

Теперь мы можем использовать это для группировки в отчете.

Вот дизайн отчета, включая группы строк. ПРИМЕЧАНИЕ Я оставил столбец RowN для ясности, но он вам не нужен, пока присутствует группа строк, вы можете удалить столбец.

enter image description here

Когда мы запускаем отчет, мы получаем следующее ...

enter image description here

0 голосов
/ 17 июня 2020

Вы можете использовать матрицу вместо таблицы в SSRS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...