我已经阅读了答案并更新了我的表达式,并且我继续在预算为0的行中获得#Error。
正确计算所有百分比。
= IIF(SUM(字段!CM_Budget.Value, “名称”)= 0,0,SUM(字段!MTD_Actual.Value, “名称”)/ SUM(字段!CM_Budget.Value, “名称”))< / p>
答案 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"))
我通常更喜欢第二种方式,使我的表达更具可读性