有一个TABLE表,字段为TEST 其内容可能为“abcd=3333,3item9tedd",我想把TEST中包含所有'item'的给过滤出来,请问用FILTER如何做?

解决方案 »

  1.   

    Filtered:=true;
    Filter:=Test like '*item*'
      

  2.   

    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;
      

  3.   

    可以用Like 注意字符串要加引号
      

  4.   

    table1.filter:='xm like %123%';
      

  5.   

    table1.filtered:=false;
    table1.filter:='test like %123%';
    table1.filtered:=true;
      

  6.   

    Table1.Filter:='标题='''+trim(edit1.Text)+'*''';
      Table1.Filtered:=true;
      

  7.   

    Table1.Filter:='标题=''%'+trim(edit1.Text)+'%''';
      Table1.Filtered:=true;
      

  8.   

    我试过了like和%都不能用
    应该这样写
    (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表示*不做统配符使用,做一般字符处理。
      

  9.   

    test 内容如下:
     (  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)+'''';
    好象也不对,都找不到。麻烦看看错在那儿?