Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Fala pessoal, tudo bom?
Pode até parecer estranho para quem trabalho com QlikView, mas eu já recebi diversas solicitações do tipo: Eu quero selecionar um intervalo de datas, passando a data inicial e uma data final!
Sabemos que isso é possível de se fazer apenas usando um campo de data em que você seleciona o intervalo que deseja, mas as vezes você não consegue convencer seu cliente desta facilidade
Vamos aprender a fazer isso de uma forma simples?
É um pouco estranho explicar isso, eu sei, mas muitos clientes já estão se acostumados com outras plataformas e, simplesmente, não querem se adaptar ao mundo das facilidades do Qlik! Paciência né! rsrs!
Você pode criar a ideia de se selecionar um intervalo de duas maneiras: Variáveis ou Estado Alternativo.
OBS: Antes de iniciarmos o exemplo, precisamos de um calendário criado. Já sabe criar? Não? Veja esses exemplos: Função para Criar Calendário (Utilizando Data existente no modelo) ou Função para Criar Calendário (Passando datas).
Vamos criar duas variáveis, uma para receber o limite inferior e outra para receber o limite superior da data. A variável de limite inferior será nomeada de vDataInicio e a variável de limite superior de vDataFim.
Vá em Configuração -> Visão Geral das Variáveis ou então pressione Ctrl + Alt + V
OBS: Se preferir também pode criar a variável pelo script.
Através do objeto Caixa de Entrada o usuário poderá digitar o intervalo de datas que deseja selecionar:
IMPORTANTE: Como estamos selecionando um intervalo de DATA, ou seja, DD/MM/YYYY, então o usuário deverá digitar a data neste formato.
Vamos preencher as variáveis, através do objeto caixa de entrada, com o intervalo que desejamos:
Agora precisamos transportar essa informação das variáveis para o campo que desejamos, para isso criaremos um botão (ou objeto de texto) com a ação de Selecionar no Campo:
Agora temos que informar qual o nome do campo e o valor em que desejamos realizar a seleção:
O campo em que quero selecionar o intervalo se chama Data, mas lembre-se de adaptar conforme o seu modelo de dados.
O valor que desejamos selecionar no campo Data será preenchido em Pesquisar Caracteres. Porque é dado este nome? A pesquisa de caracteres que iremos incluir neste campo segue o mesmo padrão da busca que podemos realizar através de uma lista no qlikview:
Agora ficou mais fácil, se entendemos que a Pesquisa de Caracteres funciona da mesma forma que uma busca e conhecemos a sintaxe de fazer essa busca, basta adaptar essa sintaxe para recuperar os valores do intervalo das variáveis.
OBS: O próximo post (podem me cobrar) será sobre as sintaxes de busca que podemos realizar no QlikView.
Vamos entender:
Pronto! Agora basta clicar sobre este botão e ver o resultado:
Estado Alternativo?
Você pode usar Estados Alternativos para realizar análise comparativa entre conjuntos de dados múltiplos, por exemplo, para a finalidade de análise da cesta de compras. Um estado mantém um conjunto de seleções;
O desenvolvedor do QlikView pode criar vários estados dentro de um documento QlikView e aplicá-los a
objetos específicos no documento. O usuário final pode criar cópias desses objetos (objetos do server) e, em seguida, colocar esses objetos em estados diferentes. (Manul QlikView)
Em outras palavras, é como se o QlikView criasse camadas de dados e cada uma dessas camadas pudesse sofrer seleções diferentes para realizar suas comparações entre as camadas. Apesar de parecer que essas camadas estão duplicando, triplicando os seus dados, isso não ocorre.
IMPORTANTE: O que iremos fazer é utilizar os recursos do Estado Alternativo para configurar o limite inferior e limite superior de intervalo, mas é importante ressaltar que estamos "se aproveitando" deste recurso e que essa não é a função do Estado Alternativo. Lembre-se que o uso de Estado Alternativo pode comprometer a performance de sua aplicação.
Vamos criar dois estados alternativos, um para receber o limite inferior e outra para receber o limite superior da data. Para criar um Estado Alternativo, você deve ir em Configuração -> Propriedades do Documento -> Aba Geral e clicar no botão Estados Alternativos:
Inclua dois Estados, Inicio e Fim:
A partir de agora o QlikView vai habilitar uma opção de escolher o Estado Alternativo que deseja trabalhar para cada objeto da aplicação (listas, gráficos, abas, etc). Esta opção sempre será exibida na aba Geral dos objetos:
Junto aos Estados Alternativos que criamos (Inicio e Fim) também existem outras opções: <herdado>, <estado padrão> e <novo estado>:
Sabendo como funciona o Estado Alternativo, então criaremos três objetos de lista para o campo Data, um objeto colocaremos no Estado Alternativo Inicio, no outro colocaremos no Estado Alternativo Fim e por último um no Estado Alternativo Estado Padrão:
Esta primeira lista será a nossa Data de Início. Na lista faça as seguintes configurações:
Agora vamos criar outra lista, esta será a nossa Data Fim. Na lista faça as seguintes configurações:
Por fim a terceira lista, esta será a Data que será selecionada pelo intervalo escolhido nas duas anteriores. Na lista faça as seguintes configurações:
Neste momento temos em nossa tela as três listas do campo Data, cada uma das listas poderá receber valores diferentes de seleção devido a configuração do Estado Alternativo realizada em cada uma delas!Vamos criar um botão que vai passar a seleção realizada na Lista de Data de Início e Lista de Data Fim para a terceira lista. Neste botão agora podemos reparar que as ações também precisam identificar a qual Estado Alternativo elas irão executar:
A ação que criaremos será a de Selecionar no Campo e deverá ser preenchido com o Estado Alternativo Padrão: conforme imagem:
Em Pesquisa de Caracteres iremos passar a fórmula para indicar o intervalo que deverá ser selecionado:
Vamos entender:
Pronto! Agora basta clicar sobre este botão e ver o resultado:
Claro que as duas possibilidades possuem pontos negativos se comparados a simples seleção de uma lista, mas é uma forma de como se fazer tal seleção. Lembre-se de avaliar qual o método melhor para o seu cenário.
Obrigado e até a próxima semana!
Sensacional, estava precisando exatamente isso, valeu!!
Acabei de implantar a primeira situação, ficou perfeito! Muito obrigado por postar esse artigo!
Estou com um problema com as 2 situações, se eu coloco buscar por ex.:
Data inicial : 01/07/2016
Data Final : 10/07/2016
Está selecionando até uma data antes da data final ( neste caso até 09/07/2016) , e eu coloquei exatamente da maneira como explicado, não consigo achar algo para resolver.
Alguém teve o mesmo problema?
Todas as informações e formatações estão corretas.
Eu consigo mandar buscar >= Data Inicial <= Data Final + 1 dia?
Se sim, como ficaria a expressão ?
Tenta usar o operador, "Maior ou igual" >=, "Menor ou igual" <=
Ótimo post, poucas aplicações que vi até hoje no ambiente empresarial não utilizaram algo parecido com um filtro para intervalo de datas, realmente importante. Parabéns!
Excelente post.
Muito bom mesmo o post, gostaria só de saber se consigo fazer os mesmos moldes no Sense.
Abraços
Por padrão não é possível realizar no Sense, talvez seja possível com extensions, mas não conheço nenhuma que faça isso