cxGrid FilterRow 添加左模糊查询,实现 %ABC%

参考了 踏雪无痕 的资料 :http://blog.csdn.net/zengcong2013/article/details/12343171

由于 cxGrid 中,使用较多是 cxGridDBTableView 因此调整了一下,更方便 Ctrl V

 --------------------------------------------------------------------------------------------------------

 

cxGrid 的FilterRow 默认是右匹配模糊查询,即 ABC%

因此需要添加代码,实现 %ABC% 左右模糊查询

 

1、主要处理的过程为

procedure SetCustomFilterRow(cxGridTableView: TcxGridDBTableView);
var
  I: Integer;
  S: string;
begin
  with cxGridTableView, ViewData do
  begin
    if FilterRow.Focused then
    begin
      for I := 0 to ColumnCount - 1 do
      begin
        S := VarToStr(FilterRow.Values[I]);
        if (Length(S)> 0) and (S[1] <> '%') then
          FilterRow.Values[I] := '%' + S;
      end;
    end;
  end;
end;

 

 

2、在 cxGridDBTableView1的 Event—>DataTontroller—>Filter—>OnChanged

添加代码

procedure TForm1.cxGridDBTableView1DataControllerFilterChanged(Sender: TObject);
begin
  SetCustomFilterRow(cxGridDBTableView1);
end;

 

posted @ 2018-01-29 11:03  K.R  阅读(506)  评论(0编辑  收藏  举报