Fórum Forrm de consulta ser chamado em varios forms? #135062

17/04/2010

0

Pessoal, como faço para aproveitar um form de consulta ser chamado em varios forms o resultado da consulta?

Por exemplo: No form cadastro de contas a receber tenho um botão e chamo o form consulta e no form consulta localizo um cliente e retorno em em dbedit do form cadastro contas receber o nome deste cliente.

O mesmo processo feito chamando de outros forms só que retornando o resultado para o dbedit daquele outro form que chamou.

Para ser retornado por apenas um form eu uso assim (estou concatenando o ID do cliente + o nome do cliente num só resultado, mais isso não tem haver, é apenas para efeito de mostrar no outro edit)

frmcadordserv.cbclientes.text := Format( '%.6d', [dm.clientesidclientes.value ] )+ ' | '+dslocal.DataSet.FieldByName('nomeclie').asstring;
   close;
   frmcadordserv.cbclientes.SetFocus;

Agora para varios form's ai eu não sei como fazer.



Adriano Dolce

Adriano Dolce

Responder

Posts

17/04/2010

Adriano Dolce

Até que ja estou chamando o form de consulta, mas não esta funcionando como deveria. Ou seja na primeira chamada não traz o nome do cliente, apenas da segunda em diante

O codigo de chamada do form é este

Código:
procedure 
TfrmCadContasReceber.spBuscaClienteClick(Sender: TObject);


begin





  
{---------------------------------------------------------------------}


  { chama o form de consulta de clientes, uso este método para chamar  
 }


  { de qualquer form                                                    }


  
{---------------------------------------------------------------------}


  Application.CreateForm(Tfrmlocalcli, frmlocalcli);


  if frmlocalcli.ShowModal = mrOk then


  begin





    txtNome_Cliente.Text := dm.clientesnomeclie.AsString;


    txtNome_Cliente.SetFocus;





  end;


  FreeAndNil(frmlocalcli);





end;



No form de consulta tenho setado no dblclick do dbgrid o mesmo do botão de sair do form que é

Código:
modalresult := mrOk;



Estranho que faço o mesmo processo para chamar este form de outro form (Tfrmcadordserv) e funciona na primeira chamada

Código:
procedure 
Tfrmcadordserv.buscaclieClick(Sender: TObject);


begin


  
{---------------------------------------------------------------------}


  { chama o form de consulta de clientes, uso este método para chamar  
 }


  { de qualquer form                                                    }


  
{---------------------------------------------------------------------}


  Application.CreateForm(Tfrmlocalcli, frmlocalcli);


  if frmlocalcli.ShowModal = mrOk then


  begin





    txtNome_Cliente.text := Format( '%.6d', [dm.clientesidclientes.value
 ] )+ ' | '+dm.clientesnomeclie.AsString;


    txtNome_Cliente.SetFocus;





  end;


  FreeAndNil(frmlocalcli);





end;




Se eu debugar o código esta voltando um erro estranho de CPU
Vejam a imagem



Responder

Gostei + 0

21/04/2010

Adriano Dolce

Resolvido, em vez de eu jogar para o dbedit o resultado mandei direto para o dataset

Application.CreateForm(Tfrmlocalcli, frmlocalcli);
  if frmlocalcli.ShowModal = mrOk then
  begin

    dslocal.DataSet.FieldByName('CLIENTE').AsString := dm.clientesnomeclie.AsString;
    txtNome_Cliente.SetFocus;

  end;
  FreeAndNil(frmlocalcli);


Valeu pessoal....
Responder

Gostei + 0

22/04/2010

Fábio Cruz

Amigo tem um ótimo componente de terceiros que faz isso

é LapComponents

de uma olhada na video-aula https://www.devmedia.com.br/post-4716-Sistema-completo-com-Delphi-7-dbExpress-e-Firebird-2-0-Parte-VII.html

A única coisa que ele funciona com DBExpress
Responder

Gostei + 0

23/04/2010

Adriano Dolce

Obrigado pela ajuda Fabio, mais eu não utilizo DBX...

Valeu amigo
Responder

Gostei + 0

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

Aceitar