| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1357 人关注过本帖, 3 人收藏
标题:文本框輸入時自動匹配的用法
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏(3)
 问题点数:0 回复次数:7 
文本框輸入時自動匹配的用法
VFP提供的TextBox控件,可以有類似Excel單元格在輸入時自動匹配曾經輸入數據的功能,其用法如下。

在TextBox控件的屬性設置中設置以下三個屬性値,或者在Init事件中輸入代碼:
程序代码:
PROCEDURE Init
    WITH This
    .AutoComplete = 3                    && 使用自動完成功能,按最近使用順序排序。
    .AutoCompTable = "myAutoTable"            && 自動完成表名稱
    .AutoCompSource = "姓名"                && 字段標識
    ENDWITH 
ENDPROC 


註釋:
1.AutoComplete的値範圍從0-4,爲0時關閉自動完成功能,1-4分別對應不同的排序功能。
2.AutoCompTable屬性爲自定義的匹配數據表名稱,如果不設置,VFP默認爲AutoComp.dbf,且存放在Home(7)目錄下。
3.AutoCompSource屬性爲匹配範圍的標識名稱,因為VFP可能使用同一個數據表(由AutoComTable設置)記憶不同文本框實例的輸入數據,故應設置此標識區別不同的內容。
收到的鲜花
  • hu9jj2011-07-15 16:09 送鲜花  10朵  
搜索更多相关主题的帖子: Excel 文本框 
2011-07-15 15:47
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
哦,真的还没有注意到有这些功能!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-07-15 16:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我不知道這是不是VFP9新版的功能,用其它版本的狐友不妨測試一下。很早時知道VFP9有這東西,但看到要多一個數據表,就沒想用,最近用戶提出這個要求,本想自己寫一個的,但回想測試一下現成的到底如何,測試結果表明是可以一用的(仔細看它的結構和思路,跟我打算設計的居然一致),所以拿出來大家分享一下。

授人以渔,不授人以鱼。
2011-07-15 16:28
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
有用,值得学习.
2011-07-15 17:07
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
收藏
得分:0 
收藏了!
2011-07-15 17:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這個功能的關鍵之處,在設計了AutoCompSource屬性。數據表AutoCompTable是必須的,但要讓一個程序中多個TextBox實例都能有各自的“自動完成”匹配數據,就必須有各自的識別符,這個識別符號就是AutoCompSource的値,只要每個TextBox實例的這個標識符不同,VFP就知道篩選哪些數據來匹配這個實例。打開這個表看看,就知道它是怎麽運作的。

比如,表單中有兩個TextBox,分別是Text1和Text2,這兩個文本框可以共享同一個AutoCompTable表(這樣就不必爲每個TextBox建立不同的記憶表),只要它們有各自不同的AutoCompSource標識,VFP在匹配時就會按對應的標識檢索數據,這個索引標籤是文本框的.Name(即Text1和Text2)加.AutoCompSource,在同一個表單中,這是獨特的ID。所以,AutoCompTable表是可以共享的——不要用默認的Home(7)路徑存放數據庫(這個路徑在本機,不在共享服務器上),把它放到共享文件夾下。

總的來說,這個設計兼顧了兩個需求:
1.不同文本框共用同一套AutoCompSource標識的記憶數據;
2.不同用戶共用記憶數據庫。

不過,使用這個功能仍然有必須迴避的地方:
1.不同表單下極可能出現相同名字的文本框對象,比如都被命名爲Text1,如果這是兩個不同性質的文本框,就不應該使用同一個AutoCompTable表記憶數據;
2.在共享文件夾給AutoCompTable命名時,必須自己檢測重名文件的存在(VFP會過於自覺地替你建立諸如內存變量、臨時數據庫之類的東西,而且你不知道它們的文件名)。

[ 本帖最后由 TonyDeng 于 2011-7-15 21:20 编辑 ]

授人以渔,不授人以鱼。
2011-07-15 21:14
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
呵呵,这个功能在装9.0之后就注意到了,用过一下,选的是使用频率排序,不过不知道这些居然还单独放在一个表中,学习了。
2011-07-16 21:08
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
留足好找
2012-01-03 19:02
快速回复:文本框輸入時自動匹配的用法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040992 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved