SSRS 屏蔽连续的行
SSRS mask rows that are consecutive
这是我的问题
我有一个包含 5 行组的结果集,在显示的另一个日期(组外)我需要显示一个数字,但为了缩小 table 我想屏蔽第一个数字之后的所有数字。
我虚构的数据集示例(销毁产品列表):
BRAND MODEL SUB-MODEL PRICE DATE SERIAL(always an integer)
A1 M1 SM-M11 100.0 2015-09-01 100001
A1 M1 SM-M11 100.0 2015-09-01 100002
A1 M1 SM-M11 100.0 2015-09-01 100003
A1 M1 SM-M11 100.0 2015-09-01 200005
A1 M1 SM-M11 100.0 2015-09-01 200006
SkyNet T800 101 112.0 1984-10-26 1235
SkyNet T1000 T1001 1000.0 1991-07-01 1287
SW R2 D2 130.0 1977-05-25 5351
SW R2 D2 130.0 1977-05-25 5352
SW R2 D2 130.0 1977-05-25 5353
这是应该显示的内容
------------------------------------------------------------------------
| BRAND | MODEL | SUB-MODEL | PRICE | DATE | SERIAL |
------------------------------------------------------------------------
| A1 | M1 | SM-M11 | 100.0 | 2015-09-01 | 100001 to 100003 |
| A1 | M1 | SM-M11 | 100.0 | 2015-09-01 | 200005 to 200006 |
| Skynet | T800 | 101 | 112.0 | 1984-10-26 | 1235 |
| SW | T1000 | T1001 | 1000.0 | 1991-07-01 | 1287 |
| SW | R2 | D2 | 130.0 | 1977-05-25 | 5351 to 5353 |
------------------------------------------------------------------------
如果我想隐藏基于这个表达式的行
=CStr(Previous(Fields!Column6.Value)+1) = Cstr(Fields!Column6.Value)
它不起作用,只有 Column6 可以隐藏这种异常,它在我的报告中留下 "holes",因为行组仍然出现在该行的前面。
我怎样才能做到这一点?
听起来您应该使用分组来处理此问题 - 无论是在您对数据集的源查询中,还是在报表本身中。如果我在报告中这样做,根据您的示例数据集,我将有一个 table 对所有这些列的值进行分组:
BRAND
MODEL
SUB-MODEL
PRICE
DATE
SERIAL的第一位数字似乎也有一个分组(即(1)00001,(1)00002,(2)00005)。由于 SERIAL 是一个整数,因此您应该能够使用 =Left(CStr(Fields!SERIAL.Value), 1)
之类的分组表达式,然后使用 =Min(Fields!SERIAL.Value) & " to " & Max(Fields!SERIAL.Value)
之类的单元格表达式
我找到了一个没有 SSRS 的解决方案:我通过修改已完成的查询修改了我的数据集的结果。解决方案与此 post 相关:。 None 我使用 SSRS 进行同样的尝试是成功的。
这是我的问题
我有一个包含 5 行组的结果集,在显示的另一个日期(组外)我需要显示一个数字,但为了缩小 table 我想屏蔽第一个数字之后的所有数字。
我虚构的数据集示例(销毁产品列表):
BRAND MODEL SUB-MODEL PRICE DATE SERIAL(always an integer)
A1 M1 SM-M11 100.0 2015-09-01 100001
A1 M1 SM-M11 100.0 2015-09-01 100002
A1 M1 SM-M11 100.0 2015-09-01 100003
A1 M1 SM-M11 100.0 2015-09-01 200005
A1 M1 SM-M11 100.0 2015-09-01 200006
SkyNet T800 101 112.0 1984-10-26 1235
SkyNet T1000 T1001 1000.0 1991-07-01 1287
SW R2 D2 130.0 1977-05-25 5351
SW R2 D2 130.0 1977-05-25 5352
SW R2 D2 130.0 1977-05-25 5353
这是应该显示的内容
------------------------------------------------------------------------
| BRAND | MODEL | SUB-MODEL | PRICE | DATE | SERIAL |
------------------------------------------------------------------------
| A1 | M1 | SM-M11 | 100.0 | 2015-09-01 | 100001 to 100003 |
| A1 | M1 | SM-M11 | 100.0 | 2015-09-01 | 200005 to 200006 |
| Skynet | T800 | 101 | 112.0 | 1984-10-26 | 1235 |
| SW | T1000 | T1001 | 1000.0 | 1991-07-01 | 1287 |
| SW | R2 | D2 | 130.0 | 1977-05-25 | 5351 to 5353 |
------------------------------------------------------------------------
如果我想隐藏基于这个表达式的行
=CStr(Previous(Fields!Column6.Value)+1) = Cstr(Fields!Column6.Value)
它不起作用,只有 Column6 可以隐藏这种异常,它在我的报告中留下 "holes",因为行组仍然出现在该行的前面。
我怎样才能做到这一点?
听起来您应该使用分组来处理此问题 - 无论是在您对数据集的源查询中,还是在报表本身中。如果我在报告中这样做,根据您的示例数据集,我将有一个 table 对所有这些列的值进行分组:
BRAND
MODEL
SUB-MODEL
PRICE
DATE
SERIAL的第一位数字似乎也有一个分组(即(1)00001,(1)00002,(2)00005)。由于 SERIAL 是一个整数,因此您应该能够使用 =Left(CStr(Fields!SERIAL.Value), 1)
之类的分组表达式,然后使用 =Min(Fields!SERIAL.Value) & " to " & Max(Fields!SERIAL.Value)
我找到了一个没有 SSRS 的解决方案:我通过修改已完成的查询修改了我的数据集的结果。解决方案与此 post 相关: