2013-11-20 76 views
4

我有一份报告,其中用户可以在其中一个参数列表中选择多个项目。点击报告将打开一个子报告,并将参数传递给子报告。如果只有一个项目被选中,那么这工作正常。如果选择了多个项目,则只有参数列表中的一个项目被传递给子报告。ssrs 2008将参数列表传递给子报表

父报告正常工作,子报告只显示第一项。 我正在使用SSRS 2008 R2。 我怎样才能让子报告接受传递参数的所有项目?

回答

11

有几件事情要检查:

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

Here's a link到一个博客,该博客有一个人将多值参数传递给子报表的截图。

+0

谢谢,非常有帮助。 –

0

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

相关问题