论坛登陆 注册 文章专区 投稿文章 旧版浏览
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 软件应用 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 网络文学 | 论坛社区 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>FoxPro>>正文

用新的控件改进人事管理(一)

www.xker.com 作者:不详 来源:网络转载 加入日期:2005-11-18 7:31:28
用新的控件改进人事管理(一):

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

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

在新增和修改人事档案的表单中,本来性别是要输入的,虽然只能输入“.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了!

上一篇:用新的控件改进人事管理(二)
下一篇:Foxpro 更多对象

关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·个人SMTP服务器的配置
·通过E-mail 共享Java 对象
·你的email服务器准备好应对账号搜集攻
·Server 2003中为SNMP服务配置网络安全
·Server 2003为SMTP邮件中继服务器配置
·不花一分钱, 轻松打造自己的电子邮局
·用CMailServer打造邮件服务器
·G容量邮件服务器DIY
·Exchange 2000 Server的常见问题
·用Windows Server 2003架设小型邮件服
·系统优化 专题
·QQ密码丢失后能做的事情:快速找回密码
·最经典的黑客入门教材
·怎样查找对方的IP地址
·找回QQ密码的注意事项 
·实战系统虚拟利器——MS VPC 2004
·DMA让你的硬盘速度飞起来
·电脑初学者必备之Windows进程大全
·Dreamweaver视频教程
·让你的网速快到不可思议
评论 本站声明
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号