Reporting services 如何消除SSRS表达式被零除时的#错误?

Reporting services 如何消除SSRS表达式被零除时的#错误?,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我试图消除SSRS报告中被零除时的#错误。我有下面的表达式,它仍然给出#error 但是,如果将/切换到*,如下所示,我正确地得到值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.V

我试图消除SSRS报告中被零除时的#错误。我有下面的表达式,它仍然给出#error

但是,如果将/切换到*,如下所示,我正确地得到值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)

我错过了什么明显的东西吗?非常感谢您对此的了解。

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

此函数将返回0,而不是显示#错误消息

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
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