Por que minha declaração IIF não está avaliando verdadeira quando a condição está correta?

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

Pergunta

Esta é a minha declaração:

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

Alguma sugestão?

Foi útil?

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
scroll top