Sandrelle
08/09/2011 - 10:25
Oi Bom Dia!
eu novamente... já fiz uma pesquisa o forum e não achei algo parecido a respeito...
São duas situações, porém parecidas...
1 - Tenho um form de localizar registro... faço a pesquisa, encontro o resultado, mas não sei como jogar o resultado na outra tela. Isso na tabela que sei que tem apenas (uma) informação com este nome.
2 - Em uma outra tabela, outro form de localizar , a pesquisa deve ser feita com base no parametro escolhido pelo usuario pode ser o nome, o setor ou a data e nesse caso terá mais de um resultado. Gostaria de quando encontrado aparecessem em um DBGrid e ao selecionar o registro fosse jogado na outra tela para ser exibido completo. Tem como isso ser feito?
Estou usando DBEdits e AdoQuerys...
Desculpe se me atrapalhei sou iniciante, mas tenho muita vontade de aprender.... Obrigada!
Eduardo - São Paulo
08/09/2011 - 15:00
Sandrelle, é o seguinte, vamos ver se resolvemos os dois ítens de uma só vez:
Utilizo um RadioGroup para que dados serão filtrados(no meu caso - Nome - CPF - RG) (RgProcura)
Utilizo um Edit para Digitar (EdtPes)
Um DBGrid para mostrar os Dados na tela
Uma Query que aqui chamarei de ADOCli e um DataSource ligado no DBGrid
Este é um código que utilizo para fazer a filtragem de acordo com o que é digitado e foi selecionado em um RADIOGROUP
eu coloco este código no ONChange do EDIT
procedure TForm.LocReg(Sender: TObject);
begin
Case RgProcura.ItemIndex Of
0:Begin
AdoCli.Close;
AdoCli.SQL.Clear;
AdoCli.SQL.Add('Select * From CadCli ');
AdoCli.SQL.Add('Where Cli_Nom ' + ' Like ' + QuotedStr(EdtPes.Text +'%'));
AdoCli.ExecSQL;
AdoCli.Active:= True;
End;
1:Begin
AdoCli.Close;
AdoCli.SQL.Clear;
AdoCli.SQL.Add('Select * From CadCli ');
AdoCli.SQL.Add('Where Cli_CPF ' + ' Like ' + QuotedStr(EdtPes.Text +'%'));
AdoCli.ExecSQL;
AdoCli.Active:= True;
End;
2:Begin
AdoCli.Close;
AdoCli.SQL.Clear;
AdoCli.SQL.Add('Select * From CadCli ');
AdoCli.SQL.Add('Where Cli_RG ' + ' Like ' + QuotedStr(EdtPes.Text +'%'));
AdoCli.ExecSQL;
AdoCli.Active:= True;
End;
End;
end;
Quando mostrar o resultado e você quizer mandar ele para o outro form (Form de Cadastro) eu utilizo o ONDblClick do Grid e fecho o form quando dou dois cliques nele, assim o ítem será mostrado no Form de Cadastro - acontece que como você utiliza o DB, quando um for fechar tem que fazer um locate do ítem que você selecionou na tabela que você utiliza para mostrar no cadastro de cliente e dai sim fechar...
Como você disse que já sabe como filtrar apenas o ítem desejado, fica fácil ... faça isso no OnDblClick do DBGrid
Espero que tenha ajudado, ou te dado uma idéia...
Abraços
Eduardo
pimpocvl007
10/09/2011 - 09:58
Bom dia Sandrelle.
1 - Tenho um form de localizar registro... faço a pesquisa, encontro o resultado, mas não sei como jogar o resultado na outra tela. Isso na tabela que sei que tem apenas (uma) informação com este nome.
R. Eu utilizo os componente do "interbase", (tibquery, tibdataset). Digamos que você tem o Form1 o qual deve receber os dados do Form2 "pesquisa". Digamos que o resultado apresentado no Form2 e mostrado num "Grid", quando você der Dois cliques no registro listado no "grid" o sistema deve pegar o valor da coluna "zero" (primeira coluna do grid) deste registro e jogalo para o "campo" do Form1, localizar o registro selecionado no Form1 e fechar o Form2.
[Form2]
//Este código pega o valor do registro selecionado da primeira coluna do grid e joga no campo (edit1.text) do Form1, executa o processo para localizar o registro no Form1 e fecha o Form2.
//No evento "dois cliques" do grid você insere:
Form1.edit1.text := grid1.fiels[0].text;
Form1.LocalizaCadastroCliente;
Close;
[Form1]
//Tenho um processo (procedure) para localizar o registro desejado no Form1, digamos que o nome deste processo é: "LocalizaCadastroCliente" sua estrutura seria:
begin
tibdataset.close;
tibdataset.slq.clear;
tibdataset.slq.add('select * from TABELACLIENTE where NM_CLIENTE = '+quotedstr(edit1.text)+'');
tibdataset.open;
end;
2 - Em uma outra tabela, outro form de localizar , a pesquisa deve ser feita com base no parametro escolhido pelo usuario pode ser o nome, o setor ou a data e nesse caso terá mais de um resultado. Gostaria de quando encontrado aparecessem em um DBGrid e ao selecionar o registro fosse jogado na outra tela para ser exibido completo. Tem como isso ser feito?
R. Sim, o mesmo método utilizado acima serve para este caso. A sua duvida e somente com relação a transportar o resultado de um form para outro ou também em como realizar a pesquisa com mais de um parâmetro?
Sandrelle
12/09/2011 - 12:28
Oie Bom dia!
Muito Obrigada pela ajuda!
Oi
pimpocvl007!
Eu não consegui criar o processo(procedure), deu erro.. poderia me explicar ?
Acho que eu que não soube criar...
é a de jogar pra outra tela...

Oi
Eduardo!
Obrigada pela ideia, modifiquei algumas coisas no meu form e ficou bem legal... mas ainda me falta uma coisinha
você poderia me dizer como eu faria oLocate?
Sandrelle
19/10/2011 - 10:14
Bom Dia!
Obrigada pela ajuda, eu consegui, fiquei com umas pequenas duvidas,mas consegui...
Pode marcar como resolvido...!
Sandrelle Mourão
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor
clique aqui.