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, onde cada Filtro possui um bloco de sentenças SQL. 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.
Camada Dinâmica: Os critérios construídos pelo usuário nesta tela compõem a 3ª e última camada da consulta. Eles são aplicados sobre as regras restritivas pré-existentes no sistema. Entenda a lógica de concatenação lendo o tópico Como o Sistema Processa os Filtros (Regra de Composição SQL).
- Estrutura de Gerenciamento: O sistema permite a persistência de múltiplos objetos filtro para um mesmo relatório, cada qual com seu nome, descrição e seu conjunto de sentenças próprias, facilitando a organização e a rápida recuperação de parâmetros de consulta pré-definidos por bloco de sentenças individualizados.
- 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 no item ou selecionando a aba sentenças diretamente, temos acesso ao editor de sentenças.
Daremos uma breve descrição dos componentes presentes nesse editor e suas responsabilidades 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











