将一个标签的多个值作为参数

时间:2017-02-02 11:35:37

标签: sql-server reporting-services

如何在SSRS2016中为一个标签传递多个值作为参数?

我的数据集看起来像(我可以根据需要修改VALUE列):

LABEL VALUE
XXX   10, 12
YYY   11
AAA   90, 80, 70

所以每行包含多个值(具有相同的位数)。我用它来过滤报告级别的数据集。我不想在单独的行中显示每个值,因为LABEL将被复制。

这是我的一个试验:

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以设置参数以使用您在OP中发布的数据集。请务必删除逗号和数字之间的每个空格。

LABEL VALUE
XXX   10,12
YYY   11
AAA   90,80,70

然后在过滤器中你只需要在tablix过滤器中使用SPLIT函数:

enter image description here

对于Value,请使用以下表达式:

=Split(Parameters!ParamX.Value,",")

ParamX是您的文字参数,而[Code]是您想要过滤的列Fields!Code.Value

此外,如果您的Fields!Code.Value是整数字段,则必须将其转换为字符串才能生效,因此您可以在Expression文本框中使用以下表达式:

=Cstr(Fields!Code.Value)

更新请注意,您可以使用<{1}}函数获取Split(),使用一个值过滤列,并让报告首先使用过滤器评估过滤器10,12然后10等等。

所以这种方法会过滤这样的数据集:

12

因此,如果您在参数中选择标签Code Row 10 1 11 2 80 3 70 4 103 5 ,它将过滤第3行和第4行。

更新2 支持多值参数。

如果您的参数设置为AAA,则必须混合使用Allow multiple valuesSPLIT个功能:

用以下代码替换Value表达式:

JOIN

如果有帮助,请告诉我。