SSRS 2012除以零误差

时间:2017-07-06 02:52:32

标签: reporting-services ssrs-2012

我已经阅读了答案并更新了我的表达式,并且我继续在预算为0的行中获得#Error。

正确计算所有百分比。

= IIF(SUM(字段!CM_Budget.Value, “名称”)= 0,0,SUM(字段!MTD_Actual.Value, “名称”)/ SUM(字段!CM_Budget.Value, “名称”))< / p>

1 个答案:

答案 0 :(得分:2)

这是因为SSRS始终评估两个表达式。 你必须分两部分来表达你的意思。

=IIF(SUM(Fields!CM_Budget.Value,"Name")=0,0,SUM(Fields!MTD_Actual.Value,"Name"))
/
IIF(SUM(Fields!CM_Budget.Value,"Name")=0,1,SUM(Fields!CM_Budget.Value,"Name"))

替代方案可能是使用下面的自定义代码

Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double)
If IsNothing(Divisor) Or Divisor = 0
  Return Nothing
Else
  Return Dividend/Divisor
End If
End Function 

然后你可以写下你的表达式:

=Code.Divider(SUM(Fields!MTD_Actual.Value,"Name"),SUM(Fields!CM_Budget.Value,"Name"))

我通常更喜欢第二种方式,使我的表达更具可读性