Выражение параметра группы отчетов SSRS, вызывающее ошибку деления - PullRequest
0 голосов
/ 22 мая 2019

У меня есть отчет, который использует выражение для сортировки группы, но при выборе одного значения из параметра он возвращает «Выражение сортировки для группы« grp »содержит ошибку: Попытка деления на ноль».

Используемое выражение ниже;

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

Любые мысли приветствуются.

Спасибо

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Добавьте функцию к вашему отчетному коду для обработки ошибки деления на ноль:

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

Тогда в вашем выражении вызовите функцию:

code.Divider( Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp") )
0 голосов
/ 23 мая 2019

Как насчет простой проверки, если ваш Sum(Fields!RentDue.Value,"grp") возвращает 0 или ноль, если нет, вам не нужно делить Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp"), иначе просто делите.

Я обновил выражение ниже.

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