真正的模糊过滤查询的设置问题 |
答題得分者是:Arlung Miao
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
现有的代码如下:
begin
InputQuery('输入查询条件', '查询项目名称为', NewString);
ADOTable3.Filter:='项目名称 like ' '''' NewString '%' '''';
ADOTable3.Filtered:=true;
end;
所实现的功能为所有以查找的文字开头的名称都会出来,而且不要输入全部的,我想要的功能是,要查询的名称,不一定是在开头,只要包含在名称中都能找出来。举例:现有资料名称有张三,张四、张五,我现在只要查询一个张,那么三个资料都会出来的。我想要的功能是,如果查询“三”那么张三也能出来,意思就是这个查询字不一定以第一个字为算,只要含在里面的都能找出来,代码如何改动?谢谢!
------
我的编程起步于ktop,我将永远支持ktop |
Arlung Miao
初階會員 發表:9 回覆:44 積分:25 註冊:2004-08-25 發送簡訊給我 |
|
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
應用TDataSet.FilterRecord事件可以做到你要的功能,如下:
在OnFilterRecord裡寫如下的code(尋找項目名稱欄位裡有'三'的字串) procedure TForm1.ClientDataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept:=pos('三',DataSet.FieldByname('?目名?').AsString)>0; end;然後,把DataSet設為Filtered:=False,再設為True即可,當然,'三'可以自己帶其他的變數進去 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |