VB人事管理系统数据流程图+ER图课程设计.docx
《VB人事管理系统数据流程图+ER图课程设计.docx》由会员分享,可在线阅读,更多相关《VB人事管理系统数据流程图+ER图课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
VB人事管理系统数据流程图+ER图课程设计
VB人事管理系统(数据流程图+ER图)-课程设计
1〃课程设计的目的
人事管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信
息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件信息,这种
管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文
件和数据,这对于查找、更新和维护都带来了不少的困难。
使用计算机对人事信
息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
因此有利于办公自动化的人
事管理系统能够极大地提高人事管理的效率,也是企业进行科学化、正规化管理的手段。
2.设计方案论证
2.1需求分析
人事管理可以说是一项琐碎、繁杂而又必须十分细致的工作,是不能允许时常发
生差错的。
几十年前的那种手工操作已远远跟不上近代企业发展的步骤,时代的
进步决定了企业的发展,而企业要发展必然完善的管理体系,所以说企业人事管
理的自动化完全是时代进步的必然结果。
合理的利用有助于企业发展的管理系统
是企业改革的一种优越的体现。
利用计算机对企业人事管理不仅保证了核算准确
度,还成倍的提高了工作效率,而且便于查询。
通过本人事管理数据库管理系统软件,能帮助人事管理人员利用计算机快速方便
的对企业人事资源进行管理。
人事管理系统主要用于企业内部员工的档案、工资,
便于公司领导掌握人员动向,及时调整人才的分配。
本软件集企业人员基本信息,
企业人员劳工合同,及人才需求计划于一身,目的在于能够使管理人员更加方便,
快捷的对企业人事进行管理。
同时本人事管理软件使人事管理工作系统化、规范
化、自动化,从而在一方面提高了管理者的工作效率,减少了传统人工管理方式
所带来的人力,物力的浪费,另一方面由于本软件具有查找方便、可靠性高、存
储量大等优点,所以实现了企业人事管理的自动化。
人事管理系统针对企业员工信息的处理工作采用计算机进行全面的现代化管理,
用户可以通过输入员工的基本信息、考勤信息等,由系统自动生成相应的统计数据及工资统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定
期的更新与删除工作,人事管理系统力求以方便快捷的途径去管理职工的信息,
代替手工操作的繁琐数据。
经过调查分析有关企业的人事信息需求的基础上,得到如图1-1的系统数据流程
图如下:
图1-1系统数据流程图
2〃2概念结构设计图2.2人事管理系
统
课程设计说明书NO.5
2.3逻辑结构设计
根据实体间的E-R模型的需求分析,本系统需要2个数据表分别来存放员工个人信息和人事变动记录,并需要一个外部数据表(部门管理表)的支持。
另外设计
工资管理,考勤管理,员工评价3个表来管理员工数据。
具体数据表的设计如下面的表格所示。
字段名数据类型长度是否为空说明ygidVarchar10Notnull工号ygnameVarchar20Notnull姓名sexChar10Notnull性别
ageVarchar3Notnull年龄
birthDatetime8null出生日期addressVarchar50null地址telVarchar15null电话
politicVarchar50null政治面貌schoolVarchar50null毕业院校ygidentityVarchar20null身份证号departmentVarchar50null所在部门textText16null备注
图2.3职工档案信息表
字段名数据类型长度是否为空说明idVarchar10Notnull事件编号Case1Text16Notnull事件
textText16Notnull备注
图2.4人事变动表
字段名数据类型长度是否为空说明
namechar20Notnull用户名
passwordchar8Notnull密码
图2.5管理员表
2.4系统详细设计208
VB人事管理系统
2.4.1系统的主界面设计
这个企业人事管理系统的主界面是采用多重窗体的格式(MDI),可使系统界面更加美观,方便实用。
在登陆主界面之前,首先登记用户管理窗体;创建好的窗
体如图2.6:
图2.6系统的主界面
这个项目我们使用多文档界面,单击工具栏中的ADDMDIForm按扭,产生一个窗体。
在窗体上添加所需控件。
在主界面中,员工管理菜单是此系统的重要组成部份,其中包括4个主要功能模块:
员工基本信息模块,员工考勤模块,员工评价模块和员工工资管理模块。
2.4.2员工基本信息模块设计
该模块主要完成员工基本信息的输入、查询与修改,它定义了三个主要窗口:
信息添加窗口、复合查询窗口、员工信息列表窗口。
员工信息添加窗口用来添加
员工个人信息,可供用户浏览查询及以记录为单
在窗体上放置多个文本框和下拉式列表框,用来输入员工个人基本信息,工作信息和其它信息;多个标签用来提示多个文本框所需要的内容。
两个按钮用来确定
是否添加员工信息。
一个下拉列表框用来显示员工的性别。
在员工性别录入中使
用了下拉列表控件,在载入窗体时程序将自动在两个下拉式文本框中添加内容,
沈阳大学
课程设计说明书NO.7
载入窗体时,将首先通过整型变量gintmode的值来判断是添加还是修改状态(1为添加,2为修改)。
如果是添加状态,性别选择框将选择第一个;如果是修改状态,将选择显示当前的记录。
员工信息的添加窗口如图2.7:
图2.7员工信息添加
查询功能使用复合查询的模式。
分为按工号查询、按员工姓名查询和按员工
部门查询。
用户可以根据实际需要选择其中的一项或几项。
首先点击要先择的复
选框控件,这时光标自动移动到它对应的文本框,只要在相应的文本框中输入要
查找的内容,然后点击确定按扭即完成了此项操作,并以列表的形式显示出数据。
查询功能的另一个特点是如果用户对查询窗口不做任何操作,直接点击确定按扭,在查询结果的列表窗口中显示出所有员工的信息。
查询窗口界面如下图2.8所示:
图2.8员工档案查询窗体
课程设计说明书NO.8
在介绍了上述两项功能之后,将讲述一下员工信息的修改与删除的功能。
首先如
果用户需要修改一些信息,可以在菜单中选择修改信息,这时,如果没有选择要具体修改的信息,将出现消息对话框,通知用户选择一条要修改的记录,然后则通过SQL语句载入窗体,触发窗体的Load事件,显示员工信息列表窗体并列出所有员
工的信息,在窗体的下部放置了一个修改按扭。
用户在列表中选择了要操作的员
工记录后点击该按扭,屏幕将出现员工信息添加窗体,窗体中体现出上一步用户
所选择的员工记录,在具体的文本框中写入修改的记录,单击保存按钮出现”记录
保存成功”消息对话框,点击确定按扭返回员工列表窗体,至此己完成了对员工信
息的修改。
删除员工信息的功能和修改功能类似,在列表中选择要删除的记录后
点击鼠标右键,在弹出的子窗体中选择删除信息弹出”是否删除此记录”对话框,点击确定后完成了信息的删除操作。
2.4.3员工考勤模块设计
员工考勤管理模块主要实现如下功能:
1添加员工考勤信息
2修改员工考勤信息
3删除员工考勤信息
考勤管理是每个企事业所必需的,计算机管理系统的出现使员工出勤情况的记录
和统计变得十分简单。
软件是用于员工出入单位的情况录入,请假、加班和出差情况的录入,每个月底进行整个月的出勤情况统计。
另外,考勤管理为工资管理直接提供每个月工作时间的统计结果,用以计算工资,同时考勤管理也需要其它功
能所提供的员工、部门等信息。
考勤添加模块主要是用来实现系统用户对企业现有员工的考勤登记,包括出勤记录、请假记录、加班记录和出差记录。
在主窗体的菜单中选择考勤添加便进入了
考勤添加窗体。
图2.9员工考勤添加
2.4.4员工评价模块设计
员工评价的主要功能包括:
.员工评价信息的添加
.员工评价信息的修改与删除
.员工评价信息的查询
实现各数据库中添加评价记录的方法和前面员工信息,考勤信息的添加方法相同。
选择修改评价菜单,将出现员工评价列表的窗体,此窗体同样采用子窗体的形式,由主窗体继承而来。
选择需要修改的记录,单击下面的修改按钮或单击鼠标右键
选择修改评价菜单,在员工评价信息添加窗体中进行修改。
分为按工号查询和按
姓别查询两种,可以按照各种方式以及它们的组合进行查询。
满足查询要求的记
录都将出现在员工评价记录列表框中。
当先择主菜单中的添加员工评价信息菜单,将出现如图2.10所示:
图2.10员工评价信息添加
VB人事管理系统(数据流程图+ER图)2.4.5员工工资管理模块
工资管理是企业管理中不可缺少的一项工作。
员工工资管理模块用于每个月员
工实发工资的计算,计算的项目包括基本工资、奖金、福利待遇、津贴等。
主要包括以下几项功能:
.员工工资的录入
.员工工资的修改与删除
.员工工资的查询
.员工基本工资的设定
.奖金以及福利补贴的设置
.实发工资计算
.根据出勤统计结果计算本月各项实际金额.输出工资报表
工资管理的输出结果是对员工工作的一个评价。
计算工资的基本依据是考勤
管理模块的统计结果。
同时,在统计和查询时需要用到员工基本信息模块和部门
信息。
首先选择主窗体中添加工资菜单将出现我添加员工工资窗体。
如图2.11
所示:
图2.11员工工资添加
从部门下拉表中选择部门,再从姓名下拉列表中选择要添加工资的员工。
在月份
文本框中使用的是Format(Now,"yyyy-mm-dd")函数,直接添加计算机的系统日期。
其中实
沈阳大学
课程设计说明书NO.11
发工资的内容不需用户添写,在添写完其它工资内容后点击开始统计按钮将员工
的收入与支出金额相减得出实发工资项。
最后单击确认,将所填数据存入数据库中。
工资管理的修改与删除同样需要以列表的形式如图2.12显示:
图2.12员工工资列表
作为子窗体的员工工资列表能够清楚的表现员工各项收入与支出的金额。
选择修
改可以对所选数据进行编辑,也同样可以点击鼠标右键选择所需要的操作。
在数
据环境中添加Command命令,并设置命令属性:
在SQL语句中输入select*from按姓名和按工号复合查询的两种方式和其它模块不同的是员工工资管理填加了
一个工资报表窗体。
选择主窗体中的工资报表菜单即会显示该窗体。
员工工资报
表窗体如图2.13所示:
图2.13员工工资报表
沈阳大学
课程设计说明书NO.12
工资报表窗体作为子窗体来显示。
窗口主要分成工具条和预览效果两部分,
预览效果显示的就是最终打印的结果。
在下面的工具条上包括4个页面浏览按钮。
在上面工具条的下拉列表框中选择需要显示的比例。
别外两个按钮分别用来实现
打印与导出操作。
如果要打印的工资报表有多页,可以通过4个页面浏览按钮进
行上下翻页。
此模块通过工资管理的创建,着重描述了工资计算和数据报表的使用。
计算主要
是通过对所输入的数据进行相加和相减的运算,最后显示结果数据。
数据报表为我们提供了一个更加方便快捷地实现报表打印的方法。
通过使用报表中的各种控
件,可以很简单地实现复杂报表的设计,避免了繁杂的编程过程。
2.4.6系统源代码
PublicfMainFormAsfrmmain
PublicgintModeAsInteger
PublicflagEditAsBoolean
PublicusernameAsString
SubMain()
DimfLoginAsNewfrmlogin
fLogin.ShowvbModal
IfNotfLogin.OKThen
End
EndIf
UnloadfLogin
SetfMainForm=Newfrmmain
fMainForm.Show
EndSub
PublicFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.Recordset
DimcnnAsADODB.Connection
DimrstAsADODB.Recordset
DimsTokens()AsString
OnErrorGoToExecuteSQL_Error
sTokens=Split(SQL)
Setcnn=NewADODB.Connection
cnn.OpenConnectString
IfInStr("INSERT,DELETE,UPDATE",_
沈
阳大学
课程设计说明书NO.13
UCase$(sTokens(0)))Then
cnn.ExecuteSQL
MsgString=sTokens(0)&_
"querysuccessful"
Else
Setrst=NewADODB.Recordset
rst.OpenTrim$(SQL),cnn,_
adOpenKeyset,_
adLockOptimistic
SetExecuteSQL=rst
MsgString="查询到"&rst.RecordCount&_
"条记录"EndIf
ExecuteSQL_Exit:
Setrst=Nothing
Setcnn=Nothing
ExitFunction
ExecuteSQL_Error:
MsgString="查询错误:
"&_
Err.Description
ResumeExecuteSQL_Exit
EndFunction
PublicFunctionConnectString()AsString
ConnectString="FileDSN=renshi.dsn"
EndFunction
员工基本信息模块代码:
OptionExplicit
DimmblchangeAsBoolean
PublictxtSQLAsString
PublicmsgtextAsString
DimmrcAsADODB.Recordset
PrivateSubcmdcancle_Click()
UnloadMe
EndSub
PrivateSubcmdOK_Click()
DimintCountAsInteger
DimtxtSQLAsString
DimMsgStringAsString
沈
阳大学课程设计说明书NO.14
DimsMegAsString
DimiAsInteger
ForintCount=0To1
IfTrim(Text1(intCount)&"")=""Then
SelectCaseintCount
Case0
sMeg="工号"
Case1
sMeg="姓名"
EndSelect
sMeg=sMeg&"不能为空"
MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"Text1(intCount).SetFocus
ExitSub
EndIf
NextintCount
IfTrim(Text1(3)&"")=""Then
MsgBox"出生日期不能为空",vbOKOnly+vbExclamation,"警告"
EndIf
IfTrim(Text1(3)&"")<>""Then
IfNotIsDate(Text1(3))Then
MsgBox"出生日期应为(yyyy-mm-dd)!
",vbOKOnly+vbExclamation,"警告"
Text1(3).SetFocus
ExitSub
Else
vbOKOnly+vbExclamation,"警告"ExitSub
EndIf
IfgintMode=1Then
txtSQL="select*fromdanganwhereygid='"&Trim(Text1(0))&"'"Setmrc=ExecuteSQL(txtSQL,msgtext)
Ifmrc.EOF=FalseThen
MsgBox"有重复记录",vbOKOnly+vbExclamation,"警告"
Text1(0).SetFocus
EndIf
VB人事管理系统(数据流程图+ER图)
mrc.Close
txtSQL="delete*fromdanganwhereygid='"&Trim(Text1(0))&"'"Setmrc=ExecuteSQL(txtSQL,msgtext)
txtSQL="select*fromdangan"
Setmrc=ExecuteSQL(txtSQL,msgtext)
mrc.AddNew
ForintCount=0To1
mrc.Fields(intCount)=Trim(Text1(intCount))
NextintCount
ForintCount=2To5
mrc.Fields(intCount)=Trim(Text1(intCount))
NextintCount
ForintCount=6To10
mrc.Fields(intCount)=Trim(Text1(intCount))
NextintCount
mrc.Fields(11)=Trim(Combo1.Text)
mrc.Update
IfgintMode=1Then
MsgBox"添加记录成功",vbOKOnly,"提示"
Fori=0To10
Text1(i).Text=""
Nexti
frmyuangong.Show
frmyuangong.ZOrder0
frmmanrecord.ShowTitlefrmmanrecord.ShowData
frmmanrecord.ZOrder1
EndIf
PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsString
DimrectempAsRecordsetDimsSqlAsString
DimmsgtextAsString
ForintCount=0To3
IfTrim(txtItem(intCount)&"")=""Then
SelectCaseintCount
Case0
sMeg="本月天数"
沈
阳大学
课程设计说明书NO.16Case2
sMeg="应出勤天数"Case3
sMeg="出勤"
EndSelect
IfintCount<>1Then
sMeg=sMeg&"不能为空!
"
MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"
txtItem(intCount).SetFocus
ExitSub
EndIf
EndIf
NextintCount
IfgintMode=1Then
txtSQL="select*fromcheckinwherekqid='"&Trim(txtid)&"'andkqdate='"&Format(cboYear.Text&"-"&cboMonth.Text&"-01","yyyy-mm-dd")&"'"
Ifmrc.EOF=FalseThen
MsgBox"已经存在该员工在该月的考勤记录!
",vbOKOnly+vbExclamation,"
警告"
ExitSub
EndIf
mrc.Close
txtSQL="delete*fromrenshi1whereid='"&Trim(Text(0))&"'"Setmrc=ExecuteSQL(txtSQL,msgtext)
txtSQL="select*fromrenshi1"
Setmrc=ExecuteSQL(txtSQL,msgtext)
ForintCount=0To2
mrc.Fields(intCount)=Trim(Text(intCount))
NextintCount
mrc.Update
MsgBox"添加记录成功!
",vbOKOnly,"提示"
frmrenshi.ZOrder1
frmrenshi.Show
Command1.Enabled=True
first.Enabled=True
沈
阳大学课程设计说明书NO.17
last.Enabled=True
EndIf
IfgintMode=2Then
txtSQL="select*fromrenshi1"
Setmrc=ExecuteSQL(txtSQL,msgtext)
mrc.Fields(intCount)=Text(intCount).Text
mrc.Update
MsgBox"记录修改成功!
",vbOKOnly,"提示"
cmdchange.Enabled=True
Command1.Enabled=True
cmddelete.Enabled=True
EndIf
mrc.Close
EndIf
txtSQL="select*fromdepartment"
Setmrc=ExecuteSQL(txtSQL,msgtext)
mrc.AddNew
ForintCount=0To2
mrc.Fields(intCount)=Trim(Text(intCount))
mrc.Update
MsgBox"记录添加成功!
",vbOKOnly+vbExclamation,"警告"
cmdok.Enabled=True
cmdchange.Caption="