Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
guilherme_rigon
Contributor III
Contributor III

Vizualizar sempre a previsão para os próximos 90 dias?

Bom dia,

Estou construindo um fluxo de caixa que contem as despesas, receitas e saldos diários. Gostaria de saber como travar a visualização sempre para os próximos 90 dias.

Minhas set do saldo está assim: sum({<RECDESP={'1'}, CODNAT={1010000}>} (VLRDESDOB*0.85)) - (sum({<RECDESP={'-1'}>} VLRDESDOB))

Desculpe a pergunta, mas é que estou começando agora.

10 Replies
Not applicable

Cria uma variável no script, veja se funciona dessa forma:

Let vFiltro90Dias = Date(today()+90);

sum({<RECDESP={'1'}, CODNAT={1010000}, Date={">=$(vFiltro90Dias)"}>} (VLRDESDOB*0.85)) - (sum({<RECDESP={'-1'}>} VLRDESDOB))

paulovendruscol
Creator
Creator

Guilherme,

A data inicial para o calculo seria a data de hoje, correto? Se sim, veja se esse tópico te atende.

Variável somando valor entre um perído da data

guilherme_rigon
Contributor III
Contributor III
Author

Paulo e Eduardo,

Obrigado pela resposta, mas ainda não consegui. Quando insiro este modificador na set, ele me retorna valor 0.

paulovendruscol
Creator
Creator

Guilherme,

Poste o seu QVW para facilitar...

jonas_rezende
Specialist
Specialist

Guilherme Rigonato.

Entendi que você quer filtrar a data D+0 até D+90. Com isso, recomendo criar a variável como orientado por Eduardo Endo.

Para tanto, poderia testar separadamente o resultado de cada agregação, se der certo, inclua a operação em uma única expressão. Ex.:

sum({<RECDESP={'1'}, CODNAT={1010000}, Data={"<=$(=vFiltro90Dias)"}>} VLRDESDOB*0.85) //Testa o resultado

sum({<RECDESP={'-1'}, Data={"<=$(=vFiltro90Dias)"}>} VLRDESDOB) //Testa o resultado.

Em caso de resultado bem sucedido:

sum({<RECDESP={'1'}, CODNAT={1010000}, Data={"<=$(=vFiltro90Dias)"}>} VLRDESDOB*0.85) - sum({<RECDESP={'-1'}, Date={"<=$(=vFiltro90Dias)"}>} VLRDESDOB)

P.S.: observar que é preciso o sinal de igualdade dentro da variável $(=vFiltro90Dias).


Espero que isso ajude!

guilherme_rigon
Contributor III
Contributor III
Author

Como e onde eu crio essa variável? Meu campo de data é 'DTVENC'. Meu Qlikview é ainda é a versão free, não tem como posta o .qvd. Obrigado.

jonas_rezende
Specialist
Specialist

Guilherme Rigonato.

Cria a variável no script. Teclas Ctrl + E.

Quanto ao campo, substitua na linha de código Data por DTVENC. Ex.:

sum({<RECDESP={'-1'}, DTVENC={"<=$(=vFiltro90Dias)"}>} VLRDESDOB) //Testa o resultado.

guilherme_rigon
Contributor III
Contributor III
Author

Jonas,

Criei um outro campo de data 'DATA2', DATE(DTVENC, 'DD/MM/YYYY') AS DATA2, agora pelo menos me volta valores para o gráfico. Utilizando a expressão sum({<RECDESP={'-1'}, DATA2={"<=$(=vFiltro90Dias)"}>} VLRDESDOB).


Porém me volta todos os registros do banco. O que faço?

jonas_rezende
Specialist
Specialist

Guilherme Rigonato.

Dicas:

  • Analise se todo o período retornado está dentro da condição DATA2={"<=$(=vFiltro90Dias)"}>}. Caso contrário, estabeleça o limite que deseja e altere o operador relacional do modificador para >= ou =. Se for o caso, verifique o período armazenado na variável vFiltro90Dias.

  • Utilize ListBox (Clica com o botão direito do mouse em uma área em branco e escolha Selecionar Campo, e clique duas vezes sobre o campo desejado. Ex.: DATA2.) e TextBox (Clica com o botão direito do mouse em uma área em branco e escolha  Novo Objeto de Pasta, insira a variável =$(vFiltro90Dias)), e compare as datas.



Espero ter ajudado!