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