Formulário de Pesquisa

04/04/2006

Olá pessoal!
Procurei pelo fórum e não encontrei exatamente o que preciso...
Resumidamente é o seguinte... em um form, tenho um dbgrid que lista todos os registros da minha tabela, e um botão ´Pesquisar´.

Clicando sobre o botão ´Pesquisar´, abre uma nova janela contendo uma ComboBox em que seleciono o campo da tabela a pesquisar, e um dbedit onde informo o conteúdo a pesquisar. Até aí tudo bem.

A questão é que preciso que ao encontrar o valor pesquisado, feche a janela de pesquisa e volte para o form que contém o dbgrid, com o registro que contém o valor pesquisado, selecionado.

Alguém pode me dar alguma dica?

Estou trabalhando com Firebird, componentes FIBPlus...


Tomew

Respostas

04/04/2006

Paullsoftware

amigo o que vc pode fazer é tratar as informações escolhidas no ComboBox tratando o indice...
Case ComboBox1.ItemIndex of
 0://Indice que Representa o campo Codigo
   begin
    TbCadastro.Locate(´Nome´,StrToInt(Edit1.Text),[&93;);
   end;
 1://Indice que representa o campo nome
   begin
     TbCadastro.Locate(´Codigo´,Edit1.Text,&91;loPartialKey&93;);
   end;
....
end;/fo Case
espero ter ajudado :wink:


Responder Citar

05/04/2006

Titanius

Amigo,

voce pode chamar a tela do Combo como Modal, assim você ela:

if FormCombo.ShowModal = 1 then
begin
// ele localizou
end;


na tela do combo, se localizou o registro voce coloca

[code]
ModalResult := mrOk;
/code]


Espero ter ajudado.

[]s


Responder Citar

06/04/2006

Paullsoftware

supondo que sua janela de pesquisa tenha: 1 ComboBox, 1 Edit, 1 Butão e 1 Grid...
Você coloca o codigo que te passei no botão pesquisar ou no onKeyPress do Edit...

Supondo que os itens do seu combobox seja: Codigo, Nome, etc...
Case ComboBox1.ItemIndex of 
 0://Indice que Representa o campo Codigo 
   begin 
    TbCadastro.Locate(´Nome´,StrToInt(Edit1.Text),[&93;); 
   end; 
 1://Indice que representa o campo nome 
   begin 
     TbCadastro.Locate(´Codigo´,Edit1.Text,&91;loPartialKey&93;); //precisa da Uses DB
   end; 
.... 
end;//do Case


espero ter ajudado


Responder Citar