Надеюсь, у меня будет самый простой вопрос, но пока я не мог его понять. У меня есть отчет 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».
Что я здесь делаю не так?
Заранее спасибо!
2 ответа
Существует хорошо известная проблема, заключающаяся в том, что ssrs вычисляет оба выражения «iif». Вот почему вы получаете ошибку при попытке разделить на 0.
Взгляните на следующие ссылки:
Вместо написания выражения в SSRS. Мы можем добавить функцию к вашему коду отчета, которая обрабатывает условие деления на ноль, это немного упрощает реализацию в нескольких ячейках (повторное использование кода),
Разделитель публичной функции (ByVal Dividend как двойной, ByVal Divisor как двойной)
Если ничего не (делитель) или делитель = 0
Возврат 0
Иначе
Возврат дивидендов / делителей
Конец, если
Конечная функция
Мы можем вызвать этот код в ячейке следующим образом:
= Code.Divider (Поля! Дивиденд.Значение, Поля! Делитель.Значение)
Спасибо
Venky
Похожие вопросы
Связанные вопросы
Новые вопросы
rdlc
Файлы определения клиентских отчетов (.rdlc) - это файлы, которые позволяют элементу управления ReportViewer использовать встроенную возможность обработки для создания отчета служб отчетов SQL Server (SSRS).
=Fields!Saldo.Value*100/Fields!CostoNeto.Value