基于VFP的高职学校人事管理系统的设计及实现
2014-03-05余翠兰
余翠兰
摘 要: 人事管理是一个复杂的系统工程,手工管理方式不利于查找、更新和维护等,开发一套对人事信息进行管理的软件是必须的。在此使用数据库管理系统Visual Foxpro 9.0作为开发工具,采用面向对象的设计方法、简单易读的算法,构建一款适合高职学校的人事管理系统。该系统主要包括档案查询、档案浏览与编辑、档案统计、档案输出等功能,使信息管理工作更加系统化、信息化、科学化。实验结果表明,该系统运行稳定、正确、界面操作方便、成本低、具有较强的实用价值。
关键词: 人事管理系统; VFP; 查询; 统计
中图分类号: TN964?34; TP315 文献标识码: A 文章编号: 1004?373X(2014)04?0072?04
Design and realization of VFP?based personnel management system suitable for higher vocational schools
YU Cui?lan
(Department of computer science, Dehong Teacher's College, Luxi 678400, China)
Abstract: Personnel management is a complex engineering, which the manual management is not easy to inquire, update and maintain. Therefore, it is extremely necessary to develop a personnel management software. With the Object?oriented design method, comprehensible algorithm and database management system Visual Foxpro 9.0, a VFP?based personnel management system suitable for higher vocational schools was built. It has the functions of information search, archival statistics, information output, archival browse and archival edition. With the above functions, it makes the information management more systematization, informationization and scientization. The experimental results demonstrate that the system running is stable and accurate, and the interface operation is convenient. Its cost is low. The system has a strong practical value.
Keywords: personnel management system; VFP; search; statistics
人事管理信息化是计算机技术的必然趋势。使用计算机对高职学校人事信息进行管理,具有传统管理无法比拟的优点。例如,检索迅速、管理灵活、存储量大等。Visual FoxPro 9.0 是一个关系型数据库管理系统[1],它提供的数据库表、表单、菜单、报表等功能使得数据存储、查询、界面设计、报表生成等变得非常简单,也具有存储方式单一、面向对象、支持ODBC、数据处理速度快、开发成本低等特点。因此本文采用Visual FoxPro 9.0作为高职学校人事管理系统的开发工具和数据库系统。
1 系统设计
1.1 系统功能设计
系统的设计开发[2?3]需要针对不同院校的实际情况采取定制化的开发模式,既满足复杂多样的人事管理[4?6]工作需求,又要满足用户界面的简单易用。结合我校人事信息管理日常工作的实际需要,通过需求分析和可行性分析,高职学校人事管理系统主要包含以下几个功能:档案浏览及编辑、档案查询、档案统计、档案输出。该人事管理系统的功能模块如图1所示。
1.2 数据库结构设计
根据系统功能结构建立所需要的一系列数据表,并根据数据表间的相关性建立表间关联,然后设置相关的数据参照完整性规则,使得相关联的表能够协同工作,数据库结构设计直接关系到系统运行的效率和实现效果。本系统创建了一个名为“人事数据库.DBC”的数据库文件,该数据库中共包含4个数据库表。
(1) 员工表。含有字段:编号、部门编号、姓名、性别、出生年月、到岗日期、户口所在地、婚姻状况、籍贯、联系电话、民族、身份证号、文化程度、员工状态、政治面貌、职务,并按编号建立了主索引。
(2) 部门表。含有字段:部门编号、部门名称、上级编号、部门描述,并按部门编号建立了主索引。
图1 高职学校人事管理系统功能模块图
(3) 员工工资表。含有字段:编号、姓名、部门名称、边疆补贴、地区补贴、浮动工资、福利费、艰苦补贴、固定一级、津贴、奖金津贴、三项补贴、特种津贴、校内津贴、各种补贴、个人税、公积金、应发数、房租、旷假、其他扣款、扣款合计、实发合计,并按编号建立了候选索引,部门名称建立了普通索引。
(4) 用户表。用来实现对用户的管理,含有字段:用户名、密码、用户类型。只有输入了正确的用户名和口令才能使用本系统。
该数据库中表间关联的数据参照完整性规则设置情况如下:更新规则设置为“级联”,删除和插入规则都设置为“限制”。
2 系统实现的关键技术
2.1 登录密码验证
用户使用系统前,必须在“登录”表单中,输入用户名和密码,系统用户表存储的记录进行身份验证。
“登录”功能的实现代码如下:
IF ALLTRIM(thisform.txtUserName.Value)==''
MessageBox("请输入用户名")
RETURN
ENDIF
IF ALLTRIM(thisform.txtUserPwd.Value)==''
MessageBox("请输入密码")
RETURN
ENDIF
use date\用户表
Locate For Allt(用户名)=Allt(thisform.txtUserName.Value)
If Found()==.T.
If Allt(密码)==Allt(thisform.txtUserPwd.Value)
MessageBox("欢迎使用本程序",64,"身份验证通过")
UserName = 用户名
UserYype = 用户类型
release thisform
Else
MessageBox("密码不正确",16,"错误提示")
Endif
Else
MessageBox("用户名不存在",16,"错误提示")
Endif
2.2 档案查询
输入查询条件,系统可以显示符合条件的记录,该系统包括:员工基本信息查询、员工工资查询、部门查询。其中,员工基本信息查询可以根据姓名、身份证号、或籍贯查询。
例如,员工工资查询界面如图2所示,单击“查询”,得到查询结果如图3所示。
图2 员工工资查询界面
“查询”功能的实现代码如下:
select * from 员工工资表 where alltrim(姓名)=alltrim(thisform.combo1.displayvalue) into cursor temp
go top
if eof()
go bottom
=messagebox("对不起,没有此人,请确认",0+32+1024,"人事管理系统")
else
do form 查询结果
endif
图3 员工工资查询结果
2.3 档案浏览及编辑
该模块对信息进行浏览、添加、删除、修改。包括员工基本信息浏览及编辑、部门信息浏览及编辑、员工工资浏览及编辑。例如,员工基本信息浏览及编辑界面如图4所示 ,可以实现:单击“上一条”、“下一条”按钮等浏览“员工表”中每一个员工的信息;单击“修改”按钮,重新输入需修改的值,单击“保存”或“放弃”,则可实现修改当前员工的信息;单击“添加”按钮,输入新员工信息,单击“保存”,则可增加新员工信息;单击“删除”按钮,可增加当前显示的员工信息。“上一条”“下一条”等按钮是自建了一个“移动记录”按钮类。
图4 员工基本信息浏览及编辑界面
“增加”功能的实现代码如下:
append blank
thisform.refresh
thisform.编号1.setfocus
thisform.编号1.enabled=.t.
thisform.姓名1.enabled=.t.
thisform.性别1.enabled=.t.
……
“保存”按钮功能的click事件代码如下:
=tableupdate(.t.)
??chr(7)
=messagebox("增加或修改记录成功!",48,"信息窗口")
“保存”按钮功能的Error事件代码如下:
LPARAMETERS nError, cMethod, nLine
cmessagetitle="学校人事管理系统"
cmessagetext="员工编号不唯一,请重新输入!"
cmessagetype=16
messagebox(cmessagetitle,cmessagetext,cmessagetype)
=tablerevent(.t.)
locate for empty(员工表.编号)
delete
pack
2.4 档案统计
该模块对教职工的信息进行统计,包括统计政治面貌、统计婚姻民族状况。如统计婚姻民族状况的结果如图5所示。
图5 员工婚姻民族状况统计表
“统计婚姻民族状况”功能的部分代码如下:
store 0 to h11,h22,h33,h44,h55,h66,h77
use date\员工表
do while i<7
dw=substr("办公室 计科系 外语系 中文系 数学系 后勤处 ",j,8)
store 0 to h1,h2,h3,h4,h5,h6,h7
count all for 婚姻状况="已婚" .and. 部门编号=i to h4
count all for 婚姻状况="未婚" .and. 部门编号=i to h5
count all for 民族="汉" .and. 部门编号=i to h6
count all for 民族<>"汉" .and. 部门编号=i to h7
count all for 性别="男" .and. 部门编号=i to h2
count all for 性别="女" .and. 部门编号=i to h3
store h2+h3 to h1
h11=h1+h11
……
h77=h7+h77
store h+1 to h
i=i+1
j=j+8
h=h+1
enddo
2.5 档案输出
该模块输出档案相关信息,包括输出部门信息、全体员工基本信息、员工工资信息、员工名册,如图6所示。例如,选择“员工工资信息”,单击“打印预览”,则调用报表“全体员工基本信息”,结果界面如图7所示。
图6 档案输出
图7 员工工资信息输出
“打印预览”功能的实现代码如下:
do case
case thisform.optiongroup1.value=1
report form 部门信息 preview
case thisform.optiongroup1.value=2
report form 全体员工基本信息 preview
case thisform.optiongroup1.value=3
report form 员工工资信息 preview
case thisform.optiongroup1.value=4
report form 员工名册 preview
endcase
3 结 语
基于VFP的学校人事管理系统,通过优化合理的数据库结构,并利用菜单、表单、报表设计等理论方法,实现对学校人事的系统管理。该系统界面友好,运行稳定、功能基本符合用户需求,具有较高的应用推广价值。
参考文献
[1] 陈明锐,李怀成.数据库管理系统Visual FoxPro 9.0应用教程[M].北京:高等教育出版社,2010.
[2] 于宁,吴庆学.基于VFP的校园招聘信息管理系统的设计与实现[J].现代电子技术,2013,36(4):23?25.
[3] 江世军.基于VFP6的学籍成绩管理信息系统的设计与实现[D].成都:电子科技大学,2010.
[4] 侯伟.高职学院人事管理系统设计与实现[D].济南:山东大学,2013.
[5] 金鉴禄,孟宪宝.人事管理系统的研究与实现[J].长春工业大学学报:自然科学版,2003,24(2):23?25.
[6] 李强.一种人事管理系统的开发[J].电子测试,2013(7):90?91.
store 0 to h11,h22,h33,h44,h55,h66,h77
use date\员工表
do while i<7
dw=substr("办公室 计科系 外语系 中文系 数学系 后勤处 ",j,8)
store 0 to h1,h2,h3,h4,h5,h6,h7
count all for 婚姻状况="已婚" .and. 部门编号=i to h4
count all for 婚姻状况="未婚" .and. 部门编号=i to h5
count all for 民族="汉" .and. 部门编号=i to h6
count all for 民族<>"汉" .and. 部门编号=i to h7
count all for 性别="男" .and. 部门编号=i to h2
count all for 性别="女" .and. 部门编号=i to h3
store h2+h3 to h1
h11=h1+h11
……
h77=h7+h77
store h+1 to h
i=i+1
j=j+8
h=h+1
enddo
2.5 档案输出
该模块输出档案相关信息,包括输出部门信息、全体员工基本信息、员工工资信息、员工名册,如图6所示。例如,选择“员工工资信息”,单击“打印预览”,则调用报表“全体员工基本信息”,结果界面如图7所示。
图6 档案输出
图7 员工工资信息输出
“打印预览”功能的实现代码如下:
do case
case thisform.optiongroup1.value=1
report form 部门信息 preview
case thisform.optiongroup1.value=2
report form 全体员工基本信息 preview
case thisform.optiongroup1.value=3
report form 员工工资信息 preview
case thisform.optiongroup1.value=4
report form 员工名册 preview
endcase
3 结 语
基于VFP的学校人事管理系统,通过优化合理的数据库结构,并利用菜单、表单、报表设计等理论方法,实现对学校人事的系统管理。该系统界面友好,运行稳定、功能基本符合用户需求,具有较高的应用推广价值。
参考文献
[1] 陈明锐,李怀成.数据库管理系统Visual FoxPro 9.0应用教程[M].北京:高等教育出版社,2010.
[2] 于宁,吴庆学.基于VFP的校园招聘信息管理系统的设计与实现[J].现代电子技术,2013,36(4):23?25.
[3] 江世军.基于VFP6的学籍成绩管理信息系统的设计与实现[D].成都:电子科技大学,2010.
[4] 侯伟.高职学院人事管理系统设计与实现[D].济南:山东大学,2013.
[5] 金鉴禄,孟宪宝.人事管理系统的研究与实现[J].长春工业大学学报:自然科学版,2003,24(2):23?25.
[6] 李强.一种人事管理系统的开发[J].电子测试,2013(7):90?91.
store 0 to h11,h22,h33,h44,h55,h66,h77
use date\员工表
do while i<7
dw=substr("办公室 计科系 外语系 中文系 数学系 后勤处 ",j,8)
store 0 to h1,h2,h3,h4,h5,h6,h7
count all for 婚姻状况="已婚" .and. 部门编号=i to h4
count all for 婚姻状况="未婚" .and. 部门编号=i to h5
count all for 民族="汉" .and. 部门编号=i to h6
count all for 民族<>"汉" .and. 部门编号=i to h7
count all for 性别="男" .and. 部门编号=i to h2
count all for 性别="女" .and. 部门编号=i to h3
store h2+h3 to h1
h11=h1+h11
……
h77=h7+h77
store h+1 to h
i=i+1
j=j+8
h=h+1
enddo
2.5 档案输出
该模块输出档案相关信息,包括输出部门信息、全体员工基本信息、员工工资信息、员工名册,如图6所示。例如,选择“员工工资信息”,单击“打印预览”,则调用报表“全体员工基本信息”,结果界面如图7所示。
图6 档案输出
图7 员工工资信息输出
“打印预览”功能的实现代码如下:
do case
case thisform.optiongroup1.value=1
report form 部门信息 preview
case thisform.optiongroup1.value=2
report form 全体员工基本信息 preview
case thisform.optiongroup1.value=3
report form 员工工资信息 preview
case thisform.optiongroup1.value=4
report form 员工名册 preview
endcase
3 结 语
基于VFP的学校人事管理系统,通过优化合理的数据库结构,并利用菜单、表单、报表设计等理论方法,实现对学校人事的系统管理。该系统界面友好,运行稳定、功能基本符合用户需求,具有较高的应用推广价值。
参考文献
[1] 陈明锐,李怀成.数据库管理系统Visual FoxPro 9.0应用教程[M].北京:高等教育出版社,2010.
[2] 于宁,吴庆学.基于VFP的校园招聘信息管理系统的设计与实现[J].现代电子技术,2013,36(4):23?25.
[3] 江世军.基于VFP6的学籍成绩管理信息系统的设计与实现[D].成都:电子科技大学,2010.
[4] 侯伟.高职学院人事管理系统设计与实现[D].济南:山东大学,2013.
[5] 金鉴禄,孟宪宝.人事管理系统的研究与实现[J].长春工业大学学报:自然科学版,2003,24(2):23?25.
[6] 李强.一种人事管理系统的开发[J].电子测试,2013(7):90?91.