sexta-feira, 15 de junho de 2007

Rotina em DELPHI para localizar nomes de Clientes em um dado DBGrid

A procedure abaixo deve ser solicitada no evento "OnKeyUp" do Edit utilizado para fazer a pesquisa de localização. Então, cada vez que um usuário digita uma tecla e solta-a, é disparado o evento que chama a procedure
"alx_voi_Localizar_Clientes()". O grid associado ao componente "ADOQuery_Clientes"
é preenchido com os clientes que satisfazem o critério de pesquisa e localização.
É isso, simples e eficiente...:)

//===========================================================================
procedure Tfrm_clientes.alx_voi_Localizar_Clientes();
var
alx_str_sql_texto: TStrings;
alx_str_prefixo : String;
begin
try
alx_str_prefixo:= self.Edit1.Text + '%'; //... utilizando o curinga "%" como sufixo de pesquisa ...
alx_str_sql_texto:= TStringList.Create();
alx_str_sql_texto.Add('SELECT CLI_ID , CLI_NOME , CLI_CPF , CLI_FONE , CLI_ENDERECO , CLI_CITY_ID , ');
alx_str_sql_texto.Add(' CITY_NOME , UF_SIGLA , CLI_NIVER , CLI_FUNC_ID , FUNC_APELIDO ');
alx_str_sql_texto.Add('FROM CLIENTES , CIDADES , UNIDADES_FEDERACAO , FUNCIONARIOS ');
alx_str_sql_texto.Add('WHERE CLI_CITY_ID = CITY_ID AND CITY_UF_ID = UF_ID AND CLI_FUNC_ID = FUNC_ID ');
alx_str_sql_texto.Add(' AND CLI_NOME LIKE : ');
alx_str_sql_texto.Add('ORDER BY CLI_NOME ; ');
self.ADOQuery_Clientes.Active:= False;
self.ADOQuery_Clientes.SQL.Clear();
self.ADOQuery_Clientes.SQL:= alx_str_sql_texto;
self.ADOQuery_Clientes.Parameters[0].Value:= sl_str_prefixo;
self.ADOQuery_Clientes.Active:= True;
except
on E: Exception do begin
showmessage('Ôpa, ocorreu um erro ao Pesquisar o conjunto de CLIENTES! Veja: ' + E.Message );
end;
end;
end;
//==============================================================================
//==============================================================================

Nenhum comentário: