none
aninhamento de IF no report viewer RRS feed

  • Pergunta

  • Tenho em um relatório que verificar a condição de vários campos em um textbox o que quero é assim :

    if (campoa = "S","A","") if(campoB = "S","B","") if (campoc = "S","C","")

    if o campoa for igual a "S" vou imprimir A , se o campoB for igual a "S" vou imprimir B 

    Será que deu para entender ?


    Junior

    quarta-feira, 17 de dezembro de 2014 19:59

Todas as Respostas

  • Olá Junior,

    Os campos são fixos ou dinâmicos (sempre são os mesmos campos ou você tem uma quantidade variável de campos)?

    Se os campos forem fixos, é só colocar um IIf dentro do outro.. Algo como:

    IIf(Fields!CampoA = "S", "A", IIf(Fields!CampoB = "S", "B", IIf(Fields!CampoC = "S", "C", "")))


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    sexta-feira, 19 de dezembro de 2014 05:17
    Moderador
  • André obrigado por me responder, mais do jeito que vc colocou ai eu tb já tinha feito e pela lógica não dá certo, pq os outros ifs estão na condição do não do primeiro if ai se o primeiro if for sim ele mostra A mais não entra nos outros if.

    Todos os exemplos que eu ví mostram esse exemplo mais para o que eu quero não resolve, já tenho um relatório assim e funciona perfeito com esse if mais para esse relatório não dá certo.

    o que quero é mais ou menos isso:

    if(a = B then 0) or if(b = b then c).....

    Tentei fazer assim, mais deu erro em tempo de execução :

    iif(fields1.value = "S","A",nothing)or iif(fields2.value = "S","B",nothing)


    Junior

    sexta-feira, 19 de dezembro de 2014 13:16
  • Olá Junior,

    Agora eu fiquei completamente perdido.. Não estou entendendo o que você está querendo fazer.. Poderia dar alguns exemplos de valores para as colunas e o resultado que você está esperando?

    Pela sua explicação, pode ser que a função "Switch" te ajude (ao invés da Função "IIf").. Dá uma olhada na documentação para entender como funciona essa função (confira a seção "Decision Functions"):

    http://msdn.microsoft.com/en-us/library/ms251668%28v=VS.80%29.aspx

    De qualquer forma, uma outra opção é retornar o valor já pronto diretamente na sua query (ou DataSet).. Dessa forma fica muito mais fácil, aí você não precisa criar nenhuma lógica no relatório..


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    sexta-feira, 19 de dezembro de 2014 13:43
    Moderador
  • André são 5 campos com a categoria da carteira de motorista e cada campo é um varchar(1) onde tem S ou N.

    Se o campo estiver S exibo a letra, por exemplo : A B C D E.

    O switch tb não dá certo, já tentei, bem outra saída seria o que vc falou fazer um case lá no select, acho que isso resolve.

     

    Junior

    sexta-feira, 19 de dezembro de 2014 14:23
  • Mais pensando bem um case no select tb não dá certo pq são 5 campos diferentes.

    cata,catb,catc,catd,cate


    Junior

    sexta-feira, 19 de dezembro de 2014 14:26