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:

  1. Garantia de Integridade: Extingue erros de digitação e consultas inválidas geradas por filtros construídos com dados inexistentes no catálogo.
  2. Agilidade Operacional: Acelera o processo de extração de relatórios, pois o usuário não precisa memorizar ou rastrear chaves estruturais.
  3. 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:

  1. Crie um campo redundante na View: Duplique a coluna de ID no seu script SQL.
  2. 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)".
  3. 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)".