【问题标题】:IIF statement error when divding by 0除以 0 时 IIF 语句错误
【发布时间】:2015-03-30 11:04:55
【问题描述】:

好的,除以 0 时出现#ERROR,所以我尝试使用以下代码捕获它

=IIf(Code.SumLookup(LookupSet(Fields!region.Value, Fields!region.Value, Fields!X.Value, "Dataset2")))=0,"-", Fields!Bad.Value/(Code.SumLookup(LookupSet(Fields!region.Value, Fields!region.Value, Fields!ticket_count.Value, "Dataset2")))

所以这应该执行以下操作:如果 [value in FieldsX in "Dataset2"] = 0,则显示 "-" ,否则进行计算 [Fields!Bad.Value/FieldX in "数据集2"]

但由于某种原因,这只是在尝试运行时失败:[BC30455] 未为“公共函数 IIf(表达式为布尔值,TruePart 作为对象,FalsePart 作为对象)作为对象”的参数“FalsePart”指定参数。

Iif 语句的格式有问题吗?因为假计算单独使用时运行良好。

有什么想法吗?

【问题讨论】:

    标签: reporting-services syntax reportbuilder3.0 iif ssrs-expression


    【解决方案1】:

    正确检查您的括号。这不合适。 下面的代码可能对你有用。

    =IIf(Code.SumLookup(LookupSet(Fields!region.Value, Fields!region.Value, Fields!X.Value, "Dataset2"))=0,"-", Fields!Bad.Value/(Code.SumLookup(LookupSet(Fields!region.Value, Fields!region.Value, Fields!ticket_count.Value, "Dataset2"))))

    【讨论】:

    • OK 现在可以运行了,但是它仍然返回 #ERROR - 所以它看起来不喜欢 TRUE 部分,因为如果 [Field!X.Value in Dataset2] > 0 则 false 部分运行良好 - --- 有什么想法吗?
    • 这可能是你的 else 部分是十进制值,如果部分是字符串。通过输入一些 0 或 1 来检查。如果它执行得很好,那么你必须考虑一些替代方案。
    • 是的,所以如果 else 部分是 Decimal 类型,我可以不将 true 部分转换为小数吗?这会有帮助吗? (抱歉打扰,我的表达/报告生成器知识相当有限)
    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多