線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:812
推到 Plurk!
推到 Facebook!

真正的模糊过滤查询的设置问题

答題得分者是:Arlung Miao
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-17 18:19:01 IP:222.184.xxx.xxx 未訂閱
现有的代码如下: begin InputQuery('输入查询条件', '查询项目名称为', NewString); ADOTable3.Filter:='项目名称 like ' '''' NewString '%' ''''; ADOTable3.Filtered:=true; end; 所实现的功能为所有以查找的文字开头的名称都会出来,而且不要输入全部的,我想要的功能是,要查询的名称,不一定是在开头,只要包含在名称中都能找出来。举例:现有资料名称有张三,张四、张五,我现在只要查询一个张,那么三个资料都会出来的。我想要的功能是,如果查询“三”那么张三也能出来,意思就是这个查询字不一定以第一个字为算,只要含在里面的都能找出来,代码如何改动?谢谢!
------
我的编程起步于ktop,我将永远支持ktop
Arlung Miao
初階會員


發表:9
回覆:44
積分:25
註冊:2004-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-17 19:18:10 IP:219.134.xxx.xxx 未訂閱
'项目名称 like %' '''' NewString '%' '''' 不過,請注意,當Table中的記錄太多時會嚴重影響效率 發表人 - arlung miao 於 2005/05/17 19:19:39
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-17 20:05:38 IP:61.229.xxx.xxx 未訂閱
應用TDataSet.FilterRecord事件可以做到你要的功能,如下:
在OnFilterRecord裡寫如下的code(尋找項目名稱欄位裡有'三'的字串)
procedure TForm1.ClientDataSet1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  Accept:=pos('三',DataSet.FieldByname('?目名?').AsString)>0;
end;
然後,把DataSet設為Filtered:=False,再設為True即可,當然,'三'可以自己帶其他的變數進去
系統時間:2024-07-03 0:25:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!