Campos de Busca (Lookup)
Entendendo os Campos de Busca Lookup
Em modelagem de dados, um campo do tipo Lookup (ou campo de consulta) é um recurso de interface e engenharia de dados que substitui a digitação manual de códigos por uma lista de seleção visual alimentada em tempo real por uma tabela secundária do banco de dados.
O objetivo principal do Lookup é humanizar e blindar a parametrização de filtros. Em bancos de dados relacionais, entidades dependentes costumam ser amarradas por chaves numéricas ou hashes (IDs) que não possuem significado imediato para o usuário de negócios. O mecanismo de Lookup intercepta esse cenário mapeando a chave interna para uma coluna descritiva legível.
O Problema vs. A Solução com Lookup
Sem a configuração de um Lookup, se o usuário final precisasse extrair um relatório de vendas focado em um único ponto comercial ou produto, o fluxo operacional seria o seguinte:
- Cenário Comum (Sem Lookup): O operador abre o editor de filtros no relatório e se depara com uma restrição técnica pura, precisando digitar exatamente uma informação crua:
- Filtro: IdFilial = 24 ou CategoriaId = "8a3f7ec8"
- Problema: O usuário é obrigado a adivinhar ou consultar uma planilha externa para saber a qual filial física o número 24 corresponde. Qualquer erro de digitação resulta em um relatório em branco ou incorreto.
- Cenário Otimizado (Com Lookup): Ao mapear previamente o campo como um Lookup na Fonte de Dados, a aplicação altera dinamicamente o controle de entrada de dados exibido na tela:
- Filtro: O campo passa a exibir uma lista de seleção (Combobox ou Dropdown).
- Comportamento: O operador apenas clica no menu e seleciona visualmente a opção "Filial Centro" ou "Filial Porto Alegre".
- Por Trás dos Panos: O motor do sistema traduz a escolha textual amigável do usuário de volta para o código correspondente (24) de forma totalmente transparente antes de submeter a query final ao banco.
Benefícios na Configuração do Datasource
Mapear tabelas auxiliares como fontes de Lookup traz três vantagens críticas para o ecossistema do sistema:
- Garantia de Integridade: Extingue erros de digitação e consultas inválidas geradas por filtros construídos com dados inexistentes no catálogo.
- Agilidade Operacional: Acelera o processo de extração de relatórios, pois o usuário não precisa memorizar ou rastrear chaves estruturais.
- Segurança e Abstração: O usuário consome a inteligência do banco de dados sem a necessidade de compreender relacionamentos complexos de chaves primárias e chaves estrangeiras (PK/FK).
No sistema cadastramos esse tipo de campo a partir da tela de listagem de campos de lookups:

Fig. 01
Formulário de Adição de Lookups:
Esta tela permite configurar a amarração entre a tabela principal da Fonte de Dados e uma tabela auxiliar do banco, transformando um campo de texto ou ID em uma lista seletiva visual para o usuário final:

Fig. 02
Parametrização do Mapeamento
- Campo Origem: O campo da sua tabela principal (geralmente uma chave estrangeira/ID) que receberá o comportamento de Lookup (ex: EmployeeID).
- Conexão do Lookup: O servidor e a base de dados onde a tabela auxiliar está hospedada.
- Tabela do Lookup: O objeto físico do banco de dados que contém a lista de opções que você deseja expor (ex: a tabela Employees).
- Campo Chave (Valor): A coluna da tabela auxiliar que contém o código interno real que o banco de dados espera receber na query (geralmente a chave primária, ex: EmployeeID).
- Campo Exibição (Texto): A coluna da tabela auxiliar que contém o nome amigável ou descrição humanizada que o usuário final verá na tela (ex: LastName ou NomeDoFuncionario).
Para exemplificação temos na figura 03 e 04 uma entrada de lookup e em seguida o efeito na tela de filtragem de dados:

Fig. 03
No editor de filtros, quando ProductID é selecionado, é apresentada uma lista descritiva para seleção do código:

Fig. 04
💡 Dica de Arquitetura: Filtro por ID Puro vs. Filtro por Lookup
Em cenários de alta produtividade, alguns operadores seniores preferem digitar o código numérico exato do registro (ex: digitar o ID 10248) por ser mais rápido do que navegar por uma lista de seleção, enquanto outros operadores dependem exclusivamente do nome amigável do Lookup.
Como o mapeamento de um Lookup altera o comportamento global daquele campo na tela de filtros, se o seu cenário exige ambas as formas de pesquisa simultaneamente, aplique a seguinte boa prática na criação da sua View no banco de dados:
- Crie um campo redundante na View: Duplique a coluna de ID no seu script SQL.
- Nomeie-os estrategicamente: Identifique as colunas de forma que o usuário final entenda o papel de cada uma.
- Exemplo: Mapeie CustomerID como "Cliente (Código)" e a coluna duplicada CustomerID_LK como "Cliente (Nome)".
- Aplique o Lookup apenas na cópia: Deixe o campo "Cliente (Código)" sem configuração (para digitação direta) e configure o Lookup descrito nesta tela exclusivamente para o campo "Cliente (Nome)".