【问题标题】:Why do I need an IIF when returning a boolean in an SSRS expression?为什么在 SSRS 表达式中返回布尔值时需要 IIF?
【发布时间】:2015-10-23 18:45:12
【问题描述】:

基本上我的问题是为什么我不能写一个期望布尔值的表达式

=Parameters!.Param1.Value = 3

相反,您必须明确地返回 true 或 false

=IIF(Parameters!Param1.Value = 3, True, False)

表达式 Parameters!.Value = 3 的计算结果是否为整数(即​​ 1 或 0)?这是怎么回事?

【问题讨论】:

  • 看起来,正如@BrianPressler 指出的那样,这两种表达方式都有效。我见过的所有示例都使用 IIF,甚至将它们链接在一起变成丑陋的怪物。我本可以发誓过去非 IIF 方式对我来说是失败的,但我想这可能是一个合法的错误。

标签: reporting-services boolean iif ssrs-expression


【解决方案1】:

您实际上可以在表达式中进行布尔比较。你在哪里发现你不能使用它?您收到的错误消息是什么?

此外,您在问题中的两个表达式均无效,因为它们缺少参数名称。它应该看起来更像:

=Parameters!MyBoolParameter.Value = 3

也许这就是您遇到错误的原因?

【讨论】:

  • 缺少的参数名称只是示例中的错误。看起来你对两者的工作都是正确的。我可以发誓非 IIF 语句在可见性表达式上对我来说失败,但我无法在测试报告中重现它。
【解决方案2】:

这就是语法。如果您发现您的表达式很复杂,您可以在报表代码中实现一个自定义函数,然后从您的报表中调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多