ssrs 2008将参数列表传递给子报表

时间:2013-11-20 13:34:23

标签: sql-server reporting-services sql-server-2008-r2

我有一个报告,用户可以在列表中为其中一个参数选择多个项目。单击报告将打开一个子报告,参数将传递给子报告。如果只选择了一个项目,那么这很好。如果选择了多个项目,则参数列表中只有一个项目将传递给子报告。

父报告正常,子报告仅显示第一个项目。 我正在使用SSRS 2008 R2。 如何让子报告接受传递参数的所有项目?

2 个答案:

答案 0 :(得分:11)

要检查的一些事项:

  1. 确保子报表中的参数设置为允许多个值。
  2. 确保将参数从主报表传递到子报表[@paramName]而不是"=Parameters!ParamName.Value(0)",因为这表示仅检索第一个值。
  3. 将子报表参数设置为可见,并确保手动选择/输入多个值可返回相应的结果。
  4. 如果所有其他方法都失败了,请尝试使用像=Split(join(Parameters!ParamName.Value,","),",")这样的公式,它会创建一个以逗号分隔的参数值列表,然后将其拆分为数组。

答案 1 :(得分:0)

我在sql中使用了一种解决方法,因为在ssrs中使用多个参数很麻烦。正如mmarie所说,首先连接参数中的多个值(= Split(join(Parameters!ParamName.Value,“,”),“,”)),然后使用字符串比较检查子报表中的项目。 它通常会提供类似WHERE'%,'+ subreport_item +',%'LIKE','+ parent_report_multiple_parameters +',' 这是一个快速肮脏的解决方案......