none
Erro de Soma com IIF RRS feed

  • Pergunta

  • Estou usando um campo de status para mostrar um outro campo de valor com ZERO para que notas canceladas não mostrem seu valores para no total não ser somada, e estou seguindo o mesmo conceito para o total inclusive tem exemplos dessa forma no site da Microsoft, conforme abaixo

    = iif (fields!STATUS.Value = "CANCELADO", 0 ,  Fields!VALOR.Value) essa formula no campo de valor funciona, sempre que o campo status esta cancelado o valor sai zero.

    =sum(iif (fields!STATUSLAN.Value = "CANCELADO", 0 ,  Fields!VALORBRUTOORIG.Value)) a mesma formula no total (linha de somatorio) não funciona apresenta #error.

    Alguém tem ideia do que estou fazendo de errado?

    Obs. O campo esta formatado para moeda com R$.

    Paulo Duarte

    segunda-feira, 18 de julho de 2016 13:32

Respostas

  • Putz funcionou.

    Obrigado, mas não entendi porque não funcionou antes com ZERO, é o exemplo no site MSDN.

    De qq forma valeu.

    • Marcado como Resposta Paulo R Duarte segunda-feira, 18 de julho de 2016 21:36
    segunda-feira, 18 de julho de 2016 21:36

Todas as Respostas

  • Olá Paulo,

    Apenas inverta sua expressão, assim:

    =IIF(fields!STATUSLAN.Value = "CANCELADO", 0 , SUM(Fields!VALORBRUTOORIG.Value))

    Espero ter ajudado. Caso sim, Marque como resposta.

    Valeu!


    segunda-feira, 18 de julho de 2016 13:41
  • Paulo, bom dia!

    Uma vez passei por algo parecido, se não me engano, se você converter o "0" para decimal, sua função vai funcionar.

    Faça o teste fazendo favor.

    att.

    Felipe


    segunda-feira, 18 de julho de 2016 13:42
  • André obrigado mas não funcionou, parou de dar o erro mas o total sai com zero.
    segunda-feira, 18 de julho de 2016 14:12
  • Felipe obrigado o campo já é decimal, veja que na linha de detalhe ele não da erro.
    segunda-feira, 18 de julho de 2016 14:13
  • Paulo, verifica seus dados, será que esse campo STATUSLAN não está como "Cancelado" para estar saindo total zerado? Ou a soma do campo VALORBRUTOORI realmente não é zero? Pois a expressão está correta.
    segunda-feira, 18 de julho de 2016 14:27
  • André não entendi bem sua resposta, o que preciso é que quando o campo STATUS for cancelado o campo VALOR seja ZERO para que não exiba nenhum valor do documento, esta formula esta funcionando na linha de detalhe mas quando coloco na linha de TOTAL não funciona dando erro na soma (#Error)

    Segue abaixo a linha para detalhe e total.

    = iif (fields!STATUS.Value = "CANCELADO", 0 ,  Fields!VALOR.Value) == linha detalhe

    = SUM(iif (fields!STATUS.Value = "CANCELADO", 0 ,  Fields!VALOR.Value) ) == linha soma

    Obs o campo STATUS é um campo "Int" mas na impressão estou fazendo um CASE na consulta que exibe um texto "Cancelado" além de Aberto e Baixado, mas esses dois últimos textos os valores serão exibidos na linha detalhe e somados na linha de total.

    Outra coisa o ZERO após o "Cancelado" pode ser colocado como 0.00 já fiz isso e não modifica em nada, e o campo de valor e tipo Money.

    segunda-feira, 18 de julho de 2016 16:25
  • To achando estranho não funcionar da forma que falei. Tenta assim:
    =IIF(fields!STATUSLAN.Value.Equals("CANCELADO"), 0 , SUM(Fields!VALORBRUTOORIG.Value))
    segunda-feira, 18 de julho de 2016 17:17
  • O mesmo comportamento que a dica anterior. Não da erro mas não soma tambem.

    segunda-feira, 18 de julho de 2016 20:20
  • Paulo,

    No seu banco de dados, qual é o valor do campo VALORBRUTOORIG quando o campo Status está como cancelado? Fica um valor zerado ou NULL?

    segunda-feira, 18 de julho de 2016 20:23
  • Paulo, tente assim:

    = SUM(iif (fields!STATUS.Value = "CANCELADO", Nothing,  Fields!VALOR.Value))


    Antero Marques

    _______________________________________________________________________________

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    segunda-feira, 18 de julho de 2016 20:51
  • O campo possui valor preenchido, é justamente isso que quero omitir ou seja quando o documento estiver cancelado não quero que apareça e nem que totalize, porque o documento esta cancelado, na linha de detalhe já esta ok, falta a totalização, já tentei várias formas mas nada resolve.
    segunda-feira, 18 de julho de 2016 21:24
  • Putz funcionou.

    Obrigado, mas não entendi porque não funcionou antes com ZERO, é o exemplo no site MSDN.

    De qq forma valeu.

    • Marcado como Resposta Paulo R Duarte segunda-feira, 18 de julho de 2016 21:36
    segunda-feira, 18 de julho de 2016 21:36