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

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

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

这一课讲用组合框选择输入部门和职务。之所以要用选择输入,是因为对于同一值不同人在不同时候输入是不一样的,比如“人事部门”,有人可能会输入成“人事部”,再加上无意识的输入错误,使得一个部门会有好几种说法,这将给查询、统计等带来很大问题,因此我们对于一个其内容只有有限个选择的字段的输入,最好采用选择输入。

从我们前面所讲过的控件中可以看出,复选框、选项按钮组、列表框、组合框都可以用作选择输入,那么时候该用哪一个控件呢?一般原则是:

1、对于具有“是”、“否”两种选择的,用复选框;

2、选项是固定的,并且选项不太多,可以用选项按钮组;

3、对于选项是可变的,并且选项不是非常多,可用列表框;

4、对于选项是可变的,并且选项非常多,可用组合框,因为选项非常多的情况下,用列表框找起来是很麻烦的,而组合框可以直接输入,只是在必要的时候才查一下。另外如果不希望该输入控件占太多地方,也可用组合框,因为它平时只占一行,拉下时才显示框,而列表框始终要占一块位置,当然您高兴也可以让列表框只占一行,但那样操作起来一定别扭。

要实现选择输入,就要将可选择的项目事先准备好,对于选项来说有两种情况,一种是固定的、一种是可变的。比如性别就是固定的,而部门就可能是不固定的,因为一个单位随时可以增减部门。

固定的选项可以在编程时编好,而不固定的一般就要有个数据表来存放选项,而且这个表可由使用的人任意增删和修改,下面我们就来讲讲怎样实现这种功能。

  1. 在人事档案数据库中建立一个数据表,就一个字段,字段名为“部门”;
  2. 在菜单中加一项“维护”,下面有一个子菜单项“部门字典”使用的命令是:
    do form bmzd name bmzd
  3. 建立一个表单,界面如 图1
  4. 在“新增”按钮的click事件中写入如下程序:
    if this.caption='新增' &&假如本按钮的标题为“新增”,表示第一次新增
    this.caption='继续新增' &&将本按钮标题设为“继续新增”
    endif &&结束假设

    select bmzd &&选择部门表
    append blank &&加一空记录

    thisform.grid1.readonly=.f. &&将表格设为非只读,即可以修改

    thisform.grid1.refresh &&表格刷新
    thisform.grid1.setfocus &&将焦点放到表格上以利于输入
  5. 在“修改”按钮的click事件中写入如下程序:
    if this.caption='修改' &&如果本控件的标题是“修改”
    this.caption="结束修改" &&将本控件的标题设为“结束修改”
    thisform.grid1.readonly=.f. &&将表格设为非只读,即可以修改
    else &&否则
    this.caption="修改" &&将本控件的标题设为“修改”
    thisform.grid1.readonly=.t. &&将表格设为非只读,即可以修改
    endif

    thisform.grid1.refresh &&表格刷新
    thisform.grid1.setfocus &&将焦点放在表格上
  6. 在“删除”按钮的click事件中写入如下程序:
    select bmzd &&选择部门字典
    *虽说目前肯定是bmzd表,不用选也可以,但这是为了防止以后程序做了某种改动,
    *造成当前表不是bmzd而使程序出错,这样就万无一失了。
    delete &&删除当前记录

    thisform.grid1.refresh &&表格刷新
    thisform.grid1.setfocus &&将焦点放在表格上
  7. 在“恢复”按钮的click事件中写入如下程序:
    select bmzd &&选择部门字典
    *虽说目前肯定是bmzd表,不用选也可以,但这是为了防止以后程序做了某种改动,
    *造成当前表不是bmzd而使程序出错,这样就万无一失了。
    recall &&恢复当前记录

    thisform.grid1.refresh &&表格刷新
    thisform.grid1.setfocus &&将焦点放在表格上
  8. 在“退出”按钮的click事件中写入如下程序:
    select bmzd &&选择部门表
    locate for delete() &&查找是否有做了删除标记的记录
    if found() &&假如找到
    pack &&将做删除标记的记录彻底删除
    endif &&结束假设

    thisform.release &&关闭本表单
  9. 在表格下的column1下的text1控件的lostfocus事件中写入如下程序:
    *当处于新增状态时,即command1的标题为“继续新增”,
    *一旦光标离开本格,表示新增结束,就将表格设为只读,
    *同时将标题设回“新增”
    if thisform.command1.caption='继续新增'
    thisform.grid1.readonly=.t.
    thisform.command1.caption='新增'
    endif
  10. 存盘退出

这样用于输入和维护部门选项的子功能就做好了。

下面在编辑人员的表单中设置一组合框用于输入部门:

  1. 将原来用于输入部门的文本框删除;
  2. 换上一组合框,如 图2
  3. 将组合框的controlsource设为“rsda.部门”;
  4. 将rowsourcetype设为“6-字段”;
  5. 将rowsource设为“bmzd.部门”;
  6. 重新设置所有控件的tabindex,设置方法在的第九条“设置控件的tabindex位置”中有讲解。
  7. 将菜单的初始化代码改为如下:
    set talk off &&关闭命令响应
    set safety off &&当覆盖磁盘上的文件时不提示,当程序编好后,不会错误覆盖文件
    set date ansi &&设置日期为“年.月.日”方式
    set century on &&设置年为4位数表示
    set default to d:\soft\jfzcc\mcc\mcc2\rsgl2 &&设置软件所在目录,应根据您的目录做适当修改
    use rsda &&打开人事档案数据表
    select 0 &&选一空工作区(新增语句)
    use bmzd &&打开部门表(新增语句)

    dkda=.f. &&设置一变量用于检测档案是否打开,真为打开,假为关闭

至此用选择输入部门的功能就编好了,用同样方法,我们可以编出用选择输入职务的功能,这做为本课的练习,大家自己做一做。

上一篇:用新的控件改进人事管理(三)
下一篇:用新的控件改进人事管理(一)

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

·个人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号