巧用VFP中的列表框ListBox控件

2015-04-12 05:26:58易学文
黄冈职业技术学院学报 2015年2期
关键词:数据表控件命令

易学文

(黄冈职业技术学院,湖北黄冈438002)

列表框主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作。VFP中的列表框ListBox控件,便于用户进行程序设计、查询、修改和运行。然而,在VFP中进行查询时,用户必须懂得查询语句的基本语法,修改查询文件或selcet语句的关键字重新定义查询,这无疑增加了使用难度。笔者在运用VFP中的列表框ListBox控件进行程序设计、查询、修改与运行的过程中,探索了VFP中的列表框ListBox控件的使用技巧,现以新生报到管理系统为例,通过增加或移去列表框控件值的方法来设置查询条件,用户使用起来会更加便捷[1]。

1 主要实现过程

1.1 建立学生信息表(xsb.dbf)

学生信息表的主要内容包括录取号、考生号、姓名、性别、身份证号、民族、院系名称、录取专业、科类、省市名称、地址、中学名称、成绩等。

1.2 建立表单文件 xsbcx.scx(modify form xsbcx),表单的主要包括2个列表框(list1,list2),7个命令按钮,如图1所示。

1.3 设置事件代码

1.3.1 打开命令按钮

打开命令按钮的功能是打开任意数据表文件,并将其表结构显示在列表框list1中,如图2所示,主要事件代码如下(click事件)[1]:

图1 建立表单文件的列表框控件和命令按钮控件

clos all&&关闭当前所有数据表文件

publ f1,tj1&&定义2个全局变量,f1记录打开的数据表名,tj1记录查询条件值

f1=getfile("dbf")&&将打开类型为dbf的数据表名赋值给变量f1

if empty(f1)&&判断变量f1是否为空,即是否选择数据表文件

retu

endif

use(f1)

copy stru extend to f2&&将选择的数据表结构拷贝到临时文件f2中

use f2

scan

thisform.list1.additem(field_name)&& 将 f2表中的值添加到list1列表框中

ends

thisform.refresh

图2 选择数据表后列表框list1中显示xsb表的字段

1.3.2 单个选择命令按钮

单个选择命令按钮实现的功能是将列表框list1中的字段值,添加到列表框list2中,如图3所示,主要事件代码如下(click 事件)[2]:

if thisform.list1.listindex>0 && 判断是否选择列表框list1中的数据

thisform.list2.additem(thisform.list1.value)&&在列表框2中增加列表框1所选字段值

thisform.list1.removeitem(thisform.list1.listindex)&&列表框1删除已选择字段值

endif

图3 设置查询条件

1.3.3 单个移去命令按钮

单个移去命令按钮实现的功能是将列表框list2中的字段值,移动到列表框list1中,与单个选择命令按钮功能相反,主要事件代码如下(click事件):

if thisform.list2.listindex>0 && 判断是否选择列表2中的数据

thisform.list1.additem(thisform.list2.value)&&列表框1增加列表框2所选字段值

thisform.list2.removeitem(thisform.list2.listindex)&&列表框2删除已选择字段值

endif

1.3.4 全部选择命令按钮

全部选择命令按钮的功能是将列表框1中全部数据,添加到列表框list2中,主要事件代码如下(click事件):

for i=1 to thisform.list1.listcount

thisform.list1.listindex=1

thisform.list2.additem(thisform.list1.value)

thisform.list1.removeitem(1)

endfor

1.3.5 全部移去命令按钮

全部移去命令按钮的功能是将列表框list2中全部数据,全部移动到列表框list1中,此功能与全部选择命令按钮相反,主要事件代码如下(click事件):

for i=1 to thisform.list2.listcount

thisform.list2.listindex=1

thisform.list1.additem(thisform.list2.value)

thisform.list2.removeitem(1)

endfor

1.3.6 查询命令按钮

查询命令按钮的功能是根据用户选择的查询条件,执行查询,如图4所示,其主要事件代码如下(click 事件)[3]:

if thisform.list2.listcount=0

=messagebox("没有选择字段!",48,"警告!")

retu

endif

tj1=""

for i=1 to thisform.list2.listcount

thisform.list2.listindex=i

tj1=tj1+allt(thisform.list2.value)+","

endfor

tj1=subs(tj1,1,len(tj1)-1)

sele&tj1 from(f1)

图4 查询结果

1.3.7 退出命令按钮

退出命令按钮功能为退出当前程序,主要事件代码为(click事件):

clos all

dele file f2.dbf

release f1,tj1

release thisform

2 小结

以上程序在VFP6.0中运行通过。文中介绍的列表框使用技巧是笔者在日常编程过程中探索总结的一些小技巧,通过定义命令按钮的事件代码,设置列表框的属性值,能够完成不同条件的查询要求,方便用户解决实际问题。

[1]Microsoft Corporation.希望图书创作室译.Microsoft Visual FoxPro6.0中文版语言参考手册[M].1999.

[2]罗颂,詹斌,余健.Visual FoxPro 6.0 课程设计案例精编[M].清华大学出版社,2008.

[3]史济民,汤观全.Visual Foxpro及其应用系统开发[M].清华大学出版社,2000.

猜你喜欢
数据表控件命令
只听主人的命令
湖北省新冠肺炎疫情数据表
党员生活(2020年2期)2020-04-17 09:56:30
基于列控工程数据表建立线路拓扑关系的研究
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
移防命令下达后
这是人民的命令
图表
基于VSL的动态数据表应用研究
河南科技(2014年24期)2014-02-27 14:19:25
蓝色命令
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03