设为首页
联系站长
加入收藏

您的位置: 首页>>IT业界>>互联网>>正文
 FoxPro用新的控件改进人事管理
 日期:2005-10-5 16:33:47  来源:百当软件园

这一课我们用上一课讲的一些控件来对前面的人事管理软件进行改进,使其更易用,更不容易出错,最主要当然是为了进一步说明这些控件的用法。

先讲第一个改进,用选项按钮来选择性别

在新增和修改人事档案的表单中,本来性别是要输入的,虽然只能输入“.t.”或“.f.”,倒是不会出现输入其它字符的错误,但是很不直观,所以我们用选项按钮来改进。

(1)、将表单上输入性别的文本框换为选项按钮组 mcc1_optiong_t1.jpg (835 bytes),选项按钮组做好后隐含两个按钮,这里正好我们需要两个,因为性别就两种(大概不会有第三种)。

但是按钮隐含的排列是上下排列,这样很占地方,我们将其调整为水平排列,方法是:先把选项按钮组拉的比较大,使两个按钮都能看见,暂时将别的控件盖住也不要紧。然后在属性窗口中选择optiongroup1下面的option2,然后将其放到与option1水平排列的地方,如不能精确调整它的位置,看一下初级教程第七课中的精确调整对象位置。

接着设置标题,将option1的caption设为“男”,option2该设为......,设好如 图1

将optiongroup1的controlsource设为xb,为什么要这样,直接设为“性别”字段不行吗?不行!因为性别字段的值是逻辑型,而optiongroup1的值为数值型,因此要用一个数值型的变量来接收optiongroup1的选择值,然后用适当方法将其变换为逻辑型存入数据表。具体方法下面会讲。

(2)、设置xb的初始值,进入“编辑人员”(bjry)表单的修改,在其 load 事件中输入如下代码:

public xb
if 性别
xb=1
else
xb=2
endif

在这里先将xb设为公共变量,因为 load 事件程序是一个子程序,当这个程序运行完毕,其中所有的私有变量(即在本程序中创建的变量)都将释放,之后就再也找不到这个变量了,但这个变量在其它地方又要用,故将其设为公共变量

注意

这段代码不能放在 init 事件中,这是因为表单的 init 事件是在所有控件的 init 事件发生之后,而当控件的 init 事件发生时,即初始化时,就需要这个变量,而这时还没有,所以会发生找不到变量的错误,而 load 事件则是发生在所有事件之前,即表单启动的时候。

然后根据当前记录的性别字段设置xb的值,如果是“真”就设为1,即“男”,否则为2,即“女”,这样进入表单后选项按钮的黑点就会根据xb的值来显示。

注:在需要逻辑表达式作判断时,如果是逻辑变量,因为其本身就是一个逻辑表达式,为“真”的话就直接写这个变量名,为假的话就写为“.not. 变量名”,而不要写成“变量名=.t.”或“变量名=.f.”

(3)、将“新增”按钮的click事件程序改为如下:

*根据选项按钮所做的选择,将相应的值存入性别字段
if xb=1
replace 性别 with .t.
else
replace 性别 with .f.
endif

append blank &&增加一条空记录
xb=1 &&将xb设为1
*这是一个新记录,还不知道是男或女,因此一律设为1,即“男”,作为初始值
thisform.text1.refresh &&将text1的内容刷新,下同
thisform.optiongroup1.refresh
thisform.text2.refresh
thisform.text4.refresh
thisform.text5.refresh
thisform.text6.refresh
thisform.text7.refresh
thisform.text8.refresh
thisform.edit1.refresh

thisform.text1.setfocus &&将焦点设到text1

仔细看看与以前有什么不同

(4)、将“上一条”按钮的click事件程序改为如下:

skip -1 &&记录指针向上跳一行

*以下一段程序检测记录指针是否到了开头,如果是给出提示,并把指针定位到第一个记录
if bof() &&假如指针已到开头
wait '已到开头' window nowait &&在右上角显示的提示,鼠标或键盘一动提示消失
go top &&将指针定位到第一个记录
endif &&假设结束

*根据当前记录的性别字段设置xb的值,如果是“真”就设为1,否则为2
*在需要逻辑表达式作判断时,如果是逻辑变量,因为其本身就是一个逻辑表达式,
*为“真”的话就直接写这个变量名,为假的话就写为“.not. 变量名”,
*而不要写成“变量名=.t.”或“变量名=.f.”
if 性别
xb=1
else
xb=2
endif

thisform.text1.refresh &&将text1的内容刷新,下同
thisform.optiongroup1.refresh
thisform.text2.refresh
thisform.text4.refresh
thisform.text5.refresh
thisform.text6.refresh
thisform.text7.refresh
thisform.text8.refresh
thisform.edit1.refresh

thisform.text1.setfocus &&将焦点设到text1

“下一条”按钮也做相应改动,看看自己会不会做。

(5)、将“退出”按钮的click事件程序改为如下:

*根据选项按钮组所做的选择,将相应的值存入性别字段
if xb=1
replace 性别 with .t.
else
replace 性别 with .f.
endif

thisform.release &&本表单释放

OK了!

本新闻共3页,当前在第1页  1  2  3  

相关文章

·VisualFoxPro编程工具栏简介
·VisualFoxPro设计器简介
·Visual FoxPro项目管理器
·Visual FoxPro编程的工具与步骤
·Visual FoxPro控件与对象
·Visual FoxPro 对象的属性、事件
·Visual FoxPro 函数
·Visual FoxPro运算符与表达式
·Visual FoxPro常量与变量
·Visual FoxPro数据和数据类型


阅读排行

·Win 2000不能访问Win XP的原因及
·解析Windows中的帐户和权限功能
·如何共享Windows XP操作系统
·Windows XP Service Pack 1
·通过 Windows XP 注册表自定义您
·Windows 2000 TCP/IP协议概述
·Windows 2000 Server TCP/IP协议
·dos常用命令使用说明
·Windows变慢原因分析及解决方法(
·Windows变慢原因分析及解决方法(
·WINXP下强行关闭“杀”不了的进程
·Windows XP系统注册表的恢复

最新文档

·创业激情需冷静 网络代理选择应理
·域名交易平台亟需规范 预防域名买
·Travel旅游域名即将引发抢注潮 
·从原理深处分析如何预防arp攻击
·突破建站弊端 企业网络营销大有可
·如何区分进程和病毒?
·java的基础知识,如何学好java
·微机原理与接口技术基础知识
·如何解决青少年沉迷网络的问题,
·全面分析主板BIOS报警信号

请您注意:
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·您在本站发表的作品,本站有权在网站内转载或引用
·其他网站如果需要转载 本站文章请在贵站著名来源,谢谢合作