引 言
利用计算机进行信息控制和数据处理,不仅提高了工作效率,而且大大的提高了其安全
性。六十年代初期,计算机技术就开始应用于数据库的管理,形成了初期的信息系统。我国
的信息管理系统是九十年代初开始快速发展的,对信息管理系统的应用比起世界先进水平还
相当落后。
一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效
率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了
不少的困难。作为计算机应用的一部分,使用计算机对人事档案信息进行管理,具有手工管理
所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、
成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与
世界接轨的重要条件。
人事管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来
说都至关重要。因此,开发这样一套管理软件成为很有必要的事情,在下面我们将以开发一
套人事管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
系 统 概 况
2.1 人事管理系统的简介
人事档案管理系统主要包含职工个人基本情况,家庭情况,
社会关系等各方面信息,内容比较庞大复杂。同时还综合考虑档
案管理工作的性质,总结归纳出所需实现的功能。主要是为人事
档案进行服务,针对人事的变动对人事资料进行的录入、删除、
查询、统计等功能。
2.2 人事管理系统的功能
2.2.1.灵活的数据记录编辑功能.可以随时对记录进行增加,修改,更新,删除,浏览等
编辑操作。
2.2.2.强大的数据库表查询功能.便于在实际档案管理操作中对人员情况进行统计查看。
2.2.3 具备分级用户权限管理设置.以确保档案的保密性和安全性。
2.2.4.具有分类统计功能.使用表或表单显示的功能,该统计表或表单可根据数据库中记
录情况的变化而变化。
2.2.5.具有较友好的人机界面.各种操作可以在直观的界面上通过人机交互进行。
需 求 分 析
3.1 系统功能分析
人事管理系统的主要任务 是对人事档案进行整理,使得能方便快捷地对人事档案进行
查询、统计、更新、并且能按一定要求输出报表。
3.2 模块功能设计
启动程序
登录界面
主界面
档案浏览
档案查询 档案统计
编辑档案
报表输出
3.2.1 用户登录模块功能
功能:设置使用人事管理系统的用户及其使用权限。
操作:系统启动后,首先要做的就是用户登录。若不登录系统,所有功能都无法使用。
用户只有登录系统后,根据其具有的权限,才能执行一定的操作。进入该功能后,要求输入
用户的登录名及其口令,只有其登录名和口令完全正确,才能进入人事管理系统。系统会根
据为用户分配的权限,设置其对应的功能有效,用户就可操作该功能
用户分为管理员、一级用户、二级用户。通常,系统的权限分为三大部分,即:
管理权限:设置用户和系统参数。
输入权限:个人档案输入、家庭成员输入和社会关系输入。
查询权限:档案查询、档案统计。
根据需要,可以把这些功能分配给不同的员工。管理员具有对系统的最大权限,管理员才可
以修改所以用户密码和权限。其他用户不能执行此功能。二级用户对系统有最小权限。每一
权限对应系统菜单上的一项功能,可为该用户选择任意的权限
整个人事管理系统由多个功能模块组成,不同的模块完成不同的功能,可以为不同的
职工分配不同的功能,使其具有不同的权限,完成其权限所对应的功能,从而很好地管理好
2
整个系统。
该模块提供管理系统的主界面,是主系统的唯一入口和出口。
3.2.2 查询模块功能
功能:对档案卡片的查询功能,包括精确条件查询和模糊条件查询。
该模块的主要分为两部分:一是在文本框中输入要查询的字段等;二是用来显示用户进
行查询的字段及查询、退出按钮。当查询的条件输入完毕,点击确定按钮,完成该模块的查
询功能。会调出另外一个窗口来显示用户所要查询的符合条件的所有员工的资料。根据人事
档案中的各字段,选择相应的条件操作符输入相应的值即可进行档案查询。在这里可以查到
符合程序要求的任何信息。在这里的选项中输入规定的范围即可查到相关的人事信息。
该模块提供查询符合某一条件的人事档案的界面。
3.2.3 统计模块功能
功能:按规定的要求进行的统计,它可以较详细直观的统计出要求的结果。统计可以详
细的按职务按职称、按部门、按学历以数字的形式或者以表的形式显示出来。
将单位内所有的人事信息进行全面的统计。该模块主要是综合各方面的人数统计;对各
部门的人数、各职称的人数、各职位段人数以及学历段人数等的统计并且以报表的形式显示。
并且本模块提供重新统计功能,方便在一定时间段内对各项人数的进行更新,保持数据库中
数据的即时性[2]。
3.2.4 编辑模块功能
档案编辑模块中有 3 个子模块。他们是档案卡片、家庭成员和社会关系等功能。这些
功能因管理员的权限不同所表示出的功能使用也不同,只有管理员才拥有数据修改及删除
的权利。在这些功能里详细的记录了所有单位员工的资料。
a.档案卡片管理
功能:对全部员工的信息进行全局浏览,除了浏览信息的功能外,还有一些基本操作
的功能:添加记录,对员工的详细资料进行修改,删除员工记录。
b.家庭成员管理
功能:对全部员工的家庭成员信息进行编辑,浏览;实现方法同
个人简历功能实现的方法一样。
c.社会关系表
功能:对全部员工的家庭成员信息进行编辑,浏览;实现方法同
个人简历功能实现的方法一样。
有些功能普通用户没有此权限。
3.2.5 报表模块
对数据库数据和文档的输出通常有两种方式:屏幕显示和打印机打印。屏幕显示因为受
3
屏幕的尺寸和不能永久性保存的限制而不能广泛使用,因而通过打印机打印就成为数据库文
档输出不可替代的手段。报表就是用户使用打印机输出数据库数据和文档的一种常用的方式
[3]。
功能:该模块按一定格式和要求以报表形式输出。此模块中有 4 个子模块。它们是个人
档案输出、员工社会关系输出、职工基本信息输出和单位部门名册。
操作:在该模块中,可以有两种方式把数据库数据显示出来。在计算机屏幕预览或通过
打印机打印作为永久数据保存。
3.3 数据流程图
输出报表
用 户
报 表
编 辑
统 计
输出报表
查 询
浏 览
查 统 统 统
询 询 计 计
条 结 条 结
件 果 件 果
更
新
条
目
更
新
结
果
人事档案
人事档案
档案报表
数据库设计
创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。
为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。
4.1 数据项设计
通过需求分析,可确定系统的数据项和数据结构如下:
a.人事档案(编号、姓名、性别、出生年月、联系电话、住址、籍贯、文化程度、职
称、部门、职务、基本工资、简历)。
4
b.家庭成员(编号、家属姓名、与员工关系、出生年月)。
c.社会关系(编号、关系姓名、与员工关系、出生年月)。
d.密码表(S1 编码、S2 操作员、S3 密码)
4.2 概念结构设计[2]
本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上
面的分析所得的实体有:人事档案实体、家庭成员实体和社会关系实体。各实
体间的关系如图:
人事档案
社会关系
属于
拥有
编号
员工姓名
简历
关系姓名
出生年月
家属姓名
出生年月
家庭成员
4.3 逻辑结构设计
列名
数据类型
宽度
可否为空
说明
人事档案表
编号
姓名
性别
出生年月
住址
电话
籍贯
文化程度
职称
部门
职务
工资
数值型
字符型
字符型
日期型
字符型
数值型
字符型
字符型
字符型
字符型
字符型
数值型
否
否
否
否
可
可
否
可
可
否
否
否
(10)
(10)
(2)
(8)
(30)
(11)
(10)
(10)
(10)
(10)
(10)
(10)
5
编号
姓名
性别
出生年月
住址
电话
籍贯
文化程度
职称
部门
职务
工资
简历
备注型
否
简历
家庭成员表
列名
数据类型
宽度
可否为空
说明
编号
家属姓名
关系
出生年月
数值型
字符型
字符型
日期型
(10)
(10)
(10)
(8)
否
否
否
否
社会关系表
编号
家属姓名
关系
出生年月
列名
数据类型
宽度
可否为空
说明
编号
关系姓名
与员工关系
出生年月
数值型
字符型
字符型
日期型
(10)
(10)
(10)
(8)
密码表
否
否
否
否
编号
关系姓名
与员工关系
出生年月
字段
字段名
类型
宽度
小数位
1
2
3
字符型
S1
S2
S3
Windows 下 Visual FoxPro6.0 的程序实现
1
8
4
字符型
字符型
在 VFP6.0 中,所提供的“项目管理器”和“应用程序生成器”是系统开发
人员的强大工具,利用应用程序向导,无需编写任何代码,就可以创建一个项目
和一个 VFP6.0 应用程序框架,简化开发工作。
5.1 创建主程序
“人事管理系统”就是用向导建立的项目和应用程序框架。系统的主程序是
自动生成的,为了满足系统需求,对主程序做如下修改:
在主文件的首部,添加下面语句:
_screen.caption="人事管理系统"
_screen.picture='3.JPG'
_SCREEN.WINDOWSTATE=2
PUBLIC
k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,k16
STORE 0 TO k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,
,k18
k16,k18
6
DO FORM 登录表单.SCX
其目的是控制系统主菜单,让相应的菜单命令“跳过”是之成为灰色显示
而不起作用。当不同权限用户进入系统是在更改这些变量的值,使菜单命令可用。
通过这种方法,实现对不同权限的用户赋予不同的操作权限目的。再者就是执行
系统登陆表单。退出并保存主程序文件。
5.2 登录界面的制作过程:
1.新建一个表单 添加两个按钮,分别为“确认”、“退出”;添加一个组合框
和一个文本框,属性设置为:
ROWSOURCE,CONTROLSOURCE 和 DISPLAYVALUE:密码表.S2 操作员
ROWSOURCE TYPE :6-字段
STYLE :2-下拉列表框
2.表单初始为:public n
n=1
“确定”按钮的 CLICK 代码为:
yhm =thisform.combo1.value
mm=allt(thisform.text1.value)
locate for S2 操作员=yhm
do case
allt(密码表.S1 编码)=="00000".and.mm==allt(密码表.S3 密码)
messagebox("程序员,你有权修改数据!"+chr(13)+"请按'确定'进入",
0+48,"欢迎进入!")
store 1 to K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K
14,K15,K16,k18
thisform.release
DO FORM MAIN
case allt(密码表.S1 编码)=="00001".and.mm==allt(密码表.S3 密码)
messagebox("普通用户,可以浏览数据!"+chr(13)+"请按'确定'进入",0
+48,"欢迎进入!")
store 1 to k6,k7,K8,K9,K10,K11,K12,K13,K14,K15,K16
thisform.release
case allt(密码表.S1 编码)=="00002".and.mm==allt(密码表.S3 密码)
messagebox("普通用户,可以浏览数据!"+chr(13)+"请按'确定'进入",0
+48,"欢迎进入!")
store 1 to K6,K7,K9,K10,K11,K12,K13,K14,K15
7
thisform.release
otherwise
n=n+1
if n<=3
messagebox("口令错误,请重新输入!你还有"+allt(str(4-n))+"次机会",0
+48,"口令最多 3 次")
thisform.text1.value=""
thisform.text1.setfocus
else
messagebox("",0+48,"")
quit
*thisform.release
endif
endcase
5.3 主界面表单
1.建立一个表单.在项目管理器的文档页中选择表单,单击“新建”,弹出表单
设计器,设置“Caption”属性“功能功能选择界面”
2.在该表单上添一个“容器”控件“Container1”.“容器”控件是可包含其他
控件的空间,并且允许访问被包含控件
3.在“Container1”控件上添加六个“按钮”控件.他们的“Caption”属性分别
为“浏览”、 “查询”、 “统计”、 “编辑”、 “打印”、 “退出”
4.在表单上添加“图象”控件“Image1”,并设置“Stretch”属性为“2—Str
etch”、“Picture”属性为图片所在位置.
5.双击按钮控件可以弹出代码编辑器
浏览 DO FORM
LN
查询 DO FORM
JMCX
编辑 DO FORM
DABJ
统计 DO FORM
TJ
打印 DO FORM
DADY
退出 THISFORM.RELEASE
6.表单名为”MAIN”
5.4 浏览表单
1.新建一个表单, Caption 属性为“浏览档案”然后在表单加一个“表格”控
件。
8