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
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo