Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
rodrigo_dittric
Contributor III
Contributor III

Extrato diário do produto x acumulado mensal

Bom dia galera,

Preciso de uma ajuda de vocês num caso aqui:

Eu fiz um cenário onde eu montei o extrato de produto e no meu script eu leio produto a produto, dia por dia e vou sempre gravando o valor que está em estoque de cada produto para cada dia, então se eu quiser ver o valor que existia em estoque de um produto até determinada data eu conseguia.

Minha tabela que segue em anexo, eu uso a seguinte formula para mostrar o extrato do produto e o valor acumulado dia a dia:

FirstSortedValue( {<MOV_DATA={"<=$(=vPeriodo)"} >} VL_SALDO, -OrdemLancamento)

Na tabela onde somo o valor mensal eu utilizo a seguinte fórmula:

SUM(AGGR(FirstSortedValue( {<MOV_DATA={"<=$(=vPeriodo)"} >} VL_SALDO, -OrdemLancamento),PRO_CODIGO,MOV_MES_ANO))

Segue o problema que tenho explicado no anexo.

Extrato do produto.jpg

Eu sei que existe uma forma de fazer o que eu preciso, mas quero ver se consigo resolver sem precisar criar outro script de carga.

Talvez tenho que tentar fazer uma carga acumulando mensalmente, mas na ausência de um produto em um determinado mês, eu vou precisar mostrar ele mesmo assim.

Labels (1)
8 Replies
Thiago_Justen_

Rodrigo,

E se você utilizar a seguinte expressão para o valor total:

Sum(Aggr(If(MOV_DATA= Max(TOTAL <PRO_CODIGO> MOV_DATA), [VL_SALDO),MOV_DATA,PRO_CODIGO))


Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
rodrigo_dittric
Contributor III
Contributor III
Author

Vou testar aqui!

o detalhe que na data eu utilizo uma variável de caixa de entrada e o max no campo MOV_DATA acaba não dando certo.

rodrigo_dittric
Contributor III
Contributor III
Author

Eu acredito que na carga (script) se algum produto não tem movimento em algum determinado mês, eu deva gerar uma registro para aquele mês considerando o dado do mês anterior!

Thiago_Justen_

Eu tenho uma aplicação para o estoque aqui da empresa e no meu script de transformação tenho algo assim:

...

Rangesum( 

      If( ID_Material = Previous(ID_Material) and Previous(ID_Movimentacao)<ID_Movimentacao, 

      Rangesum( [Movimentacao - Quantidade], Peek([Movimentacao - Saldo]) ) 

        , [Movimentacao - Quantidade]))     AS [Movimentacao - Saldo]

...

Dessa forma vou preservando o último saldo (saldo atual).

Você quer uma solução via script ou via expressão? Talvez o FirstSortedValue() ajudaria nesse caso...

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
rodrigo_dittric
Contributor III
Contributor III
Author

Eu utilizo o FirstSortedValue()  e funciona bem no extrato por data e por produto.

eu tenho problemas quando eu quero mostrar mensalmente conforme a imagem que eu coloquei no relato inicial.

Exemplo: O Produto 106 não tem movimento no mês 08, mas ainda é um valor que está em estoque e deverá mostrar também que ele ainda está em estoque no mês 8, e assim sucessivamente.

Thiago_Justen_

Qual foi o resultado da expressão que te mandei?

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
rodrigo_dittric
Contributor III
Contributor III
Author

A primeira fórmula não se adaptou para o gráfico mensal.

Eu vou colocar aqui o meu arquivo qvw para você dar uma olhada no que eu fiz.

Se você observar, nas tabelas por produto/data, produtos, ou tipo de produto da forma que eu carreguei os dados usando o comando FirstSortedValue() funciona bem, ou seja, me atende.

O problema eu tenho quando crio uma tabela para mostrar mensalmente!

No arquivo QVW está destacado o que está correto e onde tenho problemas.

Pode usar com base o marcador "Teste" que tem dois produtos como exemplo onde um deles não tem movimentação no mês de agosto.

rodrigo_dittric
Contributor III
Contributor III
Author

Estou finalizando uma solução que eu desenvolvi.

Vou criar um documento para compartilhar a solução e vou colocar o link aqui!