33 Replies Latest reply: Oct 24, 2016 6:56 AM by victor fortunato RSS

    Omitir resultados = 0

    victor fortunato

      Pessoal Boa tarde.

      Estou tendo uma dificuldade bastante simples creio eu.

      Eu tenho uma tabela dinâmica com os seguintes campos:

      A minha dificuldade está em exibir somente o campo divergência que for diferente de 0.

       

      Já coloquei o flegado omitir 0 e nulos.

      E além disso eu fiz um if que não funcionou:

       

      IF (( FINANCEIRO - CONTABIL_SS_TRA - CONTABIL_SS_OFF) <> 0 ,

      (FINANCEIRO - CONTABIL_SS_TRA - CONTABIL_SS_OFF))

      Também não obtive sucesso.

      Por favor preciso de ajuda,

      Obrigado

        • Re: Omitir resultados = 0
          Yuri Nicolett

          Victor, o omitir zero só funciona se todas as expressões tiverem o resultado 0, mas no seu caso isso não ocorre devido a, na mesma linha, existirem valores diferentes de zero para as outras expressões.

           

          Para omitir essas linhas, você deve adicionar a condicional de verificação da coluna em todas as expressões.

            • Re: Omitir resultados = 0
              victor fortunato

              Yuri, muito obrigado.

              Eu já coloquei como condicional o IF e mesmo assim não tive sucesso.

              Porem ao invés de usar o nome do campos usei as expressões para o resultado:

               

              if(((sum(saldo)) -

               

              ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

               

              (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))) <> 0.00,

               

              ((sum(saldo)) -

               

              ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

               

              (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))))

               

              Também não consegui.

              Além dessa tentativa eu fiz uma outra dessa forma:

               

              Além de estar com o mesmo if da parte superior também está flegado o campo omitir o 0, porém sem sucesso.

              Obrigado Yuri.

                • Re: Omitir resultados = 0
                  Alessandro Furtado

                  Se colocar para mostrar mais casas decimais deve aparecer alguma coisa, tipo 0.0000001 (creio eu)

                   

                   

                  se colocar um

                   

                  round(

                      if(((sum(saldo)) -

                       ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

                       (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))) <> 0.00,

                       ((sum(saldo)) -

                       ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

                       (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))))

                    ,0.001)

                   

                  não resolve?

                   

                   

                  Em tempo de carga não seria melhor, se for zero colocar null()  ?

                  (Embora o null() neste caso vai mudar o resultado de expressões como o avg() por exemplo que colocaria o zero em uma media mas não entra o null()). 

                    • Re: Omitir resultados = 0
                      victor fortunato

                      Ola boa tarde.

                      Muito Obrigado pela resposta.

                      Eu fiz o Round e não funcionou.

                      Quando coloco para exibir as casas decimais apresenta dessa maneira:

                       

                      OBRIGADO

                        • Re: Omitir resultados = 0
                          mauro ponte

                          Vitor,

                           

                          Tente usar uma condicional nas demais expressões para zerá-las, tipo:

                           

                          if(Divergencia=0,0,sum(Expressao1))

                           

                          Isso aliado ao parametro para nao exibir valores zeros pode resolver seu problema.

                           

                          Estou anexando um QVW de exemplo. Analise as difenrenças entra as tabelas e as expressões da tabela Com condicional na expressão.

                           

                          Espero ter ajudado.

                            • Re: Omitir resultados = 0
                              victor fortunato

                              Mauro muito obrigado por responder.

                               

                              Vamos lá

                              Eu tentei usando somente o nome da coluna:

                              if(Divergencia =0,0,sum(saldo))

                               

                              E tentei também usando a expressão que calcula a divergência:

                               

                              if(sum(saldo) -  
                              (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - 

                                 (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,

                                 sum( {$<JE_SOURCE= {'(323)'} >}GL_debitoss )  - sum( {$<JE_SOURCE= {'(323)'} >}GL_Creditoss ) )

                               

                              Não tive sucesso com nenhuma das duas maneiras.

                              Obrigado

                                • Re: Omitir resultados = 0
                                  mauro ponte

                                  Victor, voce teria como disponibilizar o QVW para eu tentar ajudar?

                                  • Re: Omitir resultados = 0
                                    mauro ponte

                                    Victor,

                                     

                                    alterei um pouco a expressão da divergencia para não ser o valor carregado no script, mas uma expressão resultante de uma formula entre os valores das demais expressões.

                                    Divergencia = expressão1 + Expressão2 - Exressão3, assim fica mais parecido com seu exemplo.

                                     

                                    Formula da divergencia:

                                    sum(Expressao1)+sum(Expressao2)-sum(Expressao3)

                                     

                                    Formulas das 3 expressões na tabela que omite divergencia zero:

                                    if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao1))

                                    if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao2))

                                    if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao3))

                                     

                                    Lembre de marcar o parametro para nao mostrar valores zerados.

                                     

                                    Espero que agora consiga atender a dua necessidade.

                                     

                                    Segue tambem o QVW alterado.

                                      • Re: Omitir resultados = 0
                                        victor fortunato

                                        Mauro infelizmente não estou conseguindo postar um qvw, por causa do tamanho.

                                        Agradeço muito sua ajuda.

                                         

                                        Vou colocar um print da minha tabela dinâmica.

                                         

                                        Calculo Campo Financeiro:

                                        if(sum(saldo)+

                                        sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

                                        sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

                                        sum(saldo))

                                         

                                        CONTABIL_SS_TRA:

                                        if(sum(saldo)-

                                        sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

                                        sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

                                        sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))

                                         

                                        CONTABIL_SS_OFF:

                                        if(sum(saldo)-

                                        sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

                                        sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

                                        sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))

                                         

                                        Eu fiz uma outra tabela apenas com o EMPLID e o  campo divergência.

                                         

                                        Essa tabela acima, me mostra apenas 350 linhas, que são os ids com divergência , eu queria aplicar essa regra na tabela dinâmica contendo todos os campo.

                                        Muito obrigado

                                          • Re: Omitir resultados = 0
                                            mauro ponte

                                            Victor,

                                             

                                            Abra o editor de script e abra o depurador. Botao ao lado de recarregar. Nele voce tem uma opção de gerar carga limitada, onde voce pode colocar uma quantidade de registros. Assim voce consegue gera um qvw com poucos dados e pequeno, de maneira que voce pode postar e eu tentar te ajudar melhor.

                                              • Re: Omitir resultados = 0
                                                victor fortunato

                                                Consegui.

                                                 

                                                Muito obrigado pelas dicas.

                                                 

                                                segue QVW com a tabela dinâmica original.

                                                 

                                                Uma somente com a divergência.

                                                E outra com as regras que você me apresentou.

                                                muito obrigado

                                                  • Re: Omitir resultados = 0
                                                    mauro ponte

                                                    Victor,

                                                     

                                                    Veja a tabela Comparações com expressões alteradas do qvw alterado se atende o que voce precisa.

                                                     

                                                    Analise as condições das expressões, inclusive a da divergencia.

                                                     

                                                    Espero que agora esteja correto.

                                                      • Re: Omitir resultados = 0
                                                        victor fortunato

                                                        Mauro bom dia!

                                                        Agradeço muito sua ajuda.

                                                        Realmente e isso que eu preciso.

                                                        Porem quando eu carrego todos eles apresenta seguinte msgn:

                                                         

                                                        NESTED AGGREGATION NOT ALLOWED.


                                                        Sabe me explicar por que isso acontece?

                                                         

                                                        obrigado

                                                          • Re: Omitir resultados = 0
                                                            mauro ponte

                                                            victor,

                                                             

                                                            Voce está utilizando a formula na tabela, ou está tentando fazer já na carga do script?

                                                             

                                                            Na carga do script funções como SUM so irão funcionar com uma clausula group by, o que acho que não seja seu caso. Essa formula funciona na tabela, depois dos dados carregados.

                                                              • Re: Omitir resultados = 0
                                                                victor fortunato

                                                                Mauro bom dia.

                                                                Estou usando da forma que te enviei a msm tabela.

                                                                Porém quando carrega todos os dados apresenta esse erro.

                                                                 

                                                                Obs. estou usando a msm tabela que vc corrigiu no qvw que  eu disponibilizei.

                                                                 

                                                                Obrigado

                                                                  • Re: Omitir resultados = 0
                                                                    mauro ponte

                                                                    Victor, o erro ocorre quando voce está carrregando o script, ou quando voce abre o qvw carrregado o erro ocorre no no objeto tabela?

                                                                      • Re: Omitir resultados = 0
                                                                        victor fortunato

                                                                        Mauro,o erro ocorre depois que o script e carregado com todos os registros.

                                                                        Sim o erro ocorre no objeto tabela

                                                                        segue Print:

                                                                         

                                                                          • Re: Omitir resultados = 0
                                                                            mauro ponte

                                                                            Victor,

                                                                             

                                                                            Posta a imagem da aba de dimensões e as expressões da tabela para eu ver como ficou.

                                                                              • Re: Omitir resultados = 0
                                                                                victor fortunato

                                                                                Mauro tenho essa expressão na condicional de todos os campos:

                                                                                 

                                                                                if(((sum(saldo)) -((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -  

                                                                                  (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))) <> 0.00,   

                                                                                  ((sum(saldo)) -((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

                                                                                  (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))))

                                                                                 

                                                                                Para a expressões:

                                                                                 

                                                                                Financeiro :

                                                                                if(sum(saldo)-(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) -

                                                                                sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))-(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) -

                                                                                sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))

                                                                                 

                                                                                CONTABIL_SS_TRA:

                                                                                if(sum(saldo)-(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))-(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))

                                                                                //sum( {$<DIG_STATUS= {'(TRA)'} >}SALDO_SS )

                                                                                 

                                                                                CONTABIL_SS_OFF

                                                                                if(sum(saldo)-(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) -

                                                                                sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))-(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) -

                                                                                sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))

                                                                                 

                                                                                CONTABIL_GL

                                                                                if(sum(saldo)-(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))-(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,sum( {$<JE_SOURCE= {'(323)'} >}GL_debitoss )  - sum( {$<JE_SOURCE= {'(323)'} >}GL_Creditoss ) )

                                                                                 

                                                                                DIVERGENCIA:

                                                                                =sum(saldo)-(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))-(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))

                                                                                 

                                                                                PRINT: da aba dimensões:

                                                                                 

                                                                                Estou usando o mesmo que vc me disponibilizou apenas efetuei a carga total.

                                                                                Obrigado

                                                                                  • Re: Omitir resultados = 0
                                                                                    mauro ponte

                                                                                    Victor,

                                                                                     

                                                                                    Acredito que seja sua condicional.

                                                                                     

                                                                                    Na Condicional sempre temos de fazer uma comparação entre duas expressões ou valores.  Pelo que to vendo você está passando um valor calculado dentro do If mas nao compara ele a nada. Caso a comparação seja verdadeira a coluna será exibida, caso contrario ela ficara oculta.

                                                                                     

                                                                                    Teste sem a condicional para ver se o erro desaparece.

                                                                                     

                                                                                    Em que condicao exatamente voce quer que a coluna FINANCEIRO fique oculta?

                                                                                      • Re: Omitir resultados = 0
                                                                                        victor fortunato

                                                                                        Mauro bom dia.

                                                                                         

                                                                                        Tirei a condição mesmo assim continua com o erro.

                                                                                         

                                                                                        Deixa eu ver se consigo explicar, eu quero exibir no financeiro o valor do calculo onde a divergência e diferente de 0.

                                                                                         

                                                                                        Então nessa tabela terias apenas os id's divergentes.

                                                                                          • Re: Omitir resultados = 0
                                                                                            mauro ponte

                                                                                            Veja bem Victor,

                                                                                             

                                                                                            A condicional é para ocultar a coluna inteira, a linha tendo ou nao valor. Se voce colocar uma condicional para a coluna financeiro e for verdadeira a coluna simplesmente nao aparace, muito embora permaneça internamente na tabela.

                                                                                             

                                                                                            o que voce ta querendo é por exemplo:

                                                                                             

                                                                                            para o ID 11111, se divergencia =1 e financeiro = 100 mostrar na coluna financeiro 100 na linha desse ID.

                                                                                            porem se divergencia =0 e financeiro 110 nao mostrar a linha do ID. seria isso?

                                                                                             

                                                                                            se for isso nao seria problema se a tabela tivesse somente essas duas colunas. Porem se tiver mais colunas, e estas tiverem valores para o ID com divergencia =0 a linha do ID com valor nessas colunas tambem vao aparecer, mesmo que o Financeiro seja igual a zero.

                                                                                             

                                                                                            A nao ser que voce nas expressões tambem condicione que se financeiro for igual a zero o valor da expressão tambem seja zerado.

                                                                                             

                                                                                            Quanto ao erro, voce retirou a condição de todas as expressões.

                                                    • Re: Omitir resultados = 0
                                                      Thiago Gonçalo

                                                      Victor, bom dia!

                                                       

                                                      Segue uma solução bem simples, porem funcional.

                                                       

                                                      Para exibir os valores apenas quando a divergência for diferente de 0, basta criar uma condicional para todas as expressões. ou seja, coloque no código de todas as expressões a seguinte condicional:

                                                       

                                                      IF( (sum(saldo)) - (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )) <> 0,

                                                      aqui vc coloca a expressão da própria coluna )

                                                       

                                                      ou seja

                                                       

                                                      suas 4 expressões vão ficar assim:

                                                       

                                                      FINANCEIRO

                                                      IF( (sum(saldo)) - (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )) <> 0,

                                                      sum(saldo))

                                                       

                                                      CONTABIL_SS_TRA

                                                      IF( (sum(saldo)) - (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )) <> 0,

                                                      sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))

                                                       

                                                      CONTABIL_SS_OFF

                                                      IF( (sum(saldo)) - (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )) <> 0,

                                                      sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))

                                                       

                                                      GL_ORIGEM_SS

                                                      IF( (sum(saldo)) - (sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )) <> 0,

                                                      sum( {$<JE_SOURCE= {'(323)'} >}GL_debitoss )  - sum( {$<JE_SOURCE= {'(323)'} >}GL_Creditoss ) )

                                                       

                                                      ou seja, ele só ira trazer os valores das expressões caso a divergencia não for 0.

                                                       

                                                      Qualquer dúvida à disposição.

                                                       

                                                      Att,

                                                       

                                                      Thiago Gonçalo