Implementando Tela de Pesquisa Padrão : Delphi e DataSource - Parte 2

Veja nesta Quick irei mostra como podemos criar uma tela de pesquisa padrão usando DataSource, para que possamos aproveitar a mesma para qualquer tipo de DataSet, ou seja ClientDataSet, DataSets do BDE, DataSets do IB, DataSets do DBExpress, entre outros

Olá galera, nesta Quick Tips, irei continuar mostrando como podemos criar uma tela de pesquisa padrão usando DataSource, para que possamos aproveitar a mesma para qualquer tipo de DataSet, ou seja ClientDataSet, DataSets do BDE, DataSets do IB, DataSets do DBExpress, entre outros.

 

Vamos à implementação do exemplo completo na tela de Pesquisa:

 

Selecione o BtnPesquisa, e no evento onClick vamos implementar :

procedure TFrmPesquisa.BtnPesquisaClick(Sender: TObject);

begin

  { Observe que este código esta comentado, pois caso você queria pesquisar com o Tipo TPString, e localizar todos os itens, você não precisa informar o nenhum valor, e vão ser carregados todos os dados desejados;

  if EdtConteudo.Text = '' then

  begin

ShowMessage('Preenchimento do campo obrigatório!');

Abort;

  end; }

 

  With TClientDataSet(DSPesquisa.DataSet) do

  begin

Filtered := False;

case TipoPesquisa of

  TPString:  Filter := UpperCase(xCampoPesquisa + ' Like ' + QuotedStr

   ('%' + EdtConteudo.Text + '%'));

TPNumero: Filter := xCampoPesquisa + ' = ' + EdtConteudo.Text;

TPData: Filter := xCampoPesquisa + ' = ' + EdtConteudo.Text;

end;

Filtered := True;

Open;

if IsEmpty then

ShowMessage('Nenhum registro encontrado !!!');

    GridPesquisa.SetFocus;

  end;

end;

 

Selecione o EdtConteudo, e no evento onKeyPress vamos implementar :

procedure TFrmPesquisa.EdtConteudoKeyPress(Sender: TObject; var Key: Char);

begin

  if key = #13 then

BtnPesquisa.Click;

end;

 

Selecione o FrmPesquisa, e no evento onShow vamos implementar :

procedure TFrmPesquisa.FormShow(Sender: TObject);

begin

  With TClientDataSet(DSPesquisa.DataSet) do

  begin

Filtered := False;

Close;

  end;

end;

 

Selecione o GridPesquisa, e no evento onDblClick vamos implementar :

procedure TFrmPesquisa.GridPesquisaDblClick(Sender: TObject);

begin

  Close;

  if DSPesquisa.DataSet.IsEmpty then

ModalResult := mrCancel

  else

ModalResult := mrOk;

end;

 

 

procedure TFrmPesquisa.GridPesquisaKeyPress(Sender: TObject; var Key: Char);

begin

  if Key = #13 then

  begin

Close;

if DSPesquisa.DataSet.IsEmpty then

ModalResult := mrCancel

else

ModalResult := mrOk;

end;

 

Veja na próxima parte como usar este exemplo completo, vamos criar uma tela de cadastro usando XML, e ClientDataSet.

 

Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.

 

Um abraço

 

 

Wesley Y

wyamazack@lithic.com.br

http://www.lithic.com.br

Artigos relacionados