【问题标题】:How can I eliminate #error on SSRS expression when dividing by zero?除以零时,如何消除 SSRS 表达式上的#error?
【发布时间】:2012-11-12 14:55:17
【问题描述】:

在我的 SSRS 报告中除以零时,我试图消除 #error。我有以下表达式仍然给出#error

=IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")),
88 , Fields!QTY_AVL.Value * 100 / 
Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models"))

但是,如果将 / 切换为 * ,如下所示,我正确地得到了值 88

=IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")), 
88 , Fields!QTY_AVL.Value * 100 * 
Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models"))

在这两种情况下,我得到的正确值是查找值 > 0

(Fields!QTY_AVL and Fields!Stock come from different sources)

我是否遗漏了一些明显的东西?对此的任何见解都非常感谢。

【问题讨论】:

    标签: reporting-services ssrs-2008


    【解决方案1】:

    如果您转到“报告属性”,然后单击“代码”,然后在表达式中将其引用为 CODE.SafeDivide(Value1, Value2),则可以添加安全分隔函数,并根据需要添加参数。

    此函数将返回 0 而不是显示#error 消息。

    Public Function SafeDivide(ByVal Numerator As Decimal, ByVal Denominator As Decimal) As Decimal
        If Denominator = 0 Then
            Return 0
        End If
        Return (Numerator / Denominator)
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      相关资源
      最近更新 更多