| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1543 人关注过本帖
标题:在组合框中查询
只看楼主 加入收藏
ydxpn123
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2012-11-7
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:11 
在组合框中查询
用户在组合框中输入查询关键字时,随着用户的输入,每输入一个字,都会缩小查询的范围,查询结果显示在组合框的下拉框中供选择,如何实现
要支持汉字的
搜索更多相关主题的帖子: 查询 汉字 如何 用户 
2012-11-23 20:58
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:4 
可以这样实现:
先得建立一个表(假如为表A,字段为B),把查询的数据保存在里面。
可以用一个文本框(textbox1)和一个列表框(listbox1)控件。列表框的项目在init事件中这样写
程序代码:
select 表A
set filter to
scan
this.AddItem(B)
endscan

在文本框的InteractiveChange事件中,写入下面代码:
程序代码:
select 表A
SET FILTER TO 
set filter to alltrim(this.value)$B
this.listbox1.clear
scan
this.listbox1.AddItem(B)
endscan
thisform.refresh


[ 本帖最后由 月沐庭轩 于 2012-11-23 22:48 编辑 ]
收到的鲜花
  • tlliqi2012-11-23 22:46 送鲜花  10朵   附言:我很赞同

坚持学习vfp,QQ:306805680
2012-11-23 21:42
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
select 表A
set filter to
scan
this.aAddItem(B)---this.AddItem(B)
endscan

select 表A
SET FILTER TO
set filter to alltrim(this.value)$B
this.listbox1.clear---thisform.list1.clear
scan
this.listbox1.aAddItem(B)---thisform.list1.aAddItem(B)
endscan
thisform.refresh



2012-11-23 22:44
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 3楼 tlliqi
哈哈哈,怎么就把additem多打了一个a,谢谢你这么眼细的。listbox,通常在表单中添加后,默认是list1的名字。

坚持学习vfp,QQ:306805680
2012-11-23 22:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:4 
组合框控件支持渐进式查找,也就是楼主要的功能。
自己写代码,很方便。

坚守VFP最后的阵地
2012-11-23 22:53
ydxpn123
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2012-11-7
收藏
得分:0 
各位,我要的是组合框,不是文本框和列表框的组合
2012-11-24 19:39
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
下面是我在用程序中的部分代码,作用是用户输入客户的税号,列表框动态地筛选出符合要求的客户税号供用户选择。比如用户只需要输入“123”三个字符,“212301705535268”、“330205162412356”等等包含了“123”的税号全部显示在列表框中,用户不必录完全部税号就可以选择到需要的客户数据。不知楼主想要的是这个效果吗?

cTempsh = "%"+ALLTRIM(this.value)+"%"
= "SELECT tksh,tkmc FROM tkhxx WHERE tksh LIKE (cTempsh) INTO CURSOR tempkh"

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-25 18:27
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:4 
他可能是要开头的,然后是不要借助于其它控件的。我试了下组合框,在列表展开的时候好象无法在显示框内输入文字,不知道各位是不是也这样?
2012-11-25 22:18
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 8楼 taifu945
我也有这个困惑,不知道楼主为什么仅仅需要组合框,而不要样式看去一模一样的文本框与列表框的组合呢?组合框我没有实现过。等高手。

坚持学习vfp,QQ:306805680
2012-11-26 08:30
ydxpn123
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2012-11-7
收藏
得分:0 
谢谢7楼的大哥,我要的是这样的效果
2012-11-29 23:09
快速回复:在组合框中查询
数据加载中...
 
   



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

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