Почему мое утверждение iif не оценивает true, когда условие корректно? - PullRequest
0 голосов
/ 12 мая 2010

Это мое утверждение:

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

Есть предложения?

1 Ответ

1 голос
/ 14 мая 2010

Вероятно, это равно , оценивая как Истина. Как упоминалось в других комментариях, вы все равно получите ошибку, потому что Iif () оценивает все выражения параметров независимо от результата теста.

Эту ошибку можно избежать, добавив еще один Iif () в делитель.

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' или просто пустую строку, когда делитель равен нулю.)

...