Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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.
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
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).
Ats
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.
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
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.
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?
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.