SSRS - 多值参数表达式

时间:2016-09-01 17:36:14

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

我有以下表达式,它应该出现在报告的标题上。但是,当我为一个应该属于else语句的单个实体运行它时,它会显示错误而不是Label。

参数是一个多值参数。如果我选择3个参数,它工作正常,因此else语句正常工作。但是当我只选择1个值时,它会返回错误。我究竟做错了什么。

=IIF(
(Parameters!Parameter1.Count = 2 AND ((Parameters!Parameter1.Value(0)= 4589 AND Parameters!Parameter1.Value(1) = 4324) OR (Parameters!Parameter1.Value(1)= 4589 AND Parameters!Parameter1.Value(0)) = 4324)), "HLITE LLC",
JOIN(Parameters!Parameter1.Label," & ")
)

我也尝试了以下内容:

= SWITCH(
    Parameters!Parameter1.Count = 1 , lookup(Parameters!Parameter1.Value(0), Fields!Legal_Entity_ID.Value, Fields!Legal_Entity.Value, "DataSet2"),
    (Parameters!Parameter1.Count = 2 AND ((Parameters!Parameter1.Value(0)= 4589 AND Parameters!Parameter1.Value(1) = 4324) OR (Parameters!Parameter1.Value(1)= 4589 AND Parameters!Parameter1.Value(0)) = 4324)), "HHLITE"
)

这也失败了。但是查找表达式本身可以正常运行AND COUNT IS 1

1 个答案:

答案 0 :(得分:0)

我认为问题是当只有1个选择时, 值(1)

也许嵌套 IIF 会起作用:

deletepostorderTraversal()

这样,如果有2,它只检查值(1)。

如果一切都失败了,

=IIF(Parameters!Parameter1.Count = 2,
     IIF((Parameters!Parameter1.Value(0)= 4589 AND Parameters!Parameter1.Value(1) = 4324) 
            OR (Parameters!Parameter1.Value(1)= 4589 AND Parameters!Parameter1.Value(0)) = 4324), 
        "HLITE LLC",
        JOIN(Parameters!Parameter1.Label," & "), 
    JOIN(Parameters!Parameter1.Label," & "))