如何在除以零时消除SSRS表达式上的#error?

Deb*_*ebs 3 reporting-services ssrs-2008

我试图在我的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"))
Run Code Online (Sandbox Code Playgroud)

但是如果切换/到*,如下所示,我正确地得到值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"))
Run Code Online (Sandbox Code Playgroud)

在这两个实例中,我得到正确的值是查找值> 0

(Fields!QTY_AVL and Fields!Stock come from different sources)
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗 对此的任何见解都非常感激.

msm*_*527 8

如果转到"报告属性",然后单击"代码",然后在表达式中引用它,则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
Run Code Online (Sandbox Code Playgroud)