【问题标题】:ssrs 2008 passing a parameter list to a subreportssrs 2008 将参数列表传递给子报表
【发布时间】:2013-11-20 13:34:23
【问题描述】:
我有一个报告,用户可以在其中为其中一个参数选择列表中的多个项目。单击报告会打开一个子报告,其中将参数传递给子报告。如果只选择了一个项目,那么这工作正常。如果选择了多项,则参数列表中只有一项会传递给子报表。
父报表工作正常,子报表只显示第一项。
我正在使用 SSRS 2008 R2。
如何让子报告接受传递参数的所有项目?
【问题讨论】:
标签:
sql-server
reporting-services
sql-server-2008-r2
【解决方案1】:
需要检查的几件事:
- 确保子报表中的参数设置为允许多个值。
- 确保将参数从主报表传递到子报表
[@paramName] 而不是"=Parameters!ParamName.Value(0)",因为这表示只检索第一个值。
- 将子报表参数设置为可见并确保手动选择/输入多个值会返回适当的结果。
- 如果其他方法都失败了,请尝试使用类似
=Split(join(Parameters!ParamName.Value,","),",") 的公式,它会创建一个以逗号分隔的参数值列表,然后将其拆分为一个数组。
【解决方案2】:
我在 sql 中使用了一种解决方法,因为在 ssrs 中使用多个参数很痛苦。正如 mmarie 所说,首先连接参数中的多个值 (=Split(join(Parameters!ParamName.Value,","),",")),然后使用字符串比较检查子报表中的项目。
它通常给出类似 WHERE '%,'+subreport_item+',%' LIKE ','+parent_report_multiple_parameters+','
这是一个快速肮脏的解决方案......