SSRS多值参数到多行表

时间:2017-01-31 09:13:15

标签: reporting-services ssrs-2008 ssrs-2012

我想生成一个带有多值参数的多行表。

我现在唯一能做的就是将指定的参数传递给每一行,如下所示:

=Parameters!P.Value(0)  
=Parameters!P.Value(1)  
...  
=Parameters!P.Value(n)

有没有办法动态地做到这一点?

2 个答案:

答案 0 :(得分:1)

有趣的问题,我唯一能想到的是将参数数组转换为数据集中的xml,然后通过xml节点将其转换为表。

数据集参数(让我们称之为@par)然后应该在表达式中设置为:

= "<n>" + join(Parameters!P.Value,"</n><n>") + "</n>"

然后对数据集的查询将是:

declare @parxml xml = @par
Select p.query('./text()')
from @parxml.nodes('/n') as T(p)

这将提供一个表,每个选定的参数值都有一行。

答案 1 :(得分:1)

最后我找到了一个很好的解决方案 (记住P是一个多值参数.. es。P = a; b; c; d; e)

首先添加一个数据集,该数据集指向由数字渐进字段(id)组成的表(数据库),如下所示:(记得将表中包含多行&gt; =加载到多个值中的可能数量的值) -value-parameter ...或者只是加载10000行,我想你会好的)

enter image description here

然后在报告中添加一个表格:字段 id (来自Dataset1)和以下表达式(代表参数P):

=Parameters!P.Value(Fields!id.Value)

enter image description here

现在,如果您运行报告,您将获得以下内容:

enter image description here

要删除#Error行,只需像下面一样过滤整个表,就完成了!

enter image description here