在报告中,我有一个带有过滤器的数据集(基于 MultiValue 参数)。
该数据集包含两个字段:Id 和 Name。
我需要在某处显示所有名称的串联:
Name1 / Name2 / Name3
问题是该join
方法仅适用于数组,然后我无法将数据集指定为值。
我也查看了自定义代码,但没有发现任何工作。
我该怎么做?
在报告中,我有一个带有过滤器的数据集(基于 MultiValue 参数)。
该数据集包含两个字段:Id 和 Name。
我需要在某处显示所有名称的串联:
Name1 / Name2 / Name3
问题是该join
方法仅适用于数组,然后我无法将数据集指定为值。
我也查看了自定义代码,但没有发现任何工作。
我该怎么做?
我可能有点晚了,但对于任何对此感兴趣的人,在 SSRS 中有一种相当简单的方法可以做到这一点:
=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName")," / ")
1.使用LookupSet
如果你超过了2008版本的OP,有一个很好的解决方案:
=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), " / ")
使用该LookupSet
解决方案的答案完全归功于@urbanhusky 的答案。
不过,我保留了这个答案,因为它将@urbanhusky 的解决方案与被困在 OP 的 SSRS 及以下版本的可怜的灵魂可用的解决方案相结合。
据我所知,在 SSRS 2008 中只有三个“选项”,每个选项都有自己的缺点。第一个可能是最不黑客的。
2.额外参数
创建一个内部参数(例如“NameParameter”,参见这个SO答案或MSDN),允许多个值。将参数的默认值设置为Name
数据集中的字段。然后使用该函数=Join(Parameters!NameParameter.Value, " / ")
在文本框中显示连接的名称。
这可能是您最好的选择,但如果有很多值,则该参数可能无法很好地工作。
3. 使用列表
创建一个列表并将名称字段拖放到其中。如有必要,也可以对名称进行分组。
这里的缺点是(AFAIK)列表不能水平显示。
4. 使用矩阵
哦,男孩,这个真的很丑。尽管如此,这里是:创建一个矩阵,将名称字段拖到列标题,并隐藏第一列以及第二行(用于显示数据)。
主要缺点是它是一种 hack(而且相当过分),而且您必须使用表达式手动修剪最后一个分隔符。