SSRS 显示并排显示 table 个组
SSRS Display display table groups side by side
因为我没有为我的问题找到好的解决方案,所以我希望得到你的专业知识。
在 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
上的列分组。
我只能创建假组和真组一个接一个而不是并排出现的表格。
我应该如何设置表格?
Tracking_Print_Right_Side是我自己创造的
主要是我会在中间拆分Charge组来保存space在报表中使用报表的整个宽度
此致
比约恩
您可以在 SSRS
中使用矩阵代替 table
您可以通过 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
这给了我们以下结果...
如果我们查看序列号 SN00050 和 SN00043,它们的 RowN = 1
我们现在可以使用它在报告中分组。
这是包含行组的报表设计。 注意为了清楚起见,我保留了 RowN 列,但您不需要它,只要行组存在,您就可以删除该列。
当我们 运行 报告时,我们得到以下...
因为我没有为我的问题找到好的解决方案,所以我希望得到你的专业知识。
在 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
上的列分组。
我只能创建假组和真组一个接一个而不是并排出现的表格。
我应该如何设置表格?
Tracking_Print_Right_Side是我自己创造的
主要是我会在中间拆分Charge组来保存space在报表中使用报表的整个宽度
此致
比约恩
您可以在 SSRS
中使用矩阵代替 table您可以通过 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
这给了我们以下结果...
如果我们查看序列号 SN00050 和 SN00043,它们的 RowN = 1
我们现在可以使用它在报告中分组。
这是包含行组的报表设计。 注意为了清楚起见,我保留了 RowN 列,但您不需要它,只要行组存在,您就可以删除该列。
当我们 运行 报告时,我们得到以下...