2015-10-06 65 views
0

这里是我的问题SSRS掩盖是连续

我有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)

它不起作用,只有列6可以隐藏这样一个例外,并且它会在我的报告中留下“漏洞”,因为行组仍然出现在行前。

我怎么能做到这一点?

+0

你能不能展示你的报表设计呢? –

+0

根据您的示例,我无法确定您尝试实施的业务规则。 “应显示”示例中的前两行似乎重叠(即“1到3”和“3”)? – Nathan

+0

@Nathan谢谢你指出我错误,我编辑了我的示例以删除重叠的行。 –

回答

0

细胞表达我找到了解决办法,但没有SSRS:我已经通过修改查询修改我的数据集的结果完成了。解决方案与此帖有关:Group consecutive rows that are incremented by 1。我的任何尝试使用SSRS来做同样的事情都是成功的。

0

听起来好像你应该使用分组来处理这个问题 - 无论是在数据集的源查询还是报表本身。如果我在报告中这样做,根据您的示例数据集我想有一个桌子,上面所有这些列中的值分组:

BRAND 
MODEL 
SUB-MODEL 
PRICE 
DATE 

它也像有串行的第一位数字的分组(即(1)00001,(1)00002,(2)00005)。由于SERIAL是一个整数,你应该能够使用分组表达式像=Left(CStr(Fields!SERIAL.Value), 1)然后的类似=Min(Fields!SERIAL.Value) & " to " & Max(Fields!SERIAL.Value)

+0

对不起,但串行是我可以使用的分组:它可能是从1开始,在1000000左右完成的数字。如果这个例子能给出这个错误的想法,我很抱歉。我目前也试图从提取数据的位置格式化存储过程,以获得预期的结果,但由于我使用的是不支持某些功能的旧数据库,所以它也很棘手。 –

+0

您需要解释从示例数据集到“应该显示的内容”示例中涉及的业务规则,否则将很难提供有用的解决方案。例如,如果您没有对序列号的第一个数字进行分组,那么为什么序列号为“100001到200006”的前两行(它们是相同的)会分成这些序列号序列,而不是一行? – Nathan