在我的 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)
我是否遗漏了一些明显的东西?对此的任何见解都非常感谢。
最佳答案
如果您转到报告属性,然后单击代码,则可以添加安全分隔函数,然后在表达式中将其引用为 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
关于reporting-services - 除以零时,如何消除 SSRS 表达式上的#error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345926/