Array
(
)

Formulário de Pesquisa

Tomew
   - 04 abr 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...


Paullsoftware
   - 04 abr 2006

amigo o que vc pode fazer é tratar as informações escolhidas no ComboBox tratando o indice...
#Código

Case ComboBox1.ItemIndex of
0://Indice que Representa o campo Codigo
begin
TbCadastro.Locate(´Nome´,StrToInt(Edit1.Text),[]);
end;
1://Indice que representa o campo nome
begin
TbCadastro.Locate(´Codigo´,Edit1.Text,[loPartialKey]);
end;
....
end;/fo Case
espero ter ajudado :wink:


Titanius
   - 05 abr 2006

Amigo,

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

#Código


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


na tela do combo, se localizou o registro voce coloca

#Código

ModalResult := mrOk;
/#Código



Espero ter ajudado.

[]s


Paullsoftware
   - 06 abr 2006

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...
#Código


Case ComboBox1.ItemIndex of
0://Indice que Representa o campo Codigo
begin
TbCadastro.Locate(´Nome´,StrToInt(Edit1.Text),[]);
end;
1://Indice que representa o campo nome
begin
TbCadastro.Locate(´Codigo´,Edit1.Text,[loPartialKey]); //precisa da Uses DB
end;
....
end;//do Case


espero ter ajudado