dm.ADOTbBug 使用Filter 属性的话,不能包括 查找字段。

 

方法1

在过滤事件里 使用查找字段。

http://www.itdelphi.com/delphibbs/doc/2001/558361.htm

方法2

就是使用查找字段对应的KeyFields 为字段名。

比如查找字段是 部门名称,对应的数据集里KeyFields是部门编号

对待过滤的数据集不能使用 (LookupField)部门名称= Edit1.Text

只能使用 (查找字段的KeyFields)部门编号= Edit1.Text 

http://gb.qin.blog.163.com/blog/static/109655227200982841553937/

procedure   TForm1.BitBtn1Click(Sender:   TObject);   
  var   
    Ptmp:string;   
    Ltmp:string;   
  begin   
    Ptmp:=adotable1.FieldByName('aaa').KeyFields;   
    LTmp:=adotable1.FieldByName('aaa').LookupDataSet.FieldByName('Pkey').AsString;   
    adotable1.Filter:=ptmp+'='''+Ltmp+'''';   
    adotable1.Filtered:=true;   
  end;

注:

其主要思路好下:   
  一、取得lookup字段的主键名(KeyField)   
  二、从lookup字段对应的数据集找到lookup对应的关键值(LookupKeyField)   
  三、进行过滤 

其实 就是取 KeyField的名字 = LookupKeyField的 值

 

 posted on 2015-01-20 11:21  宝兰  阅读(166)  评论(0编辑  收藏  举报