У нас проблема с одним из наших отчетов. В одном из наших табликсов текстовое поле имеет следующее выражение:
=Iif(Fields!SomeField.Value = 0, 0, Fields!SomeOtherField.Value / Fields!SomeField.Value)
Что должно быть довольно очевидно. Если значение SomeField равно нулю, установите значение текстового поля равным нулю, в противном случае установите значение «SomeOtherValue / SomeValue».
Что нас озадачило, так это то, что в отчете по-прежнему выдается исключение времени выполнения «попытка делить на ноль», хотя вышеприведенное выражение должно предотвратить это.
Мы немного поиграли с выражением, чтобы убедиться, что проверка нуля работает, и
=Iif(Fields!SomeField.Value = 0, "Yes", "No")
работает прекрасно. Случаи, когда данные фактически равны нулю, приводят к тому, что в текстовом поле отображается «Да», и наоборот. Так что проверка работает нормально.
Мне кажется, что механизм рендеринга отчетов генерирует исключение во время выполнения, потому что он "выглядит" так, как будто мы собираемся делить на ноль, но на самом деле это не так.
Кто-нибудь сталкивался с такой же проблемой раньше? Если так, что вы сделали, чтобы это заработало?