我有一个报告,用户可以在列表中为其中一个参数选择多个项目。单击报告将打开一个子报告,参数将传递给子报告。如果只选择了一个项目,那么这很好。如果选择了多个项目,则参数列表中只有一个项目将传递给子报告。
父报告正常,子报告仅显示第一个项目。 我正在使用SSRS 2008 R2。 如何让子报告接受传递参数的所有项目?
答案 0 :(得分:11)
要检查的一些事项:
[@paramName]
而不是"=Parameters!ParamName.Value(0)"
,因为这表示仅检索第一个值。 =Split(join(Parameters!ParamName.Value,","),",")
这样的公式,它会创建一个以逗号分隔的参数值列表,然后将其拆分为数组。答案 1 :(得分:0)
我在sql中使用了一种解决方法,因为在ssrs中使用多个参数很麻烦。正如mmarie所说,首先连接参数中的多个值(= Split(join(Parameters!ParamName.Value,“,”),“,”)),然后使用字符串比较检查子报表中的项目。 它通常会提供类似WHERE'%,'+ subreport_item +',%'LIKE','+ parent_report_multiple_parameters +',' 这是一个快速肮脏的解决方案......