Qlik Community

Ask a Question

Brasil

Announcements
2021 Gartner® Magic Quadrant™ for Data Integration Tools. See why Qlik was recognized yet again GET REPORT
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Razão Contábil

Estou com dificuldade para calcular o saldo atual a cada lançamento na montagem de um razão contábil.

Eu possuo (lendo do banco de dados) o Saldo Inicial e Saldo Final DE CADA DIA. Porém a partir destes valores preciso gerar os novos Saldo Inicial e Final a SALDO A CADA LANÇAMENTO. Abaixo uma imagem que demonstra minha dificuldade.

Exemplo Razão Contábil.png

Em anexo gerei um arquivo QVW onde está uma parte da estrutura do meu arquivo.

Se alguém puder me ajudar, eu agradeço muito.

1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

Para mim é um caso tipico para resolver no script usando previous e peek.

Segue codigo que deve ser colocado acima do load inline, de forma a usar a técnica do LOAD sobre LOAD

LOAD *, [Saldo Inicial]-Débito+Crédito+alt(peek('Saldo Atual'),0) as 'Saldo Atual';

LOAD *, if(isnull(previous([Saldo Anterior])),[Saldo Anterior],0) AS [Saldo Inicial];

LOAD * INLINE [

View solution in original post

6 Replies
Clever_Anjos
Employee
Employee

Trabalhe com a função ABOVE() no seu gráfico.

Ela retorna o valor na 'linha de cima' de uma expressão

Not applicable
Author

Clever eu já trabalhei com o Above, porém no meu caso ele não resolve (a não ser que eu junte com outra função) afinal do Segundo registro em diante o Above(Saldo Anterior)  terá o mesmo valor do "Saldo Anterior" da linha atual. A não ser que o Above funcionasse para pegar o valor acumulado da expressão. Algo que não consegui.

Clever_Anjos
Employee
Employee

Veja se algo parecido com =rangesum(Above(SaldoAnterior,0,rowno()) resolve o que você precisa

pablolabbe
Luminary Alumni
Luminary Alumni

Para mim é um caso tipico para resolver no script usando previous e peek.

Segue codigo que deve ser colocado acima do load inline, de forma a usar a técnica do LOAD sobre LOAD

LOAD *, [Saldo Inicial]-Débito+Crédito+alt(peek('Saldo Atual'),0) as 'Saldo Atual';

LOAD *, if(isnull(previous([Saldo Anterior])),[Saldo Anterior],0) AS [Saldo Inicial];

LOAD * INLINE [

View solution in original post

junior_ehlke
Creator III
Creator III

Cara EU não consegui entender muito bem seu exemplo, parece que as contas do "Saldo Atual Correto" não batem com Saldo Anterior - credito - debito. Veja se é mais ou menos isso.

Sem título.png

Not applicable
Author

Obrigado Hamilton e Pablo pela ajuda. Eu consegui resolver com uma solução muito parecida com a que o Pablo sugeriu porém com pequenas alterações para atender outros requisitos dos meus gráficos, mas o conceito foi o que ele sugeriu.

Abraço