Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
girino777
Creator III
Creator III

Relatório Estoque

Bom Dia.!

Pessoal, estou em um cliente e tenho passado por dificuldades em desenvolver um relatório com os saldos de estoque pela maneira que as informações estão sendo extraídas e carregadas no QLIKVIEW.

Tentei montar um exemplo bem simples da tabela principal (Mov) e os relatórios que eu preciso montar. 

Preciso trazer a última movimentação, pois é ela que me dá o saldo atual do estoque, mas não estou conseguindo. 

Segue em anexo o qvw e a tabela em Excel.

Os relatórios que eu preciso montar estão na segunda aba e exemplo abaixo. 

Relatorios.bmp

Se alguém puder me ajudar, desde já muito obrigado. 

Renato

1 Solution

Accepted Solutions
nicolett_yuri

Renato, tente trabalhar com a função FirstSortedValue, ela vai te ajudar bastante na resolução desses problemas, por exemplo no relatório "SALDO DIÁRIO POR DEPOSITO", monte um gráfico:

Dimensões: DATA, DEPOSITO, CODIGO e PRODUTO

Expressão: AVG(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO))

para maiores detalhes da função, segue o trecho do manual:

firstsortedvalue ( [ distinct ] expressão [, relevância de classificação

[, n ]] )

retorna o primeiro valor da expressão classificado pela relevância

de classificação correspondente, onde expressão apresenta iterações

em vários registros, conforme definido por uma cláusula group by.

A relevância de classificação retornará um valor numérico em que o

valor mais baixo fará com que o valor correspondente da expressão

seja classificado primeiro. Se a expressão valor de classificação for

precedida por um sinal de menos, a função retornará o último valor.

Se mais de um valor de expressão compartilharem a mesma ordem

de classificação mais baixa, a função retornará o valor nulo. Ao

declarar um valor de n maior que 1, você obterá a enésima posição

na classificação. Se a palavra distinct aparecer antes da expressão,

todas as duplicatas serão ignoradas.

View solution in original post

5 Replies
nicolett_yuri

Renato, tente trabalhar com a função FirstSortedValue, ela vai te ajudar bastante na resolução desses problemas, por exemplo no relatório "SALDO DIÁRIO POR DEPOSITO", monte um gráfico:

Dimensões: DATA, DEPOSITO, CODIGO e PRODUTO

Expressão: AVG(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO))

para maiores detalhes da função, segue o trecho do manual:

firstsortedvalue ( [ distinct ] expressão [, relevância de classificação

[, n ]] )

retorna o primeiro valor da expressão classificado pela relevância

de classificação correspondente, onde expressão apresenta iterações

em vários registros, conforme definido por uma cláusula group by.

A relevância de classificação retornará um valor numérico em que o

valor mais baixo fará com que o valor correspondente da expressão

seja classificado primeiro. Se a expressão valor de classificação for

precedida por um sinal de menos, a função retornará o último valor.

Se mais de um valor de expressão compartilharem a mesma ordem

de classificação mais baixa, a função retornará o valor nulo. Ao

declarar um valor de n maior que 1, você obterá a enésima posição

na classificação. Se a palavra distinct aparecer antes da expressão,

todas as duplicatas serão ignoradas.

girino777
Creator III
Creator III
Author

Olá Yuri.

Tudo Jóia?

Em primeiro lugar, muito obrigado pelas dicas.

Para o primeiro relatório, funcionou..hehehehehe

Estou mexendo e estudando agora a forma de fazer para os outros, mas ainda esta meio confuso pra mim.

Eu consigo colocar essa função na carga?

Tentei, mas esta dando erro.

Pode ser que não seja possível. 

LOAD DATA,

     DEPOSITO,

     CODIGO,

     PRODUTO,

     [SALDO INICIAL],

     [E/S],

     SEQ,

     MOVIMENTO,

     [SALDO FINAL],

     SUM(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO)) AS TESTE

FROM

(ooxml, embedded labels, table is Mov);

nicolett_yuri

Na carga você consegue usar o FirstSortedValue, mas não consegue o AGGR.

Lembre-se que no script, toda sumarização deve ser precedida de um group by (que vai fazer o papel do AGGR), segue um exemplo:

LOAD

     DATA,

     DEPOSITO,

     CODIGO,

     PRODUTO,

     SUM(FirstSortedValue([SALDO FINAL],-SEQ)) AS TESTE

FROM

(ooxml, embedded labels, table is Mov)

GROUP BY

    DATA,

     DEPOSITO,

     CODIGO,

     PRODUTO;

girino777
Creator III
Creator III
Author

OK.! Yuri

Muito Obrigado pela ajuda e dicas.! 

Renato

girino777
Creator III
Creator III
Author

Olá Yuri

Tudo Jóia?

Surgiu uma dúvida neste momento. 

Quando o saldo é igual a 0 ele não retorna nada para o registro em questão.

Neste caso eu fico sem saber quais os dias que o estoque estava com o saldo zerado.

Tem como arrumar isso na fórmula para trazer inclusive estes casos ? 

Segue exemplo em anexo onde eu zerei o estoque no dia 3.

Muito Obrigado.

Renato