/TLookupEdit

Componente para pesquisa de registros em Delphi

Primary LanguagePascal

TLookupEdit

Componente para pesquisa de registros em Delphi.

Sobre

O componente consiste em um edit que realiza a busca dos registros de acordo com o filtro informado, criando uma grid dinâmica abaixo do edit onde pode-se selecionar o resultado desejado.

Documentação

No Object Inspector do componente é possível ajustar 6 configurações, sendo elas:

*AutoList:

  • Esta opção representa se o grid será ou não exibido no momento em que o edit recebe o foco.
    --- alChange significa que o grid não será exibido quando o edit receber o foco, apenas quando digitar.
    --- alEnter significa que o grid será exibido quando o edit receber o foco.

*DisplayField:

  • Esta opção representa o campo/coluna da tabela que será exibido no edit quando o registro for escolhido.

*KeyField:

  • Esta opção representa o campo/coluna chave da tabela em caso de querer recuperar o ID, por exemplo, quando o registro for escolhido. Muito últil em casos de relacionamentos de tabelas (Foreign Key)

*ListSource:

  • Esta opção representa a tabela que será listada no grid.

*SearchField:

  • Esta opção representa o(s) campo(s)/coluna(s) da tabela que será(ão) levado(s) em conta para o filtro.
  • Para informar mais de um campo, separar por ";" (ponto e vírgula). Exemplo: ID;NOME;CPF

*ShowColumn:

  • Esta opção representa o(s) campo(s)/coluna(s) da tabela que será(ão) exibido(s) no grid.
  • Para informar mais de um campo, separar por ";" (ponto e vírgula). Exemplo: ID;NOME;CPF

Considerações finais

  • Ao utilizar o componente em modo debug, pode acontecer de um erro de conversão ser exibido. Calma, isso ocorre porque no método de filtragem dos dados eu verifico, de acordo com os campo(s)/coluna(s) configurados na propriedade "SeachField", os seus respectivos tipos (TStringField, TIntegerField, etc) para que o filtro possa ser aplicado e os resultados possam ser apresentados de forma coerente com o texto digitado no LookupEdit. Então, isso é totalmente normal acontecer, basta prosseguir com a execução do projeto, além de que, como as execuções estão dentro de um Try/Except, em modo release o erro não será apresentado.

  • O componente foi desenvolvido para realizar as filtragens através do método Filter da classe TDataSet, então, ele só irá trabalhar 100% corretamente se o seu componente que monta a tabela possuir essa propriedade e permitir seu uso. Adianto que essa propriedade Filter não funciona com o IBQuery da paleta Interbase. Em seu desenvolvimento o LookupEdit foi testado com ClientDataSet e FDQuery, obtendo êxito em seu funcionamento.