我正在为Server 2008 R2运行SSRS并在Report Builder 3.0中创建报告
我有一份名为“缺失周”的报告,这些报告向我展示了我们错过公司财务报表的一年中的数周。现在,报告显示了报告单独行中所有缺失的周数,如下所示:
Group Cmp_code town Owner Year Week
001 004 townname mr ozzy 2012 50
52
2013 25
26
005 townname mr bark 2013 32
33
002 235 townname mr woof 2013 17
ETC..
是否有可能让所有周都显示在该组和cmp_code的同一行?
Group Cmp_code town Owner Year Week
001 004 townname mr ozzy 2012 50, 52
2013 25, 26, etc...
005 townname mr bark 2013 32, 33, etc...
002 235 townname mr woof 2013 17
理想情况下,我想在SSRS中实现这一点,而不是改变我在sql server上所做的事情。
答案 0 :(得分:2)
您可以使用LookupSet功能来帮助解决此问题。
这是我的测试数据集:
我在数据集中添加了一个名为CmpYear
的计算字段,其表达式为:
=Fields!Cmp_code.Value & CStr(Fields!Year.Value)
我们稍后会使用它。
现在,制作报告表:
您可以看到基于Group
,Cmp_code
和Year
的行组。我假设town
和Owner
基于Cmp_code
。
最重要的部分是Week
的表达式:
=Join(LookupSet(Fields!CmpYear.Value, Fields!CmpYear.Value, Fields!Week.Value, "DataSet1")
, ",")
由于我们对特定公司/年组合的所有周数感兴趣,因此我们使用基于这些的计算字段作为查找键 - 使用此LookupSet
返回特定公司中所有周的数组/ year group,然后我们使用Join
将数组转换为分隔列表:
对我来说很好看。当然,您可能需要稍微更改您的基础数据,但希望这会为您提供一些有用的想法。
答案 1 :(得分:0)
在本周创建一个列组。