SSRS-在文本框中连接多个参数值



我有一个SSRS报告,其中包含用户在运行时选择的几个参数。其中一个参数允许多选。我使用这些值来填充文本框,并且在选择倍数时使用参数值时遇到问题。以下是用户选择一个值时的操作:

=Switch(Parameters!ID.Value(0) = 5, "Location 1", Parameters!ID.Value(0) = 9, "Location 2") & " Status Report"

不过,我还有一个案子。由于它是多选的,如果参数包含值5和9,我想让它说";位置1和位置2""状态报告";

我不知道如何做到这一点。

我试过了:

=Switch(Parameters!ID.Value(0) = 5, "Location 1", Parameters!ID.Value(0) = 9, "Location 2", **Parameters!ID.Value(0) = 5 AndAlso Parameters!ID.Value(0) = 9, "Location 1 and Location 2"**) & " Status Report"

想法?

假设您的ID参数为

  1. 从查询或
  2. 手动设置其可用值

因此,您的参数中应该有两个可用属性。它的值(实际传递给查询/过滤器等的位(和标签(您通常作为用户看到的位(。

假设你的参数列表中有3个ID,如

Value    Label
5        Location 1
9        Location 2
10       Some other location

然后,您所需要做的就是像这样引用表达式中参数集合的标签。

= JOIN(Parameters!ID.Label, " and ") & " Status Report."

就是这样。

当我试图在多值参数中找到一个值时,我所做的是将所有值连接到一个字符串中。

"|" & JOIN(Parameters!ID.Value,"|") & "|"

如果选择了参数值1、2和3,则字符串将为|1|2|3|。管道已添加,因此在选择11时找不到1。

如果要检查某个值,请使用INSTR函数,并将值括在"管道"中。如果未找到,INSTR将返回0,如果找到,则返回字符位置。

这将从上面的参数字符串中搜索5:

INSTR("|" & JOIN(Parameters!ID.Value,"|") & "|", "|5|")

所以你的表情会像一样

=Switch(INSTR("|" & JOIN(Parameters!ID.Value,"|") & "|", "|5|") > 0 AndAlso INSTR("|" & JOIN(Parameters!ID.Value,"|") & "|", "|9|") > 0, "Location 1 and Location 2", 
INSTR("|" & JOIN(Parameters!ID.Value,"|") & "|", "|5|") > 0, "Location 1", 
INSTR("|" & JOIN(Parameters!ID.Value,"|") & "|", "|9|") > 0, "Location 2", 
1 = 1, "Locations " & JOIN(Parameters!ID.Value,", ")) & 
" Status Report"

我把你的AND标准移到了第一个位置,因为SWITCH会选择第一个,除非既没有选择5也没有选择9,否则永远不会到达你的第三个。如果既没有选择5也没有选择9,我还添加了1 = 1作为余波。

我使用了以下内容,它对我有效:

=CStr(Parameters!Month.Label) &", " &CStr(Parameters!Year.Label)

您需要使用CStr将数字转换为字符串,以便添加逗号等其他字符。

最新更新