Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

epassos

Resultado de busca com IBquery

Recommended Posts

Pessoal,

 

Estou desenvolvendo um sistema onde tem um cadastro de clientes. No cadastro pus um botão que chama um form de busca onde você vai digitando o nome do cliente e vai aparecendo todos os nomes semelhantes ao digitado. Vejam o código abaixo:

 

procedure TfrmBuscaCliente.edtBuscaKeyUp(Sender: TObject; var Key: Word;  Shift: TShiftState);beginqryBusca.close;qryBusca.SQL.Clear;qryBusca.sql.add('SELECT * FROM CLIENTEPJ WHERE upper(RAZAO) like upper('+#39+'%'+edtBusca.Text+'%'+#39')');qryBusca.Prepare;qryBusca.Open;end;

O problema é o seguinte. Eu quero que, depois do usuario digitar o nome do cliente no Edit, ele vai clicar no DBGRID e selecionar o nome do cliente. Ai ele clica num botão e é direcionado para o form de cadastro do cliente com os dados do cliente. Tem como fazer isso? Estou usando para conexão, os componentes da paleta do Interbase.

 

Um abraço para todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma de fazer isso seria criar uma variável global no formulário principal, e quando o usuário escolher o cliente no grid do form da consulta, ele jogar o codigo do cliente na variável do form principal, ai se tu precisar de outras informações, cria um componente de query e como parâmetro passa o código do cliente. Depois popula os campos... com certeza deve ter outra forma...qualquer dúvida avisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma de fazer isso seria criar uma variável global no formulário principal, e quando o usuário escolher o cliente no grid do form da consulta, ele jogar o codigo do cliente na variável do form principal, ai se tu precisar de outras informações, cria um componente de query e como parâmetro passa o código do cliente. Depois popula os campos... com certeza deve ter outra forma...qualquer dúvida avisa.

Muito obrigado, se não for te explorar de demais, tem como você me explicar mais a fundo como funciona isso. Estou iniciando em Delphi e eu já suspeitava que seria desta que tenho que fazer. Só não sei como capturar a informação do Dbgrid e passar para a variável.Desde já agradeço a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo mais ou menos assim:

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls;type  TForm1 = class(TForm)	Edit1	: TEdit;	Button1  : TButton;	procedure FormCreate	(Sender: TObject);	procedure Button1Click  (Sender: TObject);  private	{ Private declarations }  public	{ Public declarations }	FPrmtrUsuCod : String;  end;var  Form1: TForm1;implementationuses	Unit2;{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin	 FPrmtrUsuCod := '';end;procedure TForm1.Button1Click(Sender: TObject);begin	 Form2 := TForm2.Create(nil);	 try		Form2.ShowModal;		Edit1.Text := FPrmtrUsuCod;	 finally		Form2.Free;	 end;end;end.
unit Unit2;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  Grids, DBGrids, StdCtrls, Db, ZAbstractRODataset, ZDataset, ZConnection;type  TForm2 = class(TForm)	Button1: TButton;	DBGrid1: TDBGrid;	ZConnection1: TZConnection;	ZReadOnlyQuery1: TZReadOnlyQuery;	ZReadOnlyQuery1usu_cod: TStringField;	DataSource1: TDataSource;	Button2: TButton;	procedure FormClose(Sender: TObject; var Action: TCloseAction);	procedure Button1Click(Sender: TObject);	procedure Button2Click(Sender: TObject);  private	{ Private declarations }  public	{ Public declarations }  end;var  Form2: TForm2;implementationuses	Unit1;{$R *.DFM}procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);begin	 Action := caFree;	 Form2  := nil;end;procedure TForm2.Button1Click(Sender: TObject);begin	 // botao OK	 Form1.FPrmtrUsuCod := ZReadOnlyQuery1.FieldByName('usu_cod').AsString;	 Self.Close;end;procedure TForm2.Button2Click(Sender: TObject);begin	 // botao cancela	 Form1.FPrmtrUsuCod := '';	 Self.Close;end;end.

ai tu verifica como fica melhor para seu programa... mas isso é somente um exemplo..

 

se funcionar ou não, avisa :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.