jsm*_*ith 13 sql reporting-services ssrs-2008
我有一个字段的报告,其值为表达式:
Fields!TotalPrice.Value/Fields!TotalSlots.Value
Run Code Online (Sandbox Code Playgroud)
虽然有时TotalSlots是空白的,因此我得到零除运行时错误.所以我把表达式改为:
=IIF(Fields!TotalSlots.Value > 0, Fields!TotalPrice.Value/Fields!TotalSlots.Value,"unknown")
Run Code Online (Sandbox Code Playgroud)
但我仍然得到零误差.我如何解决这个零除数问题.
Nat*_*ths 24
Jamie F的回答是正确的.作为提示,您可以向报表代码添加一个函数,以便在多个单元格中更容易实现除法,例如
Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double)
If IsNothing(Divisor) Or Divisor = 0
Return 0
Else
Return Dividend/Divisor
End If
End Function
Run Code Online (Sandbox Code Playgroud)
然后你可以在这样的单元格中调用它:
=Code.Divider(Fields!FieldA.Value, Fields!FieldB.Value)
Run Code Online (Sandbox Code Playgroud)
Jam*_*e F 16
VB IIF 评估所有参数,因此如果任何参数抛出错误,它将抛出错误:
您的公式可以写成:
=IIF(Fields!TotalSlots.Value > 0,
Fields!TotalPrice.Value /
IIF(Fields!TotalSlots.Value > 0,
Fields!TotalSlots.Value,
1 ),
"unknown")
Run Code Online (Sandbox Code Playgroud)
然后,即使TotalSlots为零,该公式仍然不会遇到除法问题.
| 归档时间: |
|
| 查看次数: |
27612 次 |
| 最近记录: |