ReportViewer Деление на ноль - PullRequest
       26

ReportViewer Деление на ноль

1 голос
/ 01 октября 2008

В моих отчетах есть некоторые формулы, и для предотвращения деления на ноль я делаю это в поле выражения:

= IIF (Поля! F1.Value <> 0, Поля! F2.Value / Поля! F1.Value, 0)

Обычно это работает нормально, но когда F1 и F2 равны нулю, я получаю «#Error» в отчете и получаю следующее предупреждение: «Выражение Value для текстового поля textbox196 содержит ошибку: Попытка деления на ноль. "

Почему это?

Ответы [ 3 ]

3 голосов
/ 01 октября 2008

IIF () - это просто функция, и, как и с любой функцией all , аргументы оцениваются до , когда вызывается функция, включая Fields!F2.Value/Fields!F1.Value. Другими словами, он попытается разделить на ноль, несмотря на условие Fields!F1.Value <> 0.

1 голос
/ 01 октября 2008

Должен быть более красивый способ, чем этот, но это должно работать:

=IIF(Fields!F1.Value <> 0, Fields!F2.Value / 
   IIF(Fields!F1.Value <> 0, Fields!F1.Value, 42), 0)
0 голосов
/ 30 ноября 2011

Однако вы можете использовать

if Fields!F1.Value <> 0 
then 
Fields!F2.Value/Fields!F1.Value
else 0

, который должен работать, поскольку он не оценивает предложение then, если раздел "if" имеет значение false.

...