【问题标题】:How do I use a multi-value parameter in an iif expression in SSRS (SQL Server Reporting Services)?如何在 SSRS (SQL Server Reporting Services) 的 iif 表达式中使用多值参数?
【发布时间】:2021-01-11 21:29:56
【问题描述】:

我正在尝试在 SSRS 中编写隐藏列表达式。我需要涉及一个多值参数。如果多值参数中有某个值,我希望显示一列 - 否则将其隐藏。

类似这样的:

=IIF(Parameters!RecsIncl.Value(0) = 3, false, true)

【问题讨论】:

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


    【解决方案1】:

    不幸的是,没有内置的方法可以做到这一点。

    我通常用 JOIN 连接参数值。如果文本有逗号,我使用 PIPES 作为分隔符。您还想将 PIPES 添加到字符串的开头和结尾,这样当您搜索 3 时,它不会找到 13。

    "|" + JOIN(Parameters!RecsIncl.Value, "|") + "|" 
    

    |1|2|3|5|8|13|

    然后使用 INSTR 函数将值作为字符串搜索。 INSTR 如果未找到则返回 0,如果找到则返回位置。

    INSTR( "|" + JOIN(Parameters!RecsIncl.Value, "|") + "|", "|3|") > 0
    

    你的表情会是这样的

    =IIF(INSTR( "|" + JOIN(Parameters!RecsIncl.Value, "|") + "|", "|3|") > 0, false, true)
    

    【讨论】:

    • 谢谢汉诺威。在我发布这个问题之后,我在谷歌上找到了一个类似的答案。这就是我最终成功测试的结果,但我会将您的答案标记为正确答案。 =IIF(instr(Join(Parameters!RecsIncl.Value,","),"3")>0,False,True)
    • @ScottS。您可能需要在值周围添加管道,以便在选中 13 时找不到 3。
    • 汉诺威,谢谢,我已经注意到了。我的数据集没有超过 5,但我会在以后的项目中记住这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多