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

参考了 踏雪无痕 的资料 :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;

发布了382 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_18932003/article/details/105069365