pesquisa de cliente no form cadastro de cliente

Delphi

29/12/2003

No form cadastro de cliente gostaria de colocar um componente ao qual quando o usuario clicar nele vai abrir uma tela de pesquisa onde a medida q se digita o nome do cliente vai os nomes q se inicia com as letras digitadas e apos o usuario selecionar o registro vai aparecer todos os dados deste cliente no form para q possa ser editado, excluido etc.
alguém tem alguma dica como posso fazer isto ou pelo menos qual componente devo usar. desde já agradeço.


Murilo

Murilo

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

29/12/2003

Usa um DBGrid.....

e para aparecer todos os nomes com a letra que o usuario digitar é só fazer uma consulta Sql usando like, e colocar esta consulta no evento KeyPress (ou onChange) do componente que o usuario vai digitar..( te aconselho a usar um edit)


Espero Ter Ajudado!


Lucas!


GOSTEI 0
Murilo

Murilo

29/12/2003

Obrigado pela ajuda Lucas :D


GOSTEI 0
Wolverine

Wolverine

29/12/2003

:lol:

Amigo no form que vc faz o cadastro inclua um botao, nele insira este codigo (onclick!!!) abaixo.


procedure TFormClientes.ButtonProcurarClick(Sender: TObject);
var
Nome: String;
begin
Nome := ´´;
if InputQuery(´Procurar´, ´Razão Social/Nome´, Nome) then
if not TableClientes.Locate(´RazaoSocial´, Nome,
[loCaseInsensitive, loPartialKey]) then
ShowMessage(´Razão Social/Nome não encontrado!´);

end;


ou vc pode fazer oq o amigo Lucas Alves Silva disse, porem tem outro metodo:

inclua um edit e um button
no no evento KeyPress (ou onChange) do button digite:

(lembro q deve haver um Query e o dbgrid)

query.close;
query.sql.clear;
Query.SQL.Add(´select * from clientes where RazaoSocial >= ´´+Edit.Text+´´´);
query.open;

lembro tb q se os cliente foram cadastrados com Caps Lock teram q ser pesquisados em caps lock

qquer coisa, e-mail : marcioviniciusdias@bol.com.br


GOSTEI 0
Wolverine

Wolverine

29/12/2003

:lol: Amigo no form que vc faz o cadastro inclua um botao, nele insira este codigo (onclick!!!) abaixo. procedure TFormClientes.ButtonProcurarClick(Sender: TObject); var Nome: String; begin Nome := ´´; if InputQuery(´Procurar´, ´Razão Social/Nome´, Nome) then if not TableClientes.Locate(´RazaoSocial´, Nome, [loCaseInsensitive, loPartialKey]) then ShowMessage(´Razão Social/Nome não encontrado!´); end; ou vc pode fazer oq o amigo Lucas Alves Silva disse, porem tem outro metodo: inclua um edit no no evento KeyPress (ou onChange) do edit digite: (lembro q deve haver um Query e o dbgrid) query.close; query.sql.clear; Query.SQL.Add(´select * from clientes where RazaoSocial >= ´´+Edit.Text+´´´); query.open; lembro tb q se os cliente foram cadastrados com Caps Lock teram q ser pesquisados em caps lock qquer coisa, e-mail : marcioviniciusdias@bol.com.br



GOSTEI 0
Murilo

Murilo

29/12/2003

Me interessei pela sua primeira opção q acredito não precisar usar um dbgrid ao qual não sou muito fã pois acredito q deixa o form muito carregado e tb pelo q entindi esta não precisa digitar em caps lock mesmo se tenha sido cadastrado em caps lock porem só tem um problema o banco q estou usando eh o interbase ao qual não aceita comandos do tipo boleano como o loCaseInsensitive e o loPartialKey, vc sabe q comandos posso usar para substituir estes dois?


GOSTEI 0
Wagner

Wagner

29/12/2003

Cara eu uso dessa forma para pesquisa simples, na minha opnião é bem mais pratica.

No formulário cadastro de cliente crie um botão pesquisa que direcione para outro formulario (tipo f_pesquisa.showmodal) no formulario pesquisa (diminua o formulario para atras voce veja o formulario cliente) coloque um edit e um botao no evento onkeyup do edit digite:

procedure Form.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

Form_clientes.Tb_cliente.findnearest([edit1.text]);

dessa forma a medida que voce for digitando e ele pesquisando e mudando atras ate para no nome que voce deseja

Espero ter ajudado


GOSTEI 0
Murilo

Murilo

29/12/2003

Estou usando o interbase q não aceita funções do tipo boleana como findnearst porem com sua dica consegui implementar uma função com o locate q ficou blz, obrigado pela ajuda.


GOSTEI 0
POSTAR