标题:VF组合框级联问题
只看楼主
myscan
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-5-23
结帖率:100%
已结贴  问题点数:10 回复次数:13 
VF组合框级联问题
现在省市县三级数据库shx(注:省市县的缩写),做一个省市县三级级联的组合框,combo1省  combo2市  combo3县 ,  

combo1(省):rowsourcetype为6-字段,rowsource为 shx.省  
           valid事件代码:   select 市 from shx where 省=alltrim() into cursor shi
                            select shi              
                            go top
                            scan
                                (shi.市)
                            endscan
                           
现在有问题了:1.省份进行重新选择后,市级组合框(combo2)不随之发生改变!问题在于scan......endscan间。请教!!
              2.省级组合框(combo1,已做成下拉列表框),如何通过鼠标滚动实现下拉?我想通过mousewheel事件,但代码如何编写?或有其他途径!
              谢谢!








搜索更多相关主题的帖子: 三级数据库 cursor where 
2015-05-23 19:44
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
得分:0 
回复 楼主 myscan
建议改变思路,用TreeView 控件
2015-05-23 20:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
根据不同级别行政区划代码的特点进行连接

坚守VFP最后的阵地
2015-05-23 20:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
用SQL命令查询生成临时表,进行两次查询就可以了

坚守VFP最后的阵地
2015-05-23 20:51
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:8 
用rowsourcetype = 3, Style = 2

表单的Init事件:
         = "SELECT 省 DISTINCT FROM shx INTO CURSOR 省"
         = 1
         = "SELECT 市 DISTINCT FROM shx ";
                                  + "WHERE 省==ALLTRIM() INTO CURSOR 市"
         = 1
         = "SELECT 县 DISTINCT FROM shx ";
                                  + "WHERE 省==ALLTRIM() AND ";
                                  + "市==ALLTRIM() INTO CURSOR 县"
         = 1

Combo1的InteractiveChange事件:
        
         = 1
        
         = 1

Combo2的InteractiveChange事件:
        
         = 1
2015-05-23 21:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用myscan在2015-5-23 19:44:59的发言:
              2.省级组合框(combo1,已做成下拉列表框),如何通过鼠标滚动实现下拉?我想通过mousewheel事件,但代码如何编写?或有其他途径!
              谢谢!

VFP9测试,下拉列表框获得焦点后,下拉列表展开,在顶文本框滚动鼠标轮时会滚动选择列表的。
2015-05-23 21:14
myscan
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2015-5-23
得分:0 
回复 5楼 吹水佬
感谢5楼!给力!!!。麻烦再给解决一下鼠标滚动问题白!谢谢!再给你加分!
2015-05-24 12:00
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
前段时间用过一套软件,在一个文本框内,双击鼠标出现各省份名称,在选定省份名称单击后出现市名,再选择市名单击出现县名,请问各位高手:如何在文本框内使用代码实现此效果?谢谢!
2015-05-24 13:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 8楼 lianliming
双击文本框控件,调用另一个表单,并返回选定值

坚守VFP最后的阵地
2015-05-24 14:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
以下是引用myscan在2015-5-24 12:00:33的发言:

感谢5楼!给力!!!。麻烦再给解决一下鼠标滚动问题白!谢谢!再给你加分!

空键可以操作下拉列表,模拟动作试试:
在 MouseWheel事件:鼠标滚动时下拉列表
IF EMPTY(this.Tag)
    NODEFAULT      && MouseWheel事件会滚动列表,第一次取消滚动。
    this.Tag = "1"
    this.SetFocus
    KEYBOARD "{SPACEBAR}" CLEAR
ENDIF

或在 MouseEnter事件,鼠标移入时下拉列表
IF EMPTY(this.Tag)
    this.Tag = "1"
    this.SetFocus
    KEYBOARD "{SPACEBAR}" CLEAR
ENDIF


在 MouseLeave 事件,收起下拉列表
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF !EMPTY(this.Tag)
    this.Tag = ""
    KEYBOARD "{SPACEBAR}" CLEAR
ENDIF

在 Click 事件:
this.Tag = ""

[ 本帖最后由 吹水佬 于 2015-5-24 15:05 编辑 ]
2015-05-24 14:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445676-1-1.html




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

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