Reputation: 157
I have a report that uses an expression to sort a group but when choosing one value from the parameter it returns an "The sort expression for the grouping 'grp' contains an error: Attempted to divide by zero."
The expression being used is below;
=Choose(Parameters!sort.Value,
Choose(Parameters!set.Value,Fields!IncomeOfficer.Value,Fields! ManagementArea.Value,Fields!RentGroup.Value,Fields!Tenure.Value),
-Sum(Fields!RentCollected.Value,"grp"),
Sum(Fields!RentDue.Value,"grp"),
-Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp"))
Any thoughts amendments appreciated.
Thanks
Upvotes: 0
Views: 348
Reputation: 5531
How about you simple check if your Sum(Fields!RentDue.Value,"grp")
returns 0 or null, if it does you do not need to divide Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp")
else just divide.
I have updated expression below.
=Choose(Parameters!sort.Value,
Choose(Parameters!set.Value,Fields!IncomeOfficer.Value,Fields! ManagementArea.Value,Fields!RentGroup.Value,Fields!Tenure.Value),
-Sum(Fields!RentCollected.Value,"grp"),
Sum(Fields!RentDue.Value,"grp"),
-IIF(IsNothing(Sum(Fields!RentDue.Value,"grp")) or Sum(Fields!RentDue.Value,"grp")=0,Sum(Fields!RentCollected.Value,"grp"), Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp")))
Upvotes: 0
Reputation: 999
Add a function to your report code to handle divide by zero error:
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
Then in your expression call the function:
code.Divider( Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp") )
Upvotes: 1