Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Acredito que esse post possa te ajudar: https://blogdonicolett.com.br/2016/03/27/selecao-em-uma-data-do-tipo-de-ate/
If ( Vencimento >= $(vDataIni) and Vencimento <= $(vDataFim), CodTitulo,CodTitulo )
Adicione um "else" como eu fiz, ve se resolve
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
Bom dia Julio, até daria certo, porém tenho outras validações nesse mesmo IF.
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.
Então, se possível poste uma aplicação reduzida com seus dados demonstrando o problema
então posta o if completo para que possamos ajudar melhor
=If(Trim(Classe) <> '' And TipoTitulo <> 'FI' And Trim(DatLib) <> ''
And Vencimento >= $(vDataIni)
And Vencimento <= $(vDataFim), CodTitulo)
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
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.