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