reporting-services - 报告服务: Join all field on a dataset

标签 reporting-services report ssrs-2008 reporting

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

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

我需要在所有位置显示所有名称的串联:

Name1 / Name2 / Name3

问题在于join方法仅适用于数组,因此我无法将数据集指定为值。

我也查看了自定义代码,但没有找到任何有效的方法。

我该怎么办?

最佳答案

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.使用矩阵
哦,男孩,这真丑。尽管如此,这里要做的是:创建一个矩阵,将“名称”字段拖到列标题中,并隐藏第一列和第二行(用于显示数据)。

主要缺点是它很容易破解(并且有些过分杀伤力),另外,您还必须使用表达式手动修剪最后一个分隔符。

关于reporting-services - 报告服务: Join all field on a dataset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997770/

相关文章:

sql - 将多值参数传递给子报表

sql-server - 如何使用Visual Studio 2012 创建SQL Server Reporting Service 2012 项目?

mysql - 多对多查询到多个列以进行报告

ssrs-2008 - 通过链接报告中的返回链接按钮返回原始报告,并在主报告中使用多选参数

sql-server - SSRS 报表生成器 2.0 - 与 SQL 2005 一起使用

reporting-services - 为 Reporting Services 启用 CORS

reporting-services - 面板中的 SSRS 自动适配仪表

ms-access - 如何在 MS Access 中自动重新加载报告?

c# - 如何在报表中使用表单控件属性?

sql-server - 如何在SSRS中使用多值参数列表过滤列