Delphi 数据集中文过滤

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
  cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, DB,
  cxDBData, StdCtrls, DBClient, cxGridLevel, cxClasses, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;

type
  TForm1 = class(TForm)
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    Edit1: TEdit;
    Button1: TButton;
    cxGrid1DBTableView1Column1: TcxGridDBColumn;
    cxGrid1DBTableView1Column2: TcxGridDBColumn;
    procedure ClientDataSet1FilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClientDataSet1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
var
  s: WideString;
begin
  s := dataset.FieldByName('name').AsString;
  Accept := Pos(edit1.Text, s) > 0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientDataSet1.FieldDefs.Add('id', ftInteger);
  ClientDataSet1.FieldDefs.Add('name', ftString, 100);

  ClientDataSet1.CreateDataSet;
  ClientDataSet1.Active := True;

  ClientDataSet1.Append;
  ClientDataSet1.FieldByName('id').Value := 1;
  ClientDataSet1.FieldByName('name').Value := '开发用户院海';
  ClientDataSet1.Post;

  ClientDataSet1.Append;
  ClientDataSet1.FieldByName('id').Value := 2;
  ClientDataSet1.FieldByName('name').Value := '我是汉族人';
  ClientDataSet1.Post;

  ClientDataSet1.Append;
  ClientDataSet1.FieldByName('id').Value := 3;
  ClientDataSet1.FieldByName('name').Value := '中国南方第一人';
  ClientDataSet1.Post;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientDataSet1.Filtered := False;
  if Edit1.Text <> '' then
    ClientDataSet1.Filtered := True;
end;

end.

 

posted @ 2018-01-31 09:41  都是城市惹的祸  阅读(332)  评论(0)    收藏  举报