Надеюсь, у меня будет самый простой вопрос, но пока я не мог его понять. У меня есть отчет RDLC со следующим выражением.

    =Iif(Sum(Fields!OriginalTotal.Value) = 0, 0, (Sum(Fields!WorkingTotal.Value) - Sum(Fields!OriginalTotal.Value))/Sum(Fields!OriginalTotal.Value)) 

Обратите внимание, что это поле в отчете отформатировано в процентах с двумя десятичными знаками.

Проблема заключается в том, что всякий раз, когда условие Sum (Fields! OriginalTotal.Value) = 0 истинно, поле в отчете печатается как «#Error».

Что я здесь делаю не так?

Заранее спасибо!

0
ecasper 7 Июл 2014 в 12:51

2 ответа

Лучший ответ

Существует хорошо известная проблема, заключающаяся в том, что ssrs вычисляет оба выражения «iif». Вот почему вы получаете ошибку при попытке разделить на 0.

Взгляните на следующие ссылки:

1
Community 23 Май 2017 в 15:05
Помоги мне с моей проблемой =Fields!Saldo.Value*100/Fields!CostoNeto.Value
 – 
rodrigo.rodriguez
29 Ноя 2017 в 22:36

Вместо написания выражения в SSRS. Мы можем добавить функцию к вашему коду отчета, которая обрабатывает условие деления на ноль, это немного упрощает реализацию в нескольких ячейках (повторное использование кода),

Разделитель публичной функции (ByVal Dividend как двойной, ByVal Divisor как двойной)
Если ничего не (делитель) или делитель = 0
Возврат 0
Иначе
Возврат дивидендов / делителей
Конец, если
Конечная функция

Мы можем вызвать этот код в ячейке следующим образом:

= Code.Divider (Поля! Дивиденд.Значение, Поля! Делитель.Значение)

Спасибо
Venky

0
user2518339 10 Июл 2014 в 17:52