table的filter属性设为true procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin if pos('item',dataset.FieldValues['test'])>0 then accept:=true else accept:=false; end;
可以用Like 注意字符串要加引号
table1.filter:='xm like %123%';
table1.filtered:=false; table1.filter:='test like %123%'; table1.filtered:=true;
Filter:=Test like '*item*'
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if pos('item',dataset.FieldValues['test'])>0 then
accept:=true
else
accept:=false;
end;
table1.filter:='test like %123%';
table1.filtered:=true;
Table1.Filtered:=true;
Table1.Filtered:=true;
应该这样写
(1)在Table的Filter属性写上:Test='*item' or Test='item*';
然后Table1.Filtered:=true;
(2)在程序中给赋值
Table1.Filter:='Test='+''''+'item*'+''''+' or '+'Test=' +''''+'*item'+'''';
Table1.Filtered:=true;
用Table的Filter还要注意一点:就是它的FilterOptions属性
当foCaseInsensitive为True时表示大小写不敏感;
当foNoPartialCompare为True表示*不做统配符使用,做一般字符处理。
( ITEM = 'SAF25030' OR ITEM='SAF25042' ) AND CUST_ID = 'abc1'COMBOBOX1=SAF25030Filter这样写:
filter:='test='+''''+'*'+trim(Combobox1.Text )+'*'+'''';
好象不对;
如果这样写:
filter:='test='+''''+trim(Combobox1.Text )+'*'+''''
+' or '+'Condition='+''''+'*'+trim(Combobox1.Text)+'''';
好象也不对,都找不到。麻烦看看错在那儿?