19 Replies Latest reply: Nov 11, 2016 6:52 AM by Clever Anjos RSS

    Duvida Expressão

    MARCOS OLIVEIRA

      Pessoal,

       

      Preciso criar um gráfico que me indique ou gráfico tabela, que me indique a o tempo entre a Emissão da NF e a Entrada da NF (data digitação) no sistema, a fim de termos um indicador das áreas que entregam as NF's ao financeiro no período de pagamento.

       

      Sds

       

      Marcos Paulo

        • Re: Duvida Expressão
          Luiz Cláudio Gomes

          Marcos

           

          Dê uma olhada nesse postCriar faixa de horário

           

          Luiz Cláudio

            • Re: Duvida Expressão
              MARCOS OLIVEIRA

              OK, vou dar uma olhada,

               

              achei o exemplo diferente, mas como tão tratando de intervalos a lógica do mestre deve ser esta mesmo, vou ver o exemplo do Mestre Tonial e tentar fazer aqui.

               

              Qualquer coisa recorro aos universitários!!!

               

              Sds

               

              Marcos Paulo.

                • Re: Re: Duvida Expressão
                  Luiz Cláudio Gomes

                  Marcos

                   

                  Voce tem os horários em sua tabela, certo?

                  Voce pode calcular o intervalo diretamente na carga dos dados.

                   

                  Montei uma tabela no Excel com data, NF, hora e fiz o seguinte script.

                   

                  LOAD Data,

                      NF,

                      Hora,

                      if(NF = PEEK(NF),interval( Hora-PEEK(Hora), 'hh:mm:ss' )) as Tempo

                  FROM

                  [C:\Users\LuizTG\Documents\Dados Qlikview\Testes\Horas.xls]

                  (biff, embedded labels, table is [Plan1$]);

                  Aí foi só criar o gráfico colocando as notas como dimensão e tempo como expressão.

                  É algo assim que vc quer fazer?

                  E acredito ainda que vc deva tratar também a data, pois se a nota for emitida numa data e chegar em outra voce vai distorcer o gráfico.

                  Dê uma olhada na função interval

                   

                  Luiz Cláudio

                    • Re: Duvida Expressão
                      MARCOS OLIVEIRA

                      Luiz,

                       

                      Na verdade não são horários e sim datas somente, quero um gráfico que me diz exatamente o intervalo de dias entre a data de emissão da NF e a Nota de Digitação (subtende-se que a nota chegou ao setor nesta data).

                       

                       

                      gráfico_data.png

                      Ats

                        • Re: Duvida Expressão
                          MARCIEL MALTA SILVA

                          Boa tarde Marcos,

                           

                          Caso queira um gráfico de barras com a diferença de dias entre as datas, seria criar um gráfico de barras como dimensão  o numero da nota e na expressão poderia ser

                           

                          If(sum(DataEntrega)<=0,Today()-sum(DataEmissao), sum(DataEntrega)-sum(DataEmissao))

                           

                           

                          Atenciosamente.

                          • Re: Duvida Expressão
                            Luiz Cláudio Gomes

                            Nesse caso, vc pode calcular a diferença entre as datas diretamente...

                            por exemplo

                                 (Digitação-Emissão) as Emi_Dig,

                                 (Baixa-Digitação) as Dig_Baixa

                             

                            Luiz Cláudio

                            • Re: Duvida Expressão
                              Raphael Pacheco

                              Boa tarde Marcos.

                              Pelo que eu entendi você quer apenas a quantidade de dias entre a Digitação da Nota e sua Emissão correto?

                              Então é só pegar a data de emissão - a data de digitação, ou seja: [Data de Emissão] - [Data de Digit]

                              Caso não exista ainda a data de emissão, podes colocar um if onde ficaria:

                              If(IsNull([Data de Emissão]), Date(Today()) - [Data de Digit], [Data de Emissão] - [Data de Digit])

                               

                              Abs.

                              • Re: Duvida Expressão
                                wallace prado

                                Marcos,

                                 

                                Para obter a diferença entre duas datas você pode tanto utilizar a subtração entre as duas Datas (como sugerido acima), como utilizar a função NetWorkDays que não considera os fins de semana. Ou seja, considerando uma NF Digitada na Sex 5 Setembro, Emitida na Seg 8 de Setembro pela sugestão do pessoal ficam 3 dias, usando a NetWorkDays: 1 dia (acho que é mais adequado).

                                 

                                Eu fiquei na dúvida como está o seu modelo de dados. Pode enviar um print? Não sei se as duas datas (de digitação e emissão) estão já na mesma tabela ou não. E no caso negativo se as duas tabelas possuem uma chave entre elas. Por isso, preciso ver o modelo, pode dar um print e postar?

                                  • Re: Duvida Expressão
                                    MARCOS OLIVEIRA

                                    Segue, ainda não resolvi:

                                     

                                    Script e Print.

                                     

                                    Tab_Titulos_Pag:

                                    LOAD

                                    Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY') as [Data de Emissão], 

                                     

                                     

                                      year(     Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano de EMISSAO],  

                                      month(    Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês de EMISSAO],  

                                      day(      Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Dia de EMISSAO],  

                                      monthname(Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês Ano de EMISSAO],

                                     

                                     

                                    Date(Date#(E2_VENCTO,'YYYYMMDD'),'DD/MM/YYYY') as [Data de Vencimento], 

                                     

                                     

                                      year(     Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano de Vencimento],  

                                      month(    Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês de Vencimento],  

                                      day(      Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Dia de Vencimento],  

                                      monthname(Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês Ano de Vencimento],

                                     

                                     

                                      E2_FILIAL as Filial,

                                         E2_FILORIG,

                                         E2_PREFIXO,

                                         E2_NUM as Num_Nota,

                                         E2_PARCELA,

                                         E2_TIPO,

                                         E2_VENCTO,

                                         E2_EMISSAO as Emissao,

                                         E2_SALDO,

                                         E2_VALOR,

                                         E2_VALLIQ,

                                         E2_FORNECE as Fornecedor,

                                         E2_LOJA,

                                         E2_HIST,

                                         E2_PORTADO,

                                         E2_NATUREZ,

                                         E2_BAIXA,

                                        

                                        Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY') as [Data da Baixa], 

                                      year(     Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano da Baixa],  

                                      month(    Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês da Baixa],  

                                      day(      Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as [Dia da Baixa],  

                                      monthname(Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês Ano da Baixa],

                                             

                                         E2_NOMFOR

                                        

                                    FROM

                                      $(dirQvdE)SE2010.qvd (qvd);

                                     

                                      store Tab_Titulos_Pag into $(dirQvdT)Tab_Titulos_Pag.qvd(qvd);

                                    //drop table Tab_Titulos_Pag;

                                     

                                    Tab_NF_Entrada:

                                     

                                     

                                    LOAD D1_FILIAL as Filial,

                                         D1_VALIPI,

                                         D1_NFORI,

                                         D1_SERIORI,

                                         D1_FORNECE as Fornecedor,

                                         D1_LOJA,

                                         D1_ITEMORI,

                                         D1_DTDIGIT,

                                        

                                         Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY') as [Data de Digit], 

                                      year(     Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano de Digit],  

                                      month(    Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês de Digit],  

                                      day(      Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as [Dia de Digit],  

                                      monthname(Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês Ano de Digit],

                                      

                                        D1_EMISSAO,

                                       

                                        Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY') as [Data de Emissão], 

                                      year(     Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano de EMISSAO],  

                                      month(    Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as [Mês de EMISSAO],  

                                      day(      Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as [Dia de EMISSAO],  

                                      monthname(Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as [Mês Ano de EMISSAO],

                                        

                                         D1_CUSTO,

                                         D1_ITEM,

                                         D1_DOC as Num_Nota,

                                         D1_RATEIO,

                                         D1_SERIE,

                                         D1_QUANT,

                                         D1_VUNIT,

                                         D1_TOTAL,

                                         D1_ICMSRET,

                                         D1_VALDESC,

                                         D1_VALPIS,

                                         D1_VALCOF,

                                         D1_VALICM,

                                         D1_TIPO,

                                         D1_TES,

                                         D1_CF,

                                         D1_DESC,

                                         D1_LOCAL,

                                         D1_COD,

                                         D1_VALFRE,

                                         D1_DESPESA,

                                         D1_SEGURO,

                                         D1_CC,

                                         D1_ITEMCTA,

                                         D1_PEDIDO,

                                         D1_ITEMPC,

                                        

                                         (D1_DTDIGIT - D1_EMISSAO) as  Emi_Dig

                                        

                                     

                                     

                                    FROM

                                      $(dirQvdE)SD1010.qvd (qvd);

                                     

                                     

                                      store Tab_NF_Entrada into $(dirQvdT)Tab_NF_Entrada.qvd(qvd);

                                    //drop table Tab_NF_Entrada;

                                     

                                    Grato.financeiro1.png

                                      • Re: Duvida Expressão
                                        Raphael Pacheco

                                        Bom dia Marcos.

                                        Tens como postar um exemplo de sua aplicação?

                                        Assim fica muito mais fácil ajudar.

                                         

                                        Abs.

                                        • Re: Duvida Expressão
                                          wallace prado

                                          Marcos,

                                           

                                          Pelo script enviado o link entre as tabelas está sendo feito pelo campo Num_Nota, correto?

                                           

                                          Então utilize a função Lookup na carga da Digitação. Para obter a Data de Emissão, carregada anteriormente na tabela de emissão você pode utilizar: Lookup ('D1_EMISSAO', 'Num_Nota', Num_Nota 'Tab_Titulos_Pag') . Aplicando na fórmula que você passou: (D1_DTDIGIT - Lookup ('D1_EMISSAO', 'Num_Nota', Num_Nota 'Tab_Titulos_Pag')) as  Emi_Dig.

                                           

                                          Espero ter ajudado!

                                            • Re: Duvida Expressão
                                              MARCOS OLIVEIRA

                                              Está ocorrendo o seguinte erro, não consigo identificar: Quando eu comento :

                                               

                                              (Dt_digitacao - Lookup (Dt_Emissao, 'Num_Nota', Num_Nota, 'Tab_Titulos_Pag')) as  Emi_Dig

                                               

                                              O Script roda, ele está reclamando de um campo que existe "Dt_digitacao" e já verificado no qvd. Não sei por que não está rodando,

                                              erro.png

                                                • Re: Duvida Expressão
                                                  wallace prado

                                                  Certo, mas pelo script que você passou este campo não existe mesmo. Veja o correto é D1_DTDIGIT que está no QVD.

                                                   

                                                  Olhando mais atentamente seu script, vejo que você carrega o D1_DTDIGIT  assim: Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')

                                                   

                                                  Provavelmente por alguma conversão/formatação do arquivo. Pois bem, então tente

                                                   

                                                  (Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY') - Lookup (Dt_Emissao, 'Num_Nota', Num_Nota, 'Tab_Titulos_Pag')) as  Emi_Dig


                                                  Agora acho que vai. QQ coisa estamos ai para ajudar

                                                    • Re: Duvida Expressão
                                                      MARCOS OLIVEIRA

                                                       

                                                      OK, mas eu tb fiz o tratamento das datas diretamente no campo e substituí, ficando assim: e mesmo assim não funcionou

                                                       

                                                       

                                                      Tab_Titulos_Pag:

                                                      LOAD

                                                      //Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY') as [Data de Emissão],

                                                      //

                                                      // year(     Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Ano de EMISSAO], 

                                                      // month(    Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês de EMISSAO], 

                                                      // day(      Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Dia de EMISSAO], 

                                                      // monthname(Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as [Mês Ano de EMISSAO],

                                                       

                                                       

                                                      Date(Date#(E2_VENCTO,'YYYYMMDD'),'DD/MM/YYYY') as Dt_Vencimento,

                                                       

                                                       

                                                        year(     Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as Ano_Vencimento, 

                                                        month(    Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_Vencimento, 

                                                        day(      Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as Dia_Vencimento, 

                                                        monthname(Date(Date#(E2_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_Ano_Vencimento,

                                                       

                                                       

                                                        E2_FILIAL as Filial,

                                                           E2_FILORIG,

                                                           E2_PREFIXO,

                                                           E2_NUM as Num_Nota,

                                                           E2_PARCELA,

                                                           E2_TIPO,

                                                           E2_VENCTO,

                                                      //    E2_EMISSAO    as Emissao,

                                                           E2_SALDO,

                                                           E2_VALOR,

                                                           E2_VALLIQ,

                                                           E2_FORNECE as Fornecedor,

                                                           E2_LOJA,

                                                           E2_HIST,

                                                           E2_PORTADO,

                                                           E2_NATUREZ,

                                                           E2_BAIXA,

                                                         

                                                          Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY') as Dt_Baixa,

                                                        year(     Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as Ano_Baixa, 

                                                        month(    Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_Baixa, 

                                                        day(      Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as Dia_Baixa, 

                                                        monthname(Date(Date#(E2_BAIXA,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_Ano_Baixa,

                                                         

                                                         

                                                           E2_NOMFOR

                                                         

                                                      FROM

                                                        $(dirQvdE)SE2010.qvd (qvd);

                                                       

                                                       

                                                        store Tab_Titulos_Pag into $(dirQvdT)Tab_Titulos_Pag.qvd(qvd);

                                                      //drop table Tab_Titulos_Pag;

                                                       

                                                      Tab_NF_Entrada:

                                                       

                                                       

                                                      LOAD D1_FILIAL as Filial,

                                                           D1_VALIPI,

                                                           D1_NFORI,

                                                           D1_SERIORI,

                                                           D1_FORNECE as Fornecedor,

                                                           D1_LOJA,

                                                           D1_ITEMORI,

                                                           D1_DTDIGIT,

                                                         

                                                           Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY') as Dt_digitacao,

                                                        year(     Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as Ano_digitacao, 

                                                        month(    Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_digitacao, 

                                                        day(      Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as Dia_digitacao, 

                                                        monthname(Date(Date#(D1_DTDIGIT,'YYYYMMDD'),'DD/MM/YYYY')) as Mes_Ano_Digitacao,

                                                       

                                                       

                                                          D1_EMISSAO,

                                                        

                                                          Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY') as Dt_Emissao,

                                                        year(     Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as Ano_Emissao, 

                                                        month(    Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as Mes_Emissao, 

                                                        day(      Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as Dia_Emissao, 

                                                        monthname(Date(Date#(D1_EMISSAO,'YYYYMMDD'),'DD/MM/YYYY'))  as Mes_Ano_Emissao,

                                                         

                                                           D1_CUSTO,

                                                           D1_ITEM,

                                                           D1_DOC as Num_Nota,

                                                           D1_RATEIO,

                                                           D1_SERIE,

                                                           D1_QUANT,

                                                           D1_VUNIT,

                                                           D1_TOTAL,

                                                           D1_ICMSRET,

                                                           D1_VALDESC,

                                                           D1_VALPIS,

                                                           D1_VALCOF,

                                                           D1_VALICM,

                                                           D1_TIPO,

                                                           D1_TES,

                                                           D1_CF,

                                                           D1_DESC,

                                                           D1_LOCAL,

                                                           D1_COD,

                                                           D1_VALFRE,

                                                           D1_DESPESA,

                                                           D1_SEGURO,

                                                           D1_CC,

                                                           D1_ITEMCTA,

                                                           D1_PEDIDO,

                                                           D1_ITEMPC

                                                       

                                                      // (D1_DTDIGIT - Lookup ('D1_EMISSAO', 'Num_Nota', Num_Nota 'Tab_Titulos_Pag')) as  Emi_Dig

                                                         

                                                      //(Dt_digitacao - Lookup (Dt_Emissao, 'Num_Nota', Num_Nota, 'Tab_Titulos_Pag')) as  Emi_Dig

                                                         

                                                       

                                                       

                                                      FROM

                                                        $(dirQvdE)SD1010.qvd (qvd);

                                                       

                                                       

                                                        store Tab_NF_Entrada into $(dirQvdT)Tab_NF_Entrada.qvd(qvd);

                                                      //drop table Tab_NF_Entrada;

                                    • Re: Duvida Expressão
                                      Clever Anjos

                                      Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

                                      Have fun, be Qlik

                                      • Re: Duvida Expressão
                                        Clever Anjos

                                        Já chegou a uma resposta? Se sim, marque como respondida, por favor

                                        Como obter ajuda? Leia antes de postar