给你一段我的代码参考一下。 procedure TFormCustomFilter.cxTextEditFilterKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var vFilter: string; vFilterStr: string; i: integer; vCount: integer; vInputText: string; vQuoInput: string; const sOr = ' or '; sLike = ' like '; sPercent = '%'; begin vCount := FilterStrings.Count; vInputText := cxTextEditFilter.Text; if not(vInputText = '') then begin if not cxCheckBoxIlegible.Checked then vQuoInput := QuotedStr(vInputText + sPercent) else vQuoInput := QuotedStr(sPercent + vInputText + sPercent); for i := 0 to vCount - 1 do begin vFilterStr := FilterStrings.Strings[i] + sLike + vQuoInput; if not(i = vCount - 1) then vFilter := vFilter + vFilterStr + sOr else vFilter := vFilter + vFilterStr; end; try FDataSet.Filtered := false; FDataSet.Filter := vFilter; FDataSet.Filtered := true; FFilter := vFilter; except end; end else FDataSet.Filtered := false; end;function TFormCustomFilter.GetStringList: TStringList; var i: integer; begin if FDataSet.FieldCount > 0 then begin FStringList.Clear; for i := 0 to FDataSet.FieldCount - 1 do FStringList.Add(FDataSet.Fields[i].FieldName); end; result := FStringList; end;这个是已经封装好类的一部分。你摘取就好!
select * from table where column+column2 like '% %'
procedure TFormCustomFilter.cxTextEditFilterKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
vFilter: string;
vFilterStr: string;
i: integer;
vCount: integer;
vInputText: string;
vQuoInput: string;
const
sOr = ' or ';
sLike = ' like ';
sPercent = '%';
begin
vCount := FilterStrings.Count;
vInputText := cxTextEditFilter.Text;
if not(vInputText = '') then
begin
if not cxCheckBoxIlegible.Checked then
vQuoInput := QuotedStr(vInputText + sPercent)
else
vQuoInput := QuotedStr(sPercent + vInputText + sPercent);
for i := 0 to vCount - 1 do
begin
vFilterStr := FilterStrings.Strings[i] + sLike + vQuoInput;
if not(i = vCount - 1) then
vFilter := vFilter + vFilterStr + sOr
else
vFilter := vFilter + vFilterStr;
end;
try
FDataSet.Filtered := false;
FDataSet.Filter := vFilter;
FDataSet.Filtered := true;
FFilter := vFilter;
except
end;
end else
FDataSet.Filtered := false;
end;function TFormCustomFilter.GetStringList: TStringList;
var
i: integer;
begin
if FDataSet.FieldCount > 0 then
begin
FStringList.Clear;
for i := 0 to FDataSet.FieldCount - 1 do
FStringList.Add(FDataSet.Fields[i].FieldName);
end;
result := FStringList;
end;这个是已经封装好类的一部分。你摘取就好!