版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
工资管理系统8.1系统概述
8.2系统设计
8.3数据库设计
8.4系统设计与开发
8.5报表设计
8.6完善主界面设计
动手做实验
在企业不断提高自身的竞争力和努力完成各种目标的过程中,员工工资的管理起到至关重要的作用。通过准确有效的工资管理系统,配合相应的考勤和人事系统,可以大大提高企业的运作效率,调动员工的积极性。
一个优秀的企事业单位的工资管理系统主要具有如下功能:工资数据的录入、维护、保存、查询,工资计算,工资表和工资条的打印,工资汇总和历史工资数据的管理。系统的主要特点包括:根据需要增减工资条目,快捷定制计算公式,完整的工资报表,从而适应变化的工资发放规则。8.1系统概述
1.系统功能与应用背景
本章介绍的基于Access数据库开发的企业工资管理系统,通过对员工工资信息的记录和管理分析,可以提供以下主要功能:
1)工资计算规则的制定
2)员工工资的发放
3)员工工资的查询
4)企业工资统计
2.系统预览
某企业工资管理系统主窗口由三部分组成:背景图片、标题栏和导航选项卡,如图8.1所示。
图8.1企业工资管理系统主窗口
单击“系统配置”按钮,系统进入“系统配置”界面,如图8.2所示。图8.2“系统配置”界面
单击“返回主界面”按钮,系统回到前一个界面;单击“工资发放管理”按钮,系统进入“工资发放管理”界面,如图8.3所示。图8.3“工资发放管理”界面
单击“工资发放”按钮,系统进入“工资发放”界面,如图8.4所示。
图8.4工资发放界面
单击“返回主界面”按钮,系统退回“主窗口”;单击“统计查询”按钮,系统进入“统计查询”界面,如图8.5所示。
图8.5“统计查询”界面
在“系统配置”界面中单击“级别工资配置”按钮,系统进入相应设置窗体,如图8.6所示。
图8.6“级别工资配置”窗体界面
8.2系统设计
要进行系统设计,首先要确定系统设计思想,然后对系统的功能模块进行划分,最后确定系统数据库的设计流程。1.系统设计思想
首先,工资管理系统必须对企业当前所有员工的工资信息进行记录,包括基本工资、奖金、加班工资等;系统支持统计查询企业员工的工资情况,为企业管理者提供参考;最后,系统允许管理者对工资的规则进行修改,以适应企业的发展。
2.系统功能模块划分
企业工资管理系统功能模块可以分为四个部分:系统配置模块、工资发放管理模块、统计查询模块、报表生成模块,每个部分根据实际应用又可以再细分成二级功能模块。
1)系统配置模块
2)工资发放管理模块
3)统计查询模块
4)报表生成模块
8.3数
据
库
设
计
数据库的设计分为三个部分,首先对企业工资管理系统的设计进行需求分析,确定需要在数据库中保存的信息,然后应用E-R图对信息进行组织和连接,最后确定每个表的字段属性和主键等数据库信息。
1.数据库需求分析
根据系统设计和数据流图,需要存放以下信息:
(1)系统主切换面板和报表切换面板显示信息:显示名称、对应的处理方式、处理参数和关联显示的窗口或者面板。
(2)员工基本信息:员工号、姓名、性别、出生日期、毕业院校代码、所属级别、所属职位、所属部门编号、电子邮件等。
(3)员工基本工资级别信息:级别编号、级别说明,该级别的基本工资额。
(4)员工职位津贴级别信息:级别编号、级别说明,该级别的津贴额。
(5)企业部门信息:部门编号、部门名称、部门经理编号。
(6)工资发放记录:员工号、发放日期、基本工资额、各种津贴额、各种扣除款项。
(7)月度考勤汇总:编号、员工姓名、员工ID、月度签到数目、签出数目、迟到次数、早退次数、加班时间等。
2. E-R图的生成
根据数据库的需求分析,系统的E-R图如图8.7所示。图8.7系统E-R图
3.数据库设计
1)新建数据库
新建数据库,指定保存位置,见图8.8。
图8.8新建数据库
2)数据表设计
(1)新建“员工信息”表,见表8.1。
(2)新建“级别工资配置”表,见表8.2。
(3)新建“职位津贴配置”表,见表8.3。
(4)新建“部门信息”表,见表8.4。
(5)新建“企业工资计算规则”表,见表8.5。
(6)新建“月度出勤汇总”表,见表8.6。
(7)新建“企业工资发放记录”表,见表8.7。
3)创建数据表
创建各个数据表,见图8.9~图8.11。
图8.9创建数据表图8.10创建员工表图8.11创建部门信息表
4)主界面设计
(1)单击“文件”菜单中的“选项”,在“自定义功能区”→“数据库工具”界面选择“新建选项卡”,见图8.12~图8.14。图8.12“文件”菜单中的“选项”图8.13选择“新建选项卡”图8.14新建选项卡
(2)选择重命名“新建组”,见图8.15。
图8.15重命名“新建组”
(3)更改显示名称,为“工具”任选一个图标,如图8.16和图8.17所示。图8.16选择图标图8.17选择命令
(4)在“Access选项”窗口的左边“自定义功能区”选择“切换面板管理器”,再选择“添加”,见图8.18。图8.18选择“切换面板管理器”
此时可以看到“切换面板管理器”已添加到“工具”中,见图8.19。图8.19添加效果
(5)转到切换面板管理器,见图8.20。
图8.20切换面板管理器
(6)单击“是”按钮,创建切换面板,见图8.21。图8.21创建切换面板
(7)选择“新建”依次添加切换面板页选项,如图8.22和图8.23所示。图8.22添加切换面板页选项图8.22添加切换面板页选项
(8)设置“企业人力资源管理系统”为默认面板,见图8.24。图8.24设置默认面板
(9)删除“主切换面板”,见图8.25。
图8.25删除“主切换面板”
(10)编辑“企业人力资源管理系统”切换面板页,见图8.26。
图8.26编辑切换面板
(11)选择“新建”,依次按图8.27~图8.31操作。
图8.27新建图8.28系统配置图8.29新建项目
图8.30退出系统图8.31设置完成
(12)运行效果见图8.32。
图8.32运行效果
8.4系统设计与开发
1.级别工资配置功能设计
(1)在Access中新建一个窗体,在“新建窗体”对话框中选择“窗体向导”选项,单击“确定”按钮,见图8.33。图8.33新建窗体
(2)系统转入“窗体向导”→“表/字段”设置窗口,在“表/查询”下拉列表中选择“表:级别工资配置”表,选择全部字段,见图8.34。
图8.34选择“表:级别工资配置”表
(3)用鼠标左键单击选择字段,如图8.35所示。
图8.35选择字段
(4)单击“下一步”按钮,系统转入“窗体向导”→“布局”窗口设置,选择“纵栏表”单选框,见图8.36。图8.36“布局”设置
(5)单击“下一步”按钮,系统转入“窗体向导”→“标题”设置窗口,输入“级别工资配置”,接受其他默认选项,见图8.37。图8.37制定标题
(6)单击“完成”按钮,系统转入窗体设计视图,可以对窗体显示的标签和文本框进行修改,见图8.38。
图8.38设计视图
以上就是以“窗体向导”方式快速建立一个窗体的基本过程,窗体的运行效果和使用见图8.39。
图8.39运行效果
2.职位津贴配置窗体功能设计
职位津贴配置窗体功能设计与级别工资配置功能设计类似。
(1)系统转入“窗体向导”→“表/字段”设置窗口,在“表/查询”下拉列表中选择“表:职位津贴配置”表,选择全部字段,见图8.40。
(2)单击“下一步”按钮,系统转入“窗体向导”→“布局”设置窗口,选择“纵栏表”单选框,见图8.41。
图8.40选择“表:职位津贴配置”表图8.41“布局”设置
(3)单击“下一步”按钮,系统转入“窗体向导”→“标题”设置窗口,输入“职位津贴配置”,选中“修改窗体设计”单选框,见图8.42。图8.42制定标题
(4)单击“完成”按钮,系统转入窗体设计视图,可以对窗体显示的标签和文本框进行修改,见图8.43。图8.43设计视图
(5)运行窗体,效果如图8.44所示。
图8.44运行效果
3.部门信息窗体设计
部门信息窗体的建立过程与级别工资配置窗体的建立过程类似。
(1)系统转入“窗体向导”→“表/字段”设置窗口,在“表/查询”下拉列表中选择“表:部门信息”表,选择全部字段,见图8.45。
(2)单击“下一步”按钮,系统转入“窗体向导”→“布局”设置窗口,选择“纵栏表”单选框,见图8.46。图8.45选择“表:部门信息”表图8.46“布局”设置
(3)单击“下一步”按钮,系统转入“窗体向导”→“标题”设置窗口,输入“部门信息”,选中“修改窗体设计”单选框,见图8.47。图8.47为窗体制定标题
(4)单击“完成”按钮,系统转入窗体设计视图,可以对窗体显示的标签和文本框进行修改,见图8.48。
图8.48设计视图
(5)运行窗体,效果如图8.49所示。
图8.49窗体运行效果
4.企业工资计算规则制定窗体设计
企业工资计算规则制定窗体提供了对企业工资的计算规则进行设置的功能,用户可以确定除了基本工资和岗位津贴以外的各种补贴和扣除款项。详细建立过程如下:
(1)在Access中新建一个空白窗体,在“新建窗体”对话框中选择“设计视图”选项,单击“确定”按钮,见图8.50。图8.50新建窗体
(2)在空白窗体上面添加四个文本框和一个按钮,编辑窗体大小,分别设置四个文本框标签的内容为“加班补贴(元/小时)”、“出差补贴(元/天)”、“违纪扣除(元/次)”和“缺勤(元/天)”。设置按钮的名称和标题为“提交”,见图8.51。图8.51编辑窗体
(3)设置“窗体”的“导航按钮”属性为“否”,见图8.52。
图8.52设置“导航按钮”属性
(4)单击“提交”按钮,添加事件,见图8.53。图8.53添加事件窗口
(5)在VBA编辑器环境下,选择“工具”菜单中的“引用”,见图8.54。
图8.54选择“引用”
(6)添加“MicrosoftActiveXDataObjects2.1”,见图8.55。图8.55添加“MicrosoftActiveXDataObjects2.1”
(7)在按钮单击事件过程中添加代码,见图8.56。
图8.56添加代码
(8)软件运行效果见图8.57。
图8.57运行效果
5.工资发放窗体设计
(1)工资发放窗体提供了计算企业所有员工上月应得工资总额和添加员工领取工资记录的功能,首先在Access中新建一个窗体,见图8.58。
图8.58新建窗体
(2)在窗体上添加一个组合框,系统进入组合框向导,见图8.59和图8.60。
图8.59添加组合框
(3)单击“下一步”按钮,在“表”或“查询”列表中选中“表:员工信息”表,见图8.61。
图8.60确定获取数值的方式图8.61选择“表:员工信息”表
(4)单击“下一步”按钮,在可用字段中选中“员工ID”,单击“完成”按钮,见图8.62至图8.66。
图8.62选择“员工ID”图8.63确定排序方式图8.64指定列的宽度图8.65指定标签图8.66布局视图
(5)添加一个组合框,在向导中选择“自行键入所需的值”单选框,单击“下一步”按钮,在编辑框中添加相应的值,见图8.67。图8.67选择“自行键入所需的值”
(6)单击“下一步”按钮,输入“列数”,再单击“完成”按钮;在“请为组合框指定标签”窗格中输入“月份”,然后单击“完成”按钮,见图8.68和图8.69。图8.68输入“月份”图8.69指定标签
(7)添加“工资发放”按钮,设置属性“名称”和“标题”,见图8.70。
图8.70添加“工资发放”按钮
(8)右键单击“工资发放”按钮,选择“事件生成器”→“代码生成器”,添加如下代码:
PrivateSubCommand工资发放_Click()
Dimparameter_overtimeAsInteger
Dimparameter_onsiteAsInteger
Dimparameter_deductAsInteger
Dimparameter_absentAsInteger
Dimbasic_levelAsInteger
Dimposition_levelAsInteger
DimsectionIDAsString
Dimbasic_rateAsInteger
Dimposition_rateAsInteger
Dimlate_timesAsInteger
Dimearly_timesAsInteger
Dimonsite_daysAsInteger
Dimabsent_daysAsInteger
Dimovertime_hoursAsInteger
DimtotalmonthAsInteger
DimsqlAsString
DimrstAsADODB.Recordset
IfIsNull(员工ID)=TrueThen
MsgBox“请选择员工ID”
DoCmd.GoToControl[员工ID]
ElseIfIsNull(月份)=TrueThen
MsgBox“请选择月份ID”
DoCmd.GoToControl[月份]
Else
‘查询计算规则
sql=“select*from企业工资计算规则”
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.CursorType=adOpenDynamic
rst.LockType=adLockOptimistic
rst.Opensql
IfNot(rst.EOF)Then
parameter_overtime=rst!加班补贴
parameter_onsite=rst!出差补贴
parameter_deduct=rst!迟到早退
parameter_absent=rst!缺勤
Else
MsgBox“没有制定工资计算规则”
ExitSub
EndIf
rst.Close
Setrst=Nothing
‘查询级别、岗位和其他配置
sql=“select*from员工信息where[员工ID]=’”&Me![员工ID]&“‘;”
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.CursorType=adOpenDynamic
rst.LockType=adLockOptimistic
rst.Opensql
IfNot(rst.EOF)Then
basic_level=rst!基本工资级别ID
position_level=rst!岗位津贴级别ID
sectionID=rst!部门ID
Else
MsgBox“没有该员工的级别信息”
ExitSub
EndIf
rst.Close
Setrst=Nothing
‘查询个人该月考勤情况
sql=“select*from月度出勤汇总where员工号=’”&Me![员工ID]&“‘”
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.CursorType=adOpenDynamic
rst.LockType=adLockOptimistic
rst.Opensql
IfNot(rst.EOF)Then
late_times=rst!迟到次数
early_times=rst!早退次数
absent_days=rst!请假天数
onsite_days=rst!出差天数
overtime_hours=rst!加班时间汇总
Else
MsgBox“没有该员工的考勤信息”
ExitSub
EndIf
rst.Close
Setrst=Nothing
‘查询级别配置
sql=“select*from级别工资配置where[级别ID]=”&basic_level
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.CursorType=adOpenDynamic
rst.LockType=adLockOptimistic
rst.Opensql
IfNot(rst.EOF)Then
basic_rate=rst!级别对应数额
Else
MsgBox“没有该级别的工资信息”
ExitSub
EndIf
rst.Close
Setrst=Nothing
‘查询岗位配置
sql=“select*from职位津贴配置where[职位ID]=”&position_level
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.CursorType=adOpenDynamic
rst.LockType=adLockOptimistic
rst.Opensql
IfNot(rst.EOF)Then
position_rate=rst!职位对应数额
Else
MsgBox“没有该职位的工资信息”
ExitSub
EndIf
rst.Close
Setrst=Nothing
‘计算该月应得工资额
TotalMonth=basic_rate_
+position_rate_
-(late_times+early_times)*parameter_deduct_
-(absent_days*parameter_absent)_
+(onsite_days*parameter_onsite)_
+(overtime_hours*parameter_overtime)
MsgBoxTotalMonth
‘在工资发放表中添加一个记录
sql=“select*from企业工资发放记录”
Setrst=NewADODB.Recordset
rst.ActiveConnection=CurrentProject.Connection
rst.LockType=adLockOptimistic
rst.CursorType=adOpenKeyset
rst.Opensql
Withrst
.AddNew
!年份=Me![年份]
!月份=Me![月份]
!日期=Date
!员工ID=Me![员工ID]
!基本工资数额=basic_rate
!岗位津贴数额=position_rate
!加班补贴数额=overtime_hours*parameter_overtime
!出差补贴数额=onsite_days*parameter_onsite
!违纪扣除数额=(late_times+early_times)*parameter_deduct
!实际应发数额=TotalMonth
EndWith
rst.Update
rst.Close
Setrst=Nothing
EndIf
sql=“实际发放工资额=”&TotalMonth
MsgBoxsql
‘
Me.Visible=False
EndSub
6.工资查询窗体设计
(1)建立一个窗体,然后添加相应的组合框和按钮。以下是该窗体特定的设置。
将“窗体”的“导航按钮”设置为“否”;在组合框向导中,设置两个组合框“开始月份”和“结束月份”的属性,“行来源属性”设为“值列表”,见图8.71。
图8.71建立窗体
(2)单击“个人查询”按钮,系统调用“个人工资情况”报表,添加相应的代码,见图8.72。
图8.72添加事件
(3)单击“个人查询”按钮,系统调用“个人工资情况”报表,其相应的代码如下:
PrivateSubCommand个人查询_Click()
IfIsNull([员工ID])Then
MsgBox“您必须输入员工号。”
Else
If[开始月份]>[结束月份]Then
MsgBox“结束月份必须大于开始月份。”
Else
DoCmd.OpenReport“个人工资情况”,acViewPreview,,,acWindowNormal
Me.Visible=False
EndIf
EndIf
EndSub
7.个人工资情况查询设计
(1)个人工资情况查询用于查询指定时间段内的个人工资情况。新建查询见图8.73。
图8.73新建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南玉溪兴洁垃圾处理有限公司招聘劳务派遣驾驶员4人考试参考试题及答案解析
- 2026年合肥财经职业学院高职单招职业适应性考试备考题库有答案解析
- 2026福建宏业交通服务有限公司招聘6人考试参考题库及答案解析
- 2026年1月江苏省宝应中学招聘教师5人考试参考试题及答案解析
- 2026四川自贡医元健康管理有限责任公司招聘工作人员11人考试参考题库及答案解析
- 2026广西钦州市人力资源和社会保障局招聘公益性岗位人员2人考试备考试题及答案解析
- 2026江苏中国药科大学智能药学交叉研究院工作人员招聘5人考试参考题库及答案解析
- 2026年昆明市西山区人民医院聘非事业编制工作人员(4人)考试参考试题及答案解析
- 2026四川绵阳市三台县妇幼保健院 招聘编外聘用人员3人(眼科视光师、皮肤科医师、外科医师)考试备考题库及答案解析
- 2026中国联通上海市分公司校园招聘考试备考试题及答案解析
- 福特F-150猛禽说明书
- 全国优质课一等奖地理《农业的区位选择》课件
- 荣誉证书、奖状、聘书打印模板(可自行编辑)
- 舒城县2023-2024学年四年级数学第一学期期末达标检测模拟试题含答案
- 2023版个人征信模板简版(可编辑-带水印)
- 退役金计算器
- 国开电大本科《人文英语3》机考总题库
- 北京市建筑垃圾采集报送系统使用说明书
- GB/T 4942-2021旋转电机整体结构的防护等级(IP代码)分级
- GB/T 32606-2016文具用品中游离甲醛的测定方法乙酰丙酮分光光度法
- GB/T 17897-2016金属和合金的腐蚀不锈钢三氯化铁点腐蚀试验方法
评论
0/150
提交评论