GARANTIR DESCONTO

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.


Rodrigo Muller

Rodrigo Muller

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar