Fórum Pesquisa com dbgrid. Me ajudem #198342
02/12/2003
0
ola pessoal
o que estou precisando e o seguinte, vamos ver se eu pelo menos consigo explicar.
Tenho um formulario de pedidos [b:7391129fc3](frmpedidos).[/b:7391129fc3]
Preciso informar o cliente atraves de um outro formulario de busca [b:7391129fc3](FrmBuscaCliente) [/b:7391129fc3]que tem um edit e um dbgrid que mostra o codigo e o nome do cliente.
Codigo pra chamar o fomulario de pesquisa
if frmcliente = nil then
frmcliente:=TFrmcliente.create(self);
frmcliente.windowstate:=wsnormal;
Codigo pra mostrar o registros no dbgrid.
strsql:= ´ select * from ´ + nometabela;
straql:= strsql +´ where upper(nomecliente)like ´ + #39 + edit1.text + ´¬´ + 39;
executar:=sentencasql;
ATE AQUI TUDO FUNCIONA 100¬
O que eu nao estou consigo fazer e quando eu der um enter no registro selecionado no dbgrid o [b:7391129fc3]frmbuscacliente[/b:7391129fc3] seja fechado e o codigo do cliente seja copiado, transferido ou apareca de alguma forma no [b:7391129fc3]dbeditcliente[/b:7391129fc3] no formulario [b:7391129fc3]frmpedidos[/b:7391129fc3]
a unica coisa que consegui fazer foi isso:
showmessage(Dbgrid1.fields[0].asvariant)
que me retorna com codigo do cliente selecionado no dbgrid.
esse mesmo formulario de busca vou usar em outros lugares tambem aonde ouver que informar o codigo do cliente.
se alguem poder me ajudar .
desculpe pessoal mas estou precisando disso o quanto antes.
desde ja agradeco.
o que estou precisando e o seguinte, vamos ver se eu pelo menos consigo explicar.
Tenho um formulario de pedidos [b:7391129fc3](frmpedidos).[/b:7391129fc3]
Preciso informar o cliente atraves de um outro formulario de busca [b:7391129fc3](FrmBuscaCliente) [/b:7391129fc3]que tem um edit e um dbgrid que mostra o codigo e o nome do cliente.
Codigo pra chamar o fomulario de pesquisa
if frmcliente = nil then
frmcliente:=TFrmcliente.create(self);
frmcliente.windowstate:=wsnormal;
Codigo pra mostrar o registros no dbgrid.
strsql:= ´ select * from ´ + nometabela;
straql:= strsql +´ where upper(nomecliente)like ´ + #39 + edit1.text + ´¬´ + 39;
executar:=sentencasql;
ATE AQUI TUDO FUNCIONA 100¬
O que eu nao estou consigo fazer e quando eu der um enter no registro selecionado no dbgrid o [b:7391129fc3]frmbuscacliente[/b:7391129fc3] seja fechado e o codigo do cliente seja copiado, transferido ou apareca de alguma forma no [b:7391129fc3]dbeditcliente[/b:7391129fc3] no formulario [b:7391129fc3]frmpedidos[/b:7391129fc3]
a unica coisa que consegui fazer foi isso:
showmessage(Dbgrid1.fields[0].asvariant)
que me retorna com codigo do cliente selecionado no dbgrid.
esse mesmo formulario de busca vou usar em outros lugares tambem aonde ouver que informar o codigo do cliente.
se alguem poder me ajudar .
desculpe pessoal mas estou precisando disso o quanto antes.
desde ja agradeco.
Rodrigo Muller
Curtir tópico
+ 0
Responder
Posts
02/12/2003
Adilsond
Existe mais de uma possível solução. Detalho uma abaixo.
Nomes dados no exemplo as units:
Unit: uCadastro; Formulário: frmCadastro;
Unit: uCliente; Formulário: frmCliente;
Defina a unit uCadastro na uses da unit uCliente;
No evento on KeyPress da DBGrid da unit uCliente voce faria:
if Key = #13 then
begin
if frmCadastro.tblxxxxxx.State = dsBrowse then
frmCadastro.tblxxxxxx.Edit;
frmCadastro.tblxxxxxxCdCliente.Value := MinhaQuery.Fields[0].AsInteger;
end;
só que o código acima ficaria deselegante, então, para resolver o problema criamos uma procedure na seção public da unit uCadastro:
procedure frmCadastro.SetCodigoCliente(const CdCliente: Integer);
begin
if tblxxxxxx.State = dsBrowse then
tblxxxxxx.Edit;
tblxxxxxxCdCliente.Value := CdCliente;
end;
No evento on KeyPress da DBGrid da unit uCliente voce faria:
if Key = #13 then
frmCadastro.SetCodigoCliente(MinhaQuery.Fields[0].AsInteger);
Responder
Gostei + 0
02/12/2003
Rodrigo Muller
Obrigado AdilsonD
Funcionou como eu precisava
Funcionou como eu precisava
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)