Почему мой оператор IIF не оценивает True, когда состояние правильное?
-
26-09-2019 - |
Вопрос
Это мое заявление:
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» или просто пустую строку, когда делитель нулевой, хотя.)
Не связан с StackOverflow