Compondo Filtros
Interface de Composição de Filtros
O sistema utiliza uma arquitetura flexível para a segmentação de dados, onde a lógica de filtragem é organizada em Objetos Filtro nomeados. Esta abordagem permite que um único relatório suporte múltiplos cenários de consulta, atendendo às diversas necessidades de análise do usuário final.
- Estrutura de Gerenciamento: O sistema permite a persistência de múltiplos objetos filtro para um mesmo relatório, cada qual com seu nome e descrição correspondentes, facilitando a organização e a rápida recuperação de parâmetros de consulta pré-definidos.
- Composição da Interface: A tela de composição é estruturada em duas abas funcionais distintas:
- Aba de Manutenção: Destinada ao gerenciamento do ciclo de vida dos filtros, permitindo a criação, edição, renomeação e exclusão das definições de filtro.

Fig. 01 - Aba de Construção (Sentenças): O ambiente de trabalho onde as sentenças lógicas são definidas. É nesta seção que o usuário estabelece as condições que, posteriormente, serão traduzidas e anexadas ao comando SQL principal do relatório.

Fig. 02 - Flexibilidade em Tempo de Execução: Ao solicitar a execução de um relatório, o usuário pode selecionar um dos filtros previamente configurados. A interface permite não apenas a alteração dos valores de referência dentro das sentenças existentes, mas também a modificação da própria estrutura lógica do filtro antes da submissão ao motor de processamento do relatório.
Exemplos
A título de exemplificação, detalharemos o processo de definição de um filtro, demonstrando desde a construção de uma estrutura simplificada até a implementação de sentenças complexas. Adicionalmente, para ilustrar a flexibilidade do aplicativo, que permite a coexistência de múltiplos filtros nomeados para um mesmo relatório, procederemos com a inclusão de um novo registro à lista de filtros apresentada na Figura 01 e testaremos os dois conjuntos.
No formulário inclusão/edição de filtros na aba 'Filtros' (figura 01), incluímos um novo filtro:

Fig. 03
Selecionamos o filtro recém criado, e com um duplo clique a aba Sentenças (figura 02) é aberta (ou simplesmente clicamos nela). Essa aba contém o editor de sentenças.
Daremos uma breve descrição dos componentes e suas responsabilidades dentro do editor a seguir:
|
Componente |
Responsabilidade |
||||||||||||||||||||
|
|
Habilita o formulário para inclusão de uma nova sentença. |
||||||||||||||||||||
|
|
Cancela a edição da sentença. |
||||||||||||||||||||
|
|
Adiciona a sentença à lista de sentenças. |
||||||||||||||||||||
|
|
Atualiza uma sentença selecionada. |
||||||||||||||||||||
|
|
Remove uma sentença |
||||||||||||||||||||
|
|
Limpa a lista de sentenças. |
||||||||||||||||||||
|
|
Caixa se seleção de operadores lógicos E/OU (AND/OR) |
||||||||||||||||||||
|
|
Seletor de campo para aplicar à sentença. |
||||||||||||||||||||
|
|
Seletor de operador de comparação. Tem-se os seguintes valores:
|
||||||||||||||||||||
|
|
Editor de valores de comparação. (se adapta conforme o tipo de dados do campo selecionado). |
||||||||||||||||||||
|
|
Botões para inclusão/exclusão de parênteses ou isoladores de sentenças. |
||||||||||||||||||||
|
|
Mostra a sentença real SQL gerada (somente disponível para o perfil Administrador). |
Criando Sentenças
Vamos, agora, criar a sequência de sentenças que comporão o filtro e verificaremos os resultados.
- Selecionamos o botão "Novo". (Caso essa seja a primeira sentença a caixa de seleção de operadores lógicos fica desabilitada). Na lista de campos selecionamos o campo 'Country'.
- Em operandos selecionamos 'Na lista' (esse operador pede que entremos com uma lista de valores separados por vírgula).
- Informamos a lista no campo editor de valores e pressionamos o botão Adicionar. Ao final teremos a sentença definida mostrada na lista de sentenças:

Fig. 04

Fig. 05
Com esse sentença de filtro definida na figura 05, somente serão retornados registros que contenham 'Brazil' ou Argentina no campo Country.
Podemos aplicar sentenças mais complexas como na figura 06:

Fig. 06

Fig 07











