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