报告服务:加入数据集上的所有字段

时间:2012-06-12 13:31:20

标签: reporting-services report ssrs-2008 reporting

在报告中,我有一个带过滤器的数据集(基于MultiValue参数)。

此数据集包含两个字段:Id和Name。

我需要在某处显示所有名称的串联:

Name1 / Name2 / Name3

问题是join方法仅适用于数组,然后我无法将数据集指定为值。

我也查看了自定义代码,但我没有找到任何工作。

我该怎么做?

2 个答案:

答案 0 :(得分:15)

我可能会有点迟到,但对于对此感兴趣的人,在SSRS中有一个相当简单的方法:

=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName")," / ")

答案 1 :(得分:2)

SSRS-2008 R2 及更高......

<强> 1。使用LookupSet
如果你超出了OP版本的2008版本,那么就有一个很好的解决方案:

=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), " / ")

使用the LookupSet solution对此答案的评分完全归@urbanhusky's answer


SSRS-2008及更低......

我保留了这个答案,因为它汇总了@ urbanhusky的解决方案,以及那些坚持使用OP版本的SSRS及以下版本的穷人可用的解决方案。

在SSRS 2008中,据我所知,只有三个“选项”,每个选项都有自己的缺点。第一个可能是最不讨人喜欢的。

<强> 2。额外参数
使用允许多个值创建内部参数(例如“NameParameter”,请参阅this SO answerMSDN)。将参数的默认值设置为数据集中的Name字段。然后使用函数=Join(Parameters!NameParameter.Value, " / ")在文本框中显示已连接的名称。

这可能是您最好的选择,但如果有很多值,参数可能无法正常运行。

第3。使用列表
创建一个列表并将名称字段拖放到它。如有必要,也可以在名称上进行分组。

这里的缺点是(AFAIK)无法使列表水平显示。

<强> 4。使用矩阵
哦,男孩,这个真的很难看。尽管如此,这里是:创建一个矩阵,将Name字段拖到列标题,并隐藏第一列和第二行(用于显示数据)。

主要的缺点是它是一个黑客(而且有点过分杀戮),而且你必须用表达式手动修剪最后一个分隔符。