Por que minha declaração IIF não está avaliando verdadeira quando a condição está correta?
-
26-09-2019 - |
Pergunta
Esta é a minha declaração:
iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))
Alguma sugestão?
Solução
Provavelmente é avaliando como verdadeiro. Conforme mencionado em outros comentários, você receberá um erro de qualquer maneira, porque o IIF () avalia todas as expressões de parâmetros, independentemente do resultado do teste.
O erro pode ser evitado adicionando outro IIF () no divisor.
iif(
sum(Fields!myfield1.Value) = 0,
0,
sum(Fields!myField2.Value) / iif(
sum(Fields!myfield1.Value) = 0,
1,
sum(Fields!myField1.Value)
)
)
Agora você ficará zero se o myfield1 for zero e nenhum erro for lançado.
(Você provavelmente deve mostrar 'n/a' ou apenas uma corda vazia quando o divisor é zero, no entanto.)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow