0
我已經通讀了答案並更新了我的表達式,並且在預算爲0的行中繼續出現#Error。SSRS 2012除以零誤差
所有的百分比正在計算正確。 (Fields!CM_Budget.Value,「Name」)= 0,0,SUM(Fields!MTD_Actual.Value,「Name」)/ SUM(Fields!CM_Budget.Value,「Name」))
我已經通讀了答案並更新了我的表達式,並且在預算爲0的行中繼續出現#Error。SSRS 2012除以零誤差
所有的百分比正在計算正確。 (Fields!CM_Budget.Value,「Name」)= 0,0,SUM(Fields!MTD_Actual.Value,「Name」)/ SUM(Fields!CM_Budget.Value,「Name」))
這是因爲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"))
我通常喜歡做的第二種方式,使我的表情更具可讀性