Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde,
Pessoal, precisaria adicionar um calendário onde Eu possa consultar os documentos por data e que de acordo com esse filtro possa ter em 3 colunas o último preço, penultimo preço e antepenultimo.
A idéia é poder auditar diariamente a evolução do preço de compra se teve aumento ou redução com relação ao ultimo preço com o histórico das outras 2 últimas compras.
No exemplo abaixo, hoje dia 18/09/2014 estariamos analisando o que entrou de nota fiscal ontem e analisar se nos últimos 3 preços de compras houve vairação.
Anexo segue o qvw caso alguem possa me ajudar.
att,
André Tonini
Yuri e Luciano,
Cara é só Eu chutar pro gol mas ainda não consegui ...rsrsrs...
Pois bem, analisei e fiz os seguintes testes:
a) Primeiro resolvi consultar direto no banco de dados (IBExpert) e essa data esta como 'DD.MM.YYYY'
b) Editei o script e fui alterando as variaveis abaixo em vermelho para 'DD.MM.YYYY' ou 'DD-MM-YYYY' ou 'YYYY/MM/DD' enfim fiz diversas combinações e carregava o script.
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
SET vDataUltima = =MOV_DATA;
SET vDataPenultima = Date(MOV_DATA-1, 'DD.MM.YYYY');
SET vDataAntiPenultima = Date(MOV_DATA-2, 'DD.MM.YYYY');
c) Na expressão notei que está considerando apenas a configuração que está na variavel DateFormat='DD/MM/YYYY' ou seja, se nessa variavel eu colocar 'DD.MM.YYYY' vai funcionar apenas se Eu deixar fixo uma data na expressão.
Att,
André Tonini
Bom dia.
Tenta tratar a data. Não sei com vêm do banco. Talvez o formato que você apurou seja só visualização.
Testa com as suas.
date(num(today()), 'DD/MM/YYYY') = '19/09/2014'
date(num(today()), 'DD.MM.YYYY') = '19.09.2014'
Eu não tinha visto a app em anexo.
Segue como que faz!
Dica: Como você esta fazendo o filtro em outros campos de data e não no DATA_MOV, você deve zera-los (Ano, Mês e Dia) no Set Analysis e depois passar a variável.
Olá Yuri,
Analisei o qvw, porém quando informo uma data no filtro, na coluna "Penultima Compra' e 'AntePenultima Compra" gera valor zerado.
Montei um exemplo no excel pois pensei que poderia ser algo quanto a data, e dessa forma já me atenderia.
a) Os dados são os que estão na tabela abaixo, onde apresenta os produtos que tiveram movimento de entrada nas respectivas datas (MOV_DATA) e valor (MOV_UNITARIO).
b) Sendo assim, digamos que estou hoje dia 20/09/2014 realizando uma consulta informando no filtro MOV_DATA para saber o que movimentou hoje e saber o penultimo e antpenultimo valor, seria mais ou menos assim:
Desde já agradeço pela atenção.
André Tonini
André, eu fiz em relação a data, se filtrar 22/09/2014 a penúltima recebe 21/09/2014 e a antepenúltima 20/09/2014, mas na verdade você precisa de acordo com as vendas (não sequencial).
Vou verificar como fazer e te passo um exemplo.
Bom dia Yuri,
Legal...muito obrigado.
André Tonini
Estou achando que não da para fazer com set analysis.
Vou tentar uma solução pelo script
Boa noite.
Pelo o que entendi o resultado deveria ser o abaixo como exemplo?
Código Produto | Data Entrada | Nº Nota Fiscal | Empresa | Preço Ultima Compra | Preço Penultima | Preço AntePenultima |
---|---|---|---|---|---|---|
3058 | 07/02/2014 | 73305 | 1 | 20,23 | 0,00 | 0,00 |
3058 | 05/03/2014 | 28894 | 1 | 19,15 | 20,23 | 0,00 |
3058 | 08/04/2014 | 29723 | 1 | 18,11 | 19,15 | 20,23 |
3058 | 10/06/2014 | 30772 | 1 | 18,11 | 18,11 | 19,15 |
3058 | 24/06/2014 | 31187 | 1 | 17,56 | 18,11 | 18,11 |
3058 | 03/07/2014 | 31352 | 1 | 17,56 | 17,56 | 18,11 |
3058 | 28/07/2014 | 80422 | 1 | 17,72 | 17,56 | 17,56 |
3058 | 07/08/2014 | 32170 | 1 | 17,72 | 17,72 | 17,56 |
3058 | 14/08/2014 | 32359 | 1 | 17,72 | 17,72 | 17,72 |
Se for, basta usar o seguinte codigo abaixo do seu
left join (PRODUTOS_MOVIMENTOS_F)
add LOAD
MOV_DOCUMENTO,
PRO_CODIGO,
MOV_DATA,
if(PRO_CODIGO = Previous(PRO_CODIGO),Previous(MOV_CUSTOFISCAL)) as Penultimo,
if(PRO_CODIGO = Previous(Previous(PRO_CODIGO)),Previous(Previous(MOV_CUSTOFISCAL))) as AntePenultimo
Resident PRODUTOS_MOVIMENTOS_F Order by PRO_CODIGO,DATA_MOV;
Att,
Alessandro Furtado
Alessandro,
Boa tarde, tudo bem?
Desculpa toda essa demora em retorná-lo, mas era exatamente isso que Eu precisava!
Adicionei no script a parte citada por você e fechou.
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
SET vDataUltima = =MOV_DATA;
SET vDataPenultima = Date(MOV_DATA-1, 'DD/MM/YYYY');
SET vDataAntiPenultima = Date(MOV_DATA-2, 'DD/MM/YYYY');
ODBC CONNECT TO bi;
// ---- Movimento Produto/Custo ---- //
LOAD *,
YEAR(MOV_DATA) AS ANO_MOV,
MONTH(MOV_DATA) AS MES_MOV,
DAY(MOV_DATA) AS DIA_MOV,
DATE(MOV_DATA) AS DATA_MOV,
WEEK(MOV_DATA) AS SEMANA_MOV,
WEEKDAY(MOV_DATA) AS DIA_SEMANA_MOV;
SQL SELECT
MOV_DATA,
MOV_PRO_CODIGO AS PRO_CODIGO,
MOV_FIL_CODIGO,
MOV_CUSTOFISCAL,
MOV_DOCUMENTO,
MOV_UNITARIO,
MOV_ORIGEM
FROM PRODUTOS_MOVIMENTOS_F WHERE MOV_DATA > '31.12.2013' AND MOV_ORIGEM = 'NTC';
left join (PRODUTOS_MOVIMENTOS_F)
add LOAD
MOV_DOCUMENTO,
PRO_CODIGO,
MOV_DATA,
if(PRO_CODIGO = Previous(PRO_CODIGO),Previous(MOV_UNITARIO)) as Penultimo,
if(PRO_CODIGO = Previous(Previous(PRO_CODIGO)),Previous(Previous(MOV_UNITARIO))) as AntePenultimo
Resident PRODUTOS_MOVIMENTOS_F Order by PRO_CODIGO,DATA_MOV;
Obrigado
Att,
André Tonini