Problema com pesquisa
Estou com o seguinte problema... tenho um form de cadastro de funcionários e nesse form tem um botão para chamar um form de pesquisa de funcionário, esse form de pesquisa tem um edit e um grid, conforme vou digitando no edit ele já vai buscando, até aí tudo blz.
O que não estou conseguindo fazer, é após achar o funcionário q quero manipular, fechar esse form de pesquisa e fazer com q esse funcionário pesquisado vá para o form de cadastro (o 1° aberto), já fiz isso em sistema q usava dbedit, aí dava um findkey na tabela e já era, qdo fechava a pesquisa o form de cadastro já estava no registro selecionado, mas nesse sistema preciso usar somente edit ao invés de dbedit.
Alguém tem alguma dica ou sugestão?
O que não estou conseguindo fazer, é após achar o funcionário q quero manipular, fechar esse form de pesquisa e fazer com q esse funcionário pesquisado vá para o form de cadastro (o 1° aberto), já fiz isso em sistema q usava dbedit, aí dava um findkey na tabela e já era, qdo fechava a pesquisa o form de cadastro já estava no registro selecionado, mas nesse sistema preciso usar somente edit ao invés de dbedit.
Alguém tem alguma dica ou sugestão?
Marco
Curtidas 0
Respostas
Omar Cury
08/07/2004
essa pergunta é dificil explicar escrevendo, mas vamos lá
há várias formas de se fazer isso...
ex. usando 2 tabelas (tabPesquisa e tabCliente)
Antes de vc fechar o formulario de pesquisa(depois que vc achou o cliente) vc tem que localizar na tabClientes a chave primária da tabela ´tabPesquisa´ atraves de um select(com parametros), locate ou usando o FindKey.
ex. do Locate
tabClientes.locate(´Codigo´,TabPesquisaCodigo.Value,[]);
Se nao entendeu, eu tento melhorar na próxima... :wink:
há várias formas de se fazer isso...
ex. usando 2 tabelas (tabPesquisa e tabCliente)
Antes de vc fechar o formulario de pesquisa(depois que vc achou o cliente) vc tem que localizar na tabClientes a chave primária da tabela ´tabPesquisa´ atraves de um select(com parametros), locate ou usando o FindKey.
ex. do Locate
tabClientes.locate(´Codigo´,TabPesquisaCodigo.Value,[]);
Se nao entendeu, eu tento melhorar na próxima... :wink:
GOSTEI 0
J_gus
08/07/2004
Seguinte.... eu realizo buscas de outra maneira que acho mais facil....
ve se te serve...
primeiro crie um form onde vc colocara um DBGrid, coloque nesse form uma query e uma DataSource. Ligue o DBGrid a query e o DataSource
adicione tambem a esse form dois BitBtn. Sete a propriedade Kind de um como bkOk e o outro como bkCancel.
agora no evento onKeyPress do edit que vc vai realizar a busca no seu formulario principal carregue a query do form que vc criou com o comando SQL tipo assim:
Form1 := TForm1.Create(Self);
Form1.Query1.SQL.Add(´blablablablala´);
depois abra a query.. faca a verificacao se ela trouxe algum registro. Se achar coloque assim:
Begin
if Form1.showmodal = MrOk then
Begin
QBusca.Close;
QBusca.SQL.Clear;
QBusca.SQL.Add(´SELECT * FROM MOTIVO_DEVOLUCAO WHERE COD_MDV = ´ + IntToStr(F_Busca.QBuscager.FieldByName(´CODIGO´).AsInteger) );
QBusca.Prepare;
QBusca.Open;
deste modo ele vai carregar o registro que foi encontrado e selecionado em uma query no seu proprio form ai eh só mandar os registros para o Edit.
Não sei se ficou bem claro.. quelquer dúvida entre em contato ok???
ve se te serve...
primeiro crie um form onde vc colocara um DBGrid, coloque nesse form uma query e uma DataSource. Ligue o DBGrid a query e o DataSource
adicione tambem a esse form dois BitBtn. Sete a propriedade Kind de um como bkOk e o outro como bkCancel.
agora no evento onKeyPress do edit que vc vai realizar a busca no seu formulario principal carregue a query do form que vc criou com o comando SQL tipo assim:
Form1 := TForm1.Create(Self);
Form1.Query1.SQL.Add(´blablablablala´);
depois abra a query.. faca a verificacao se ela trouxe algum registro. Se achar coloque assim:
Begin
if Form1.showmodal = MrOk then
Begin
QBusca.Close;
QBusca.SQL.Clear;
QBusca.SQL.Add(´SELECT * FROM MOTIVO_DEVOLUCAO WHERE COD_MDV = ´ + IntToStr(F_Busca.QBuscager.FieldByName(´CODIGO´).AsInteger) );
QBusca.Prepare;
QBusca.Open;
deste modo ele vai carregar o registro que foi encontrado e selecionado em uma query no seu proprio form ai eh só mandar os registros para o Edit.
Não sei se ficou bem claro.. quelquer dúvida entre em contato ok???
GOSTEI 0
Beppe
08/07/2004
Se o form é exibido com ShowModal, faça isso após sua exibição:
edFuncName.Text := tabFuncs.FieldByName(´NOME´).AsString;
GOSTEI 0
Adeno
08/07/2004
Você quer passar os dados do funcionário pesquisado para Edits?
Bom se for essa idéia, eu vou te dar uma idéia, é o seguinte:
- Depois de filtrar ai da maneira que vc quiser, ou filter, ou query vc vai ter seu dataset
- Nesse form que vc ta aperta Alt+F11, e escolhe a Unit do Form que vc quer enviar os dados.
O que vai acontecer?
Agora vc terá acesso aos itens do outro form, então quando vc estiver no seu Form2->Unit2 poderá mandar seus dados para o Form1->Unit1.
Exemplo:
Form1.Edit1.Text:=Edit1.Text;
Vc vai mandar um texto do Edit1 do seu Form2 para o Edit1 do Form1, não sei se era bem isso que vc tava kerendo....
Falow
Bom se for essa idéia, eu vou te dar uma idéia, é o seguinte:
- Depois de filtrar ai da maneira que vc quiser, ou filter, ou query vc vai ter seu dataset
- Nesse form que vc ta aperta Alt+F11, e escolhe a Unit do Form que vc quer enviar os dados.
O que vai acontecer?
Agora vc terá acesso aos itens do outro form, então quando vc estiver no seu Form2->Unit2 poderá mandar seus dados para o Form1->Unit1.
Exemplo:
Form1.Edit1.Text:=Edit1.Text;
Vc vai mandar um texto do Edit1 do seu Form2 para o Edit1 do Form1, não sei se era bem isso que vc tava kerendo....
Falow
GOSTEI 0