s-s-rS - 多值参数表达式

Posted

技术标签:

【中文标题】s-s-rS - 多值参数表达式【英文标题】:s-s-rS - Multi Value Parameter Expression 【发布时间】:2016-09-01 17:36:13 【问题描述】:

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

参数是一个多值参数。如果我选择 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】:

我认为问题在于只有 1 个选择时,NOT Value(1)

也许嵌套 IIF 会起作用:

=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," & "))

这样,它只检查 value(1) 是否有 2。

如果一切都失败了,

=IIF(JOIN(Parameters!Parameter1.Label," & ") = "4324 & 4589", "HLITE LLC", JOIN(Parameters!Parameter1.Label," & "))

【讨论】:

这些解决方案都不适合我。如果有 1 个选择,我确实看到 Value(0) 存在并且计数为 1

以上是关于s-s-rS - 多值参数表达式的主要内容,如果未能解决你的问题,请参考以下文章

在 s-s-rS 2008 中,如何在文本框中同时显示多值参数的标签和值?

s-s-rS 报告为 Join 表达式提供错误

s-s-rS 中的可选多值参数

s-s-rS 多值参数

s-s-rS 多值参数只返回最后一个值

需要解释将 s-s-rS 多值参数传递给 SQL 的工作原理