Trata-se de uma função que permite a filtragem sequencial, em qualquer ordem, dos registros de um formulário para campos dos seguintes tipos :
Texto; Data/Hora; Sim/Não; Autonumeração; Byte; Inteiro; Inteiro Longo; Simples; Duplo; Decimal
Você pode criar quantas combinações de filtros quiser. As caixas de combinação dos filtros ainda não usados apresentam apenas os dados compatíveis com a filtragem anterior.
Para usar, você deve importar a função para o seu banco de dados, criar ou adaptar caixas de combinação para uso como filtro segundo determinadas regras e anexar a elas um procedimento de evento “Ao Atualizar” que faz a chamada da função. No exemplo essas etapas são descritas em detalhes (botão Como Usar).
O código está comentado.
Veja os termos de uso na página Sobre
Antes de baixar, veja este exemplo que é muito mais versátil
Atualização 0.3 (15/3/2012)
Nesta versão foi incluída a possibilidade de se ter filtros classificados em ordem decrescente.
Nas versões anteriores independente da classificação inicial do filtro, após a primeira filtragem ou a remoção do filtro, todas as caixas de combinação dos filtros eram classificadas em ordem crescente.
Se usou a versão anterior (V2 0.2) em seus programas, basta substituir o módulo FiltrosSequenciaisV2 pela versão deste exemplo.
Para usar, siga as instruções mostradas ao clicar o botão “Como usar” do exemplo.
.
Orientações
Quando a Origem do registro do seu formulário tem uma associação do tipo 1 para muitos, caso exista um registro do lado 1 sem um dado associado no lado muitos , o que vai ocorrer é que o registro com esse dado não vai aparecer no formulário . Para que isso não ocorra, você deve alterar o tipo de associação como mostrado abaixo.
Atenção : Esta instrução de montagem não está incorporada no exemplo !
A origem do registro do seu formulário tem que ser uma instrução SQL (Select ….) . Se você usar o nome da tabela como origem do registro vai dar erro !
28/9/2012
.
Pergunta interessante colocada nos comentários :
Como imprimir os resultados da filtragem do formulário em um relatório ?
Resposta : No seu formulário que tem os filtros, coloque um botão para abrir o seu relatório.
Na janela propriedades do relatório, na aba Dados, troque a opção Filtro ativado de Não para Sim.
No evento AoAbrir do relatório, coloque a seguinte instrução:
Me.Filter = varFiAc
Alternativamente você pode deixar a opção Filtro ativado como Não e colocar no procedimento Ao Abrir do relatório a instrução:
Me.FilterOn = True
Me.Filter = varFiAc
Obs: Só para garantir, certifique-se que a origem dos registros do seu relatório é a mesma da origem dos registros do seu formulário !
Histórico das versões
Por favor, antes de tentar modificar a função ou postar um comentário, clique aqui.
Comentários