Почему мой оператор IIF не оценивает True, когда состояние правильное?

StackOverflow https://stackoverflow.com/questions/2822233

Вопрос

Это мое заявление:

iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))

Какие-либо предложения?

Это было полезно?

Решение

Скорее всего является Оценка как истина. Как уже упоминалось в других комментариях, вы в любом случае вы получите ошибку, потому что IIF () оценивает все выражения параметров независимо от результата теста.

Ошибка можно избежать, добавив другой IIF () в Divisor.

iif(
    sum(Fields!myfield1.Value) = 0,
    0,
    sum(Fields!myField2.Value) / iif(
                                     sum(Fields!myfield1.Value) = 0,
                                     1,
                                     sum(Fields!myField1.Value)
                                 )
)

Теперь вы получите ноль, если Myfield1 равен нулю, и ошибка не бросается.

(Вы, вероятно, должны показать «n / a» или просто пустую строку, когда делитель нулевой, хотя.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top