2017-07-06 5 views
0

Ich habe die Antworten gelesen und aktualisiert meinen Ausdruck und ich bekomme weiterhin #Error in der Zeile, die eine 0 für das Budget hat.SSRS 2012 Division durch null Fehler

Alle Prozentsätze werden korrekt berechnet.

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

Antwort

2

Dies liegt daran, dass SSRS immer beide Ausdrücke auswertet. Sie müssen Ihren Ausdruck in zwei Teile teilen.

=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")) 

Eine Alternative könnte wie benutzerdefinierten Code verwenden unter

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 

Dann können Sie Ihren Ausdruck schreiben wie:

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

Ich ziehe normalerweise die zweite Möglichkeit, es zu tun, um sicherzustellen, meine Ausdrücke besser lesbar