Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Filtro por periodo, data inicial - data final.

     Bom dia, preciso fazer um filtro onde através de objetos calendário o usuário ira informar o período a ser filtrado, ou seja, data inicial e data final, a principio fiz com duas variáveis vDataIni e vDataFim e fiz a seguinte condição no objeto:

     If ( Vencimento >= $(vDataIni) and Vencimento <= $(vDataFim),  CodTitulo)

assim ele até está funcionando, mas se não for selecionado nenhum período o objeto não traz nenhuma informação, tentei deixar as variáveis com períodos fixos, porém não resolveu, gostaria saber se tem alguma maneira de o objeto trazer todas as informações e apenas filtrar quando for selecionado o filtro, ou se existe alguma outra maneira de se trabalhar com períodos de data. Qualquer duvida estou a disposição.

1 Solution
14 Replies
Not applicable
Author

  If ( Vencimento >= $(vDataIni) and Vencimento <= $(vDataFim),  CodTitulo,CodTitulo )



Adicione um "else" como eu fiz, ve se resolve

Clever_Anjos
Employee
Employee

utilize a função ALT para tratar o caso de não ter nada na variável, colocando um valor padrão (today() por exemplo)

If ( Vencimento >= alt($(vDataIni),today()) and Vencimento <= alt($(vDataFim),today())  CodTitulo)


De qualquer forma, recomendo estudar um pouco de set analysis, bem melhor que usar um IF como acima

Not applicable
Author

Bom dia Julio, até daria certo, porém tenho outras validações nesse mesmo IF.

Not applicable
Author

Bom dia Clever, tentei fazer da seguinte maneira utilizando a função today e também com um valor fixo, mas continua sem trazer os dados.

Clever_Anjos
Employee
Employee

Então, se possível poste uma aplicação reduzida com seus dados demonstrando o problema

Not applicable
Author

então posta o if completo para que possamos ajudar melhor

Not applicable
Author

=If(Trim(Classe) <> '' And TipoTitulo <> 'FI' And Trim(DatLib) <> ''

And Vencimento >= $(vDataIni)

And Vencimento <= $(vDataFim),  CodTitulo)

Not applicable
Author

Podemos resolve de duas formas...
1 - você coloca sua variavel vDataIni  - um dia  e Fim para receber hoje na hora de abrir o aplicativo ou tenta isso

=If(Trim(Classe) <> '' And TipoTitulo <> 'FI' And Trim(DatLib) <> ''

And Vencimento >= $(vDataIni)

And Vencimento <= $(vDataFim),  CodTitulo,

     if(

Trim(Classe) <> '' And TipoTitulo <> 'FI' And Trim(DatLib) <> ''     And isnull($(vDataIni)), CodTitulo

)

só precisa ver se objetos dependem dessa data ai...
se for o disparador e melhor opção

Not applicable
Author

Eu consegui fazer da seguinte maneira: declarei um intervalo de tempo padrão nas variáveis, eu já havia feito isso antes, porém eu estava declarando uma data mas na verdade ele estava retornando um código para essa data, fiz o processo contrario declarei o código e esse código me retornou a data. Dessa maneira já consigo filtrar os períodos. Obrigado.