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;