这是我的问题
我有一个包含5个行组的结果集,在显示的另一个日期(组外)我需要显示一个数字,但是为了缩小表格,我想掩盖所有跟随第一个的数字。
我的虚构数据集示例(销毁产品列表):
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可以被这样的例外隐藏,并且它会离开" hole"在我的报告中,因为行组仍然出现在行前面。
我怎么能实现这个目标?
答案 0 :(得分:0)
听起来您应该使用分组来处理 - 无论是在数据集的源查询中,还是在报表本身中。如果我在报告中这样做,根据您的示例数据集,我将有一个表格,对所有这些列的值进行分组:
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)
答案 1 :(得分:0)
我找到了一个解决方案但没有SSRS:我通过修改已完成的查询修改了数据集的结果。解决方案与此帖有关:Group consecutive rows that are incremented by 1。我没有尝试使用SSRS做同样的事情。