VB人事管理系统(数据流程图+ER图)1.课程设计的目的 人事管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。因此有利于办公自动化的人事管理系统能够极大地提高人事管理的效率,也是企业进行科学化、正规化管理的手段。2.设计方案论证2.1需求分析人事管理可以说是一项琐碎、繁杂而又必须十分细致的工作,是不能允许时常发生差错的。几十年前的那种手工操作已远远跟不上近代企业发展的步骤,时代的进步决定了企业的发展,而企业要发展必然完善的管理体系,所以说企业人事管理的自动化完全是时代进步的必然结果。合理的利用有助于企业发展的管理系统是企业改革的一种优越的体现。利用计算机对企业人事管理不仅保证了核算准确度,还成倍的提高了工作效率,而且便于查询。通过本人事管理数据库管理系统软件,能帮助人事管理人员利用计算机快速方便的对企业人事资源进行管理。人事管理系统主要用于企业内部员工的档案、工资,便于公司领导掌握人员动向,及时调整人才的分配。本软件集企业人员基本信息,企业人员劳工合同,及人才需求计划于一身,目的在于能够使管理人员更加方便,快捷的对企业人事进行管理。同时本人事管理软件使人事管理工作系统化、规范化、自动化,从而在一方面提高了管理者的工作效率,减少了传统人工管理方式所带来的人力,物力的浪费,另一方面由于本软件具有查找方便、可靠性高、存储量大等优点,所以实现了企业人事管理的自动化。 人事管理系统针对企业员工信息的处理工作采用计算机进行全面的现代化管理,用户可以通过输入员工的基本信息、考勤信息等,由系统自动生成相应的统计数据及工资统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定期的更新与删除工作,人事管理系统力求以方便快捷的途径去管理职工的信息,代替手工操作的繁琐数据。经过调查分析有关企业的人事信息需求的基础上,得到如图1-1的系统数据流程图如下: 图1-1 系统数据流程图
2.2概念结构设计 图2.2人事管理系统
课程设计说明书 NO.5 2.3逻辑结构设计 根据实体间的E-R模型的需求分析,本系统需要2个数据表分别来存放员工个人信息和人事变动记录,并需要一个外部数据表(部门管理表)的支持。另外设计工资管理,考勤管理,员工评价3个表来管理员工数据。具体数据表的设计如下面的表格所示。
字段名 数据类型 长度 是否为空 说明ygid Varchar 10 Not null 工号ygname Varchar 20 Not null 姓名sex Char 10 Not null 性别age Varchar 3 Not null 年龄birth Datetime 8 null 出生日期address Varchar 50 null 地址tel Varchar 15 null 电话politic Varchar 50 null 政治面貌school Varchar 50 null 毕业院校ygidentity Varchar 20 null 身份证号department Varchar 50 null 所在部门text Text 16 null 备注 图2.3职工档案信息表
字段名 数据类型 长度 是否为空 说明id Varchar 10 Not null 事件编号Case1 Text 16 Not null 事件text Text 16 Not null 备注图2.4 人事变动表
字段名 数据类型 长度 是否为空 说明name char 20 Not null 用户名password char 8 Not null 密码 图2.5 管理员表2.4系统详细设计208
VB人事管理系统 2.4.1系统的主界面设计 这个企业人事管理系统的主界面是采用多重窗体的格式(MDI),可使系统界面更加美观,方便实用。在登陆主界面之前,首先登记用户管理窗体;创建好的窗体如图2.6: 图2.6 系统的主界面这个项目我们使用多文档界面,单击工具栏中的ADD MDI Form按扭,产生一个窗体。在窗体上添加所需控件。 在主界面中,员工管理菜单是此系统的重要组成部份,其中包括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系统源代码Public fMainForm As frmmainPublic gintMode As IntegerPublic flagEdit As BooleanPublic username As StringSub Main()Dim fLogin As New frmloginfLogin.Show vbModalIf Not fLogin.OK ThenEndEnd IfUnload fLoginSet fMainForm = New frmmainfMainForm.ShowEnd SubPublic Function ExecuteSQL(ByVal SQL _As String, MsgString As String) _As ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr("INSERT,DELETE,UPDATE", _
沈 阳 大 学课程设计说明书 NO.13 UCase$(sTokens(0))) Thencnn.Execute SQLMsgString = sTokens(0) & _" query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn, _adOpenKeyset, _adLockOptimisticSet ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & _" 条记录 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查询错误: " & _Err.DescriptionResume ExecuteSQL_ExitEnd FunctionPublic Function ConnectString() As StringConnectString = "FileDSN=renshi.dsn"End Function员工基本信息模块代码:Option ExplicitDim mblchange As Boolean Public txtSQL As StringPublic msgtext As StringDim mrc As ADODB.RecordsetPrivate Sub cmdcancle_Click()Unload MeEnd SubPrivate Sub cmdOK_Click()Dim intCount As IntegerDim txtSQL As StringDim MsgString As String
沈 阳 大 学课程设计说明书 NO.14 Dim sMeg As StringDim i As IntegerFor intCount = 0 To 1If Trim(Text1(intCount) & "") = "" ThenSelect Case intCountCase 0sMeg = "工号"Case 1sMeg = "姓名"End SelectsMeg = sMeg & "不能为空"MsgBox sMeg, vbOKOnly + vbExclamation, "警告"Text1(intCount).SetFocusExit SubEnd IfNext intCountIf Trim(Text1(3) & "") = "" ThenMsgBox "出生日期不能为空", vbOKOnly + vbExclamation, "警告"End IfIf Trim(Text1(3) & "") <> "" ThenIf Not IsDate(Text1(3)) ThenMsgBox "出生日期应为(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"Text1(3).SetFocusExit SubElselwfree.cn vbOKOnly + vbExclamation, "警告"Exit SubEnd IfIf gintMode = 1 ThentxtSQL = "select * from dangan where ygid='" & Trim(Text1(0)) & "'"Set mrc = ExecuteSQL(txtSQL, msgtext)If mrc.EOF = False ThenMsgBox "有重复记录", vbOKOnly + vbExclamation, "警告"Text1(0).SetFocusEnd If
VB人事管理系统(数据流程图+ER图)mrc.ClosetxtSQL = "delete * from dangan where ygid='" & Trim(Text1(0)) & "'"Set mrc = ExecuteSQL(txtSQL, msgtext)txtSQL = "select * from dangan"Set mrc = ExecuteSQL(txtSQL, msgtext)mrc.AddNewFor intCount = 0 To 1mrc.Fields(intCount) = Trim(Text1(intCount))Next intCountFor intCount = 2 To 5mrc.Fields(intCount) = Trim(Text1(intCount))Next intCountFor intCount = 6 To 10mrc.Fields(intCount) = Trim(Text1(intCount))Next intCountmrc.Fields(11) = Trim(Combo1.Text)mrc.UpdateIf gintMode = 1 ThenMsgBox "添加记录成功", vbOKOnly, "提示"For i = 0 To 10Text1(i).Text = ""Next ifrmyuangong.Showfrmyuangong.ZOrder 0frmmanrecord.ShowTitlefrmmanrecord.ShowDatafrmmanrecord.ZOrder 1End IfPrivate Sub cmdSave_Click()Dim intCount As IntegerDim sMeg As StringDim rectemp As RecordsetDim sSql As StringDim msgtext As StringFor intCount = 0 To 3If Trim(txtItem(intCount) & " ") = "" ThenSelect Case intCountCase 0sMeg = "本月天数"
沈 阳 大 学课程设计说明书 NO.16
Case 2sMeg = "应出勤天数"Case 3sMeg = "出勤"End SelectIf intCount <> 1 ThensMeg = sMeg & "不能为空!"MsgBox sMeg, vbOKOnly + vbExclamation, "警告"txtItem(intCount).SetFocusExit SubEnd IfEnd IfNext intCountIf gintMode = 1 ThentxtSQL = "select * from checkin where kqid='" & Trim(txtid) & "' and kqdate= '" & Format(cboYear.Text & "-" & cboMonth.Text & "-01", "yyyy-mm-dd") & "'"If mrc.EOF = False ThenMsgBox "已经存在该员工在该月的考勤记录!", vbOKOnly + vbExclamation, "警告"Exit SubEnd If
mrc.ClosetxtSQL = "delete * from renshi1 where id='" & Trim(Text(0)) & "'"Set mrc = ExecuteSQL(txtSQL, msgtext)txtSQL = "select * from renshi1"Set mrc = ExecuteSQL(txtSQL, msgtext)For intCount = 0 To 2mrc.Fields(intCount) = Trim(Text(intCount))Next intCountmrc.UpdateMsgBox "添加记录成功!", vbOKOnly, "提示"frmrenshi.ZOrder 1frmrenshi.ShowCommand1.Enabled = Truefirst.Enabled = True
沈 阳 大 学课程设计说明书 NO.17last.Enabled = TrueEnd IfIf gintMode = 2 ThentxtSQL = "select * from renshi1"Set mrc = ExecuteSQL(txtSQL, msgtext)mrc.Fields(intCount) = Text(intCount).Textmrc.UpdateMsgBox "记录修改成功!", vbOKOnly, "提示"cmdchange.Enabled = TrueCommand1.Enabled = Truecmddelete.Enabled = TrueEnd Ifmrc.CloseEnd IftxtSQL = "select * from department"Set mrc = ExecuteSQL(txtSQL, msgtext)mrc.AddNewFor intCount = 0 To 2mrc.Fields(intCount) = Trim(Text(intCount))mrc.UpdateMsgBox "记录添加成功!", vbOKOnly + vbExclamation, "警告"cmdok.Enabled = Truecmdchange.Caption = "修改"For i = 0 To 2Text(i).Text = ""mblchange = FalseNext i frmbumen.ShowElseIf cmdchange.Caption = "修改" ThentxtSQL = "select * from department where dpid='" & Trim(Text(0)) & "'"Set mrc = ExecuteSQL(txtSQL, msgtext)For i = 0 To 2mrc.Fields(i) = Text(i).TextNext imrc.Update For intCount = 0 To 2Text(intCount).Enabled = Truemybookmark = mrc.BookmarkNext intCountMsgBox "记录修改成功!", vbOKOnly + vbExclamation, "警告"Unload MeEnd IfEnd Sub
VB人事管理系统(数据流程图+ER图)设计结果与分析系统运行后通过对各个模块的调试以测试运行结果。在员工信息添加模快中在员工性别录入中使用了ComboBox下拉列表控件,在载入窗体时程序将自动在两个下拉式文本框中添加内容,这样可以规范化输入内容,其中加入了”男” 、”女”。用户可以直接从下拉表中选择需要的输入条件。输入的出生日期按照YYYY-MM-DD的统一格式来录入。如果数据库中存在与此项添加的员工档案相同的数据,按确定后将弹出消息对话框”己存在此员工的信息”,提示用户己经存在此员工的信息,从而避免了相同员工信息的重复录入。在考勤添加模块中在主窗体的菜单中选择考勤添加便进入了考勤添加窗体。窗体中使用了SSTAB控件,使界面和功能更加完美。在添加记录之前,用户可以根据现有员工档案的具体情况选择进行添加,在基本信息标签页中选择部门下拉列表框,其中包含了企业的所有部门。它的具体实现是通过ADODC控件绑定到员工信息数据表中,从表中使用DISTINCT选择不同的部门名称加入到下拉列表中。当用户选择了一个具体的部门之后,在随后的姓名列表中将通过SQL语句列出此部门的所有员工的姓名,而同时在员工工号的文本框中自动添加了此员工的工号。这种使用方式的好处是让用户可以根据员工档案的具体情况进行编辑,对每个员工进行考勤录入,从而避免了不了解企业内部员工档案的实际情况而造成错误的可能,同时也大大缩短了考勤操作的时间。4设计体会 通过本次课程设计的操作与实践,使我了解到关系数据库的相关理论知识和有关工具软件的使用技巧,训练了我的动手能力。让我意识到,掌握专业知识的重要性。同时我也深深的感觉到如果自己有了兴趣就动手去做,困难在勇气和毅力下是抬不了头的。5.参考文献 [1]郭盈发主编.《数据库原理与应用》.西安: 电子科技大学出版社,2005. [2]史嘉权主编.《数据库系统教程》. 北京:清华大学出版社,2005. [3]史济民主编.《FoxPro及其应用系统开发》.北京:清华大学出版社,2006.[4]萨师煊主编.《数据库系统概述》.北京:高等教育出版社,2007.