Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
marcospaulo
New Contributor III

Duvida Expressão

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

Tags (1)
19 Replies
luizclaudio
Contributor

Re: Duvida Expressão

Marcos

Dê uma olhada nesse postCriar faixa de horário

Luiz Cláudio

marcospaulo
New Contributor III

Re: Duvida Expressão

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.

luizclaudio
Contributor

Re: Re: Duvida Expressão

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

(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

marcospaulo
New Contributor III

Re: Duvida Expressão

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

Not applicable

Re: Duvida Expressão

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.

luizclaudio
Contributor

Re: Duvida Expressão

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

rphpacheco
Contributor III

Re: Duvida Expressão

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.

Not applicable

Re: Duvida Expressão

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?

marcospaulo
New Contributor III

Re: Duvida Expressão

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