![企业工资管理系统_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/54322dde-7f98-4fc1-b05d-ec577adc603e/54322dde-7f98-4fc1-b05d-ec577adc603e1.gif)
![企业工资管理系统_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/54322dde-7f98-4fc1-b05d-ec577adc603e/54322dde-7f98-4fc1-b05d-ec577adc603e2.gif)
![企业工资管理系统_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/54322dde-7f98-4fc1-b05d-ec577adc603e/54322dde-7f98-4fc1-b05d-ec577adc603e3.gif)
![企业工资管理系统_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/54322dde-7f98-4fc1-b05d-ec577adc603e/54322dde-7f98-4fc1-b05d-ec577adc603e4.gif)
![企业工资管理系统_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/54322dde-7f98-4fc1-b05d-ec577adc603e/54322dde-7f98-4fc1-b05d-ec577adc603e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、员工出勤统计信息表:字段类型长度是否空说明id 自动编号长整型不能空记录编号stuffid 文本50 不能空员工编号stuffname 文本50 不能空员工姓名recordmonth 日期/ 时间不能空统计时间attendance 数字长整型不能空出勤天数lateearly 数字长整型不能空迟到早退次数absent 数字长整型不能空旷工次数overtimecom 数字长整型不能空正常加班次数overtimespe 数字长整型不能空特殊加班次数errand 数字长整型不能空出差次数员工工资计算公式信息表:字段类型长度是否空说明overtimecom 数字长整型不能空正常加班工资百分比overti
2、mespe 数字长整型不能空特殊加班工资百分比errand 数字长整型不能空出差工资absent 数字长整型不能空旷工工资le 数字长整型不能空迟到早退员工其他项目设置:字段类型长度是否空说明id 自动编号长整型不能空记录编号stuffid 文本50 不能空员工编号yearmonth 日期/时间不能空年月字段类型长度是否空说明id 自动编号长整型不能空记录编号stuffid 文本50 不能空员工编号sposition 文本50 不能空员工职务salary 货币货币不能空基本工资type 数字长整型不能空类型name 文本50 能空类型money 货币货币不能空名称remark 备注能空备注员工
3、工资统计信息表:字段类型长度是否空说明id 自动编号长整型不能空记录编号stuffid 文本50 不能空员工编号stuffname 文本50 不能空员工姓名yearmonth 日期/时间不能空时间basicsalary 货币货币基本工资bonus 货币货币奖金welfare 货币货币福利allowance 货币货币津贴abatement 货币货币扣发lesub 货币货币迟到早退扣发absentsub 货币货币旷工扣发overtime 货币货币加班费errand 货币货币出差费others 货币货币其他金额total 货币货币总额员工信息表:字段类型长度是否空说明sid 文本50 能空员工编号s
4、name 文本50 能空员工姓名sgender 文本50 能空性别splace 文本50 能空籍贯sage 数字长整型不能空年龄sbirthday 日期/时间不能空生日sdegree 文本50 能空学历sspecial 文本50 能空专业saddress 文本50 能空住址scode 文本50 能空邮编stel 文本50 能空电话semail 文本50 能空email sworktime 日期/时间不能空参加工作时间sintime 日期/时间不能空进入公司时间sdept 文本50 能空部门spaytime 日期/时间不能空起薪时间sposition 文本50 能空职务sremark 文本50
5、能空备注用户信息表:字段类型长度是否空说明userid 文本50 不能空用户名称userpwd 文本50 不能空用户密码第三章企业工资管理系统应用程序设计31 “登录模块”详细设计登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。32 “主窗体”模块详细设计在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的
6、系统资源。主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。3.3 各项子模块详细设计选择“系统”“添加用户”菜单,在添加用户的窗体里 ,输入新的用户名称和密码后,单击“确定”按钮,系统将会添加新的用户。 sql = insert into userinfo (userid,userpwd) values( & username sql = sql & , & password & ) call transactsql(sql, salary
7、) msgbox 添加成功, vbokonly + vbexclamation, 添加结果 username.text = password.text = confirmpwd.text = username.setfocus 选择“系统”“修改密码”菜单,在修改密码的窗体里,输入旧密码和 2次输入新密码后,单击“确定”按钮,系统将会更改当前用户的密码。userpassword = newpwd sql = update userinfo set userpwd= & newpwd & where userid= & strusername & call tra
8、nsactsql(sql, salary) msgbox 密码已经修改, vbokonly + vbexclamation, 修改结果 选择“工资信息设置”“基本工资设置”菜单设置员工的基本工资,可以根据员工的编号,或者根据员工职务设置基本工资, 设置的基本工资为每个小时的工资。set rs = getrs(sql, salary) if rs.eof = false then sql = delete from salarysetting where stuffid= & mstuffid.text & call transactsql(sql, salary) end if
9、 rs.close id = mstuffid.text call addrecord msgbox 已经设置基本工资, vbokonly + vbexclamation, 添加结果 call init sql = select * from salarysetting call frmresult.basictopic call frmresult.showbasic(sql) frmresult.show frmresult.zorder 0 me.zorder 0 选择“工资信息设置”“其他项目设置”菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。sql = sele
10、ct * from salaryother if ichangeflag = 1 then call add msgbox 已经添加记录, vbokonly + vbexclamation, 提示 call frmresult.othertopic call frmresult.showother(sql) frmresult.show unload me else if me.optionbonus.value = true then itype = 1 elseif me.optionallowance.value = true then itype = 2 elseif me.optio
11、nwelfare.value = true then itype = 3 elseif me.optionabatement.value = true then itype = 4 elseif me.optionothers.value = true then itype = 5 resumdate = recordtime sql = delete from salaryother where stuffid= & mid.text sql = sql & and yearmonth=# & recordtime & # and sql = sql &
12、; type= & itype call transactsql(sql, salary) call add call frmsumsalary.resumsalary(resumdate) sql = select * from salaryother call frmresult.othertopic call frmresult.showother(sql) frmresult.show unload me end if 选择“工资信息设置”“工资计算公式设置”菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。if me.textovertimecom = and isn
13、umeric(me.textovertimecom) = true then msgbox 请输入正常加班工资百分比 , vbokonly + vbexclamation, 提示 me.textovertimecom = me.textovertimecom.setfocus elseif me.textovertimespe = and isnumeric(me.textovertimespe) = false then msgbox 请输入特殊加班工资百分比 , vbokonly + vbexclamation, 提示 me.textovertimespe = me.textovertim
14、espe.setfocus elseif me.texterrand = and isnumeric(me.texterrand) = false then msgbox 请输入出差工资, vbokonly + vbexclamation, 提示 me.texterrand = me.texterrand.setfocus elseif me.textabsent = and isnumeric(me.textabsent) = false then msgbox 请输入旷工扣发工资, vbokonly + vbexclamation, 提示 me.textabsent = me.textab
15、sent.setfocus elseif me.textle = and isnumeric(me.textle) = false then msgbox 请输入迟到早退扣发工资 , vbokonly + vbexclamation, 提示 me.textle = me.textle.setfocus else call setvalue call init end if 选择“工资信息管理”“出勤统计”菜单,在统计出勤记录窗体中选择需要统计记录的月份。firstday = year(date) & - & mmonth.text & -1 days = datedif
16、f(d, year(date) & - & mmonth.text & -1, _ year(date) & - & mmonth.text + 1 & -1) lastday = year(date) & - & mmonth.text & - & days sql = select * from attendancestatistics where recordmonth between # sql = sql & firstday & # and # & lastday & #
17、 set rsrecord = getrs(sql, salary) if rsrecord.eof = false then msgbox 已经统计, vbokonly + vbexclamation, 提示 frmaresult.show frmaresult.zorder 0 rsrecord.close unload me exit sub end if sql = select * from attendanceinfo where adate between # sql = sql & firstday & # and # & lastday & #
18、 set rsrecord = getrs(sql, person) if rsrecord.eof = false then sql = select sid,sname from stuffinfo order by sid set rsperson = getrs(sql, person) 选择月份后单击“确定”按钮,如果系统已经统计过该月份的记录,那么会出现如下图所示的统计结果信息列表。 如果系统没有统计过,那么系统就会开始统计记录,然后显示如图所示的统计结果信息列表。if strusername admin then sql = select sid from stuffinfo w
19、here sname= & strusername & set rs = getrs(sql, salary) sd = rs(0) sql = select * from attendancestatistics where stuffid= & sd & me.adodc1.connectionstring =provider=microsoft.jet.oledb.4.0;datasource=& app.path & salary.mdb me.adodc1.recordsource = sql me.adodc1.refresh set
20、 me.datagrid1.datasource = me.adodc1.recordset me.datagrid1.refresh else sql = select * from attendancestatistics me.adodc1.connectionstring=provider=microsoft.jet.oledb.4.0;datasource=& app.path & salary.mdb me.adodc1.recordsource = sql me.adodc1.refresh set me.datagrid1.datasource = me.ado
21、dc1.recordset me.datagrid1.refresh end if 选择“工资信息管理”“计算实发工资”菜单,在这个窗体中选择需要统计的月份。选择统计月份后,单击“开始统计”按钮,系统如果已经统计了该月份的工资,系统会显示工资信息列表窗体。如果系统还没有统计工资,那么系统开始统计工资,然后在信息结果列表窗体中显示统计结果。if mmonth.text = 4 then firstday = year(date) & - & mmonth.text & -1 days = datediff(d, year(date) & - & mmont
22、h.text & -1, _ year(date) & - & mmonth.text + 1 & -1) lastday = year(date) & - & mmonth.text & - & days call sumsalary(firstday, lastday) sql = select * from salarystatistics frmresult.sstab1.caption = 员工工资统计列表 call frmresult.listtopic call frmresult.showdata(sql) frm
23、result.caption = 统计结果列表 frmresult.zorder 0 unload me else msgbox 这个月的工资未统计, vbokonly + vbexclamation, 提示 end if 选择“工资信息管理”“查询工资”菜单,系统显示如图的查询信息窗体,系统默认的是查询出数据库中所有的记录(当管理员进入的时候) ,当从“员工编号”下拉列表中选择一个员工编号后,单击“查询单人”按钮,就会查询出符合这个员工编号的记录;如果需要返回查询所有信息,单击 “查询所有”按钮,系统就会返回所有员工的信息。在“员工工资统计列表”中单击鼠标右键,会弹出下图的菜单,在“员工其他
24、项目列表”中单击鼠标右键也会出现下图的菜单。如果要选择“删除基本工资设置” ,出现如下的提示:具体的操作这里就不详细介绍。选择“工资信息管理”“导出工资表”菜单,会出现下图的“导出记录”窗体中选择需要导出工资的月份。选择月份和保存位置后,单击“导出”按钮,系统会开始导出数据。单击“确定”按钮打开导出的文件,单击“取消”按钮回到系统。导出的工资记录34 各项子模块编写要点在登录的这个窗体里, 我做的特点是:只要在数据库里有用户信息的, 都可以登录,然后显示相关自己的信息, 而管理员显示所有的信息。 当输入的用户名或密码不正确的时候,会出现如下的对话框:或者在主窗体的设计中, 我在系统的下拉菜单里
25、包括有添加用户、 修改密码和退出系统。在这个模块里普通用户只有修改自己的密码的权利。在添加用户的窗体里:添加 3个标签、3 个文本框和2 个命令按钮,然后设置它们相关的属性。在修改密码的窗体里:添加了3 个标签,用来显示信息; 3 个文本框用来输入用户名称和用户密码; 2 个按钮用来确定和取消操作,然后设置它们的属性。在工资信息设置的下拉菜单里包括有基本工资信息设置、 其他项目信息设置和计算公式设置。在这个模块里,普通用户没有任何权利进行相关的操作。在基本工资窗体里: 添加了2个选项按钮、2个下拉列表、 2个标签、1个文本框和 2 个按钮,然后设置它们的属性。在其他项目设置的窗体里:使用了一个
26、dtpicker控件获得添加记录的时间, 要使用这个控件需要添加部件类库, 选择“工程部件”命令,选择microsoft windows common controls-2 6.0(sp4)项,然后设置相关的属性。在工资信息管理的下拉菜单里包括有统计出勤信息、 计算实发工资、 查询工资和导出工资表。 在这个模块里,普通用户有统计出勤信息和查询工资的权利,但是都显示的是自己的信息。在出勤统计窗体里:添加一个下拉列表、一个标签和2个命令按钮, 然后设置相关的属性。 在出勤结果信息列表的窗体里:使用了adodc 控件和datagrid控件, 控件的visible 属性一定要设置为false。在计算实
27、发工资窗体里添加的控件和统计出勤记录窗体的控件相同。 在工资统计列表窗体里:使用了sstab 控件,在每一个标签上添加一个msflexgrid控件, 然后设置它们的属性。 在导出工资表的窗体中使用了commonddialog 控件,要使用这个控件需要在“控件”窗体中,选择microsoft common dialog control6.0(sp3) 项,同时因为数据表格是导出到excel,所以需要添加引用。选择 “工程引用” 菜单, 在 “引用” 窗体中选择microsoft excel 9.0 object library 项,这样才能够成功导入到excel。在这个窗体里,我做的特点是:权利
28、分工明确。 当管理员进入的时候他有所有的权利,单击哪个模块就会弹出相对应的窗体。而普通用户则不能,我把它进行了权限设置,会弹出权限的对话框。在添加用户的窗体里, 如果输入的用户密码和确认密码不一致, 将出现一个警告对话框:然后输入与用户密码相同的密码,我这里的密码都是以*的形式表达,是不可见的。添加的用户将保存在数据库的userinfo 里。单击“取消”按钮就卸载此窗体,添加用户的过程到此完成。在修改密码的窗体里, 我要注重讲解一下: 当输入的旧密码与登录时的密码不一致将出现提示对话框(如图一) ,当输入的“确认新密码”和“输入新密码”的密码不一致时也将出现警告对话框(如图二) 。我在做这个窗
29、体时遇到了一个问题:就是输入的新密码确认后, 当你再一次的进入修改密码窗体输入旧密码时,如果输入的是刚刚修改过的密码,就会出现错误。经过一段时间的思考, 我发现原因是修改过的密码没有覆盖登录时的密码, 所以会出现问题。我觉得这是一个很大的问题, 在别的书上可能没注意到这一点,所以我要注重的讲一下,这是我做这个窗体时的最大体会。图一图二在建立基本工资窗体时,这个窗体会在两个地方使用到,一个就是添加,另一个就是修改,在窗体载入时系统应自动判断状态。 选择员工编号或选择职务,然后填写工资金额,单击“确定”按钮,系统就会按照选择的方式,设置员工的基本工资。在做基本工资这个窗体时,我的想法是:当你在修改
30、基本工资的信息,首先都要从数据库中调出相关的信息, 然后把它删除掉,再从数据库中的员工信息表中调出所要的信息, 然后再一次的添加所要设置的信息。 当你没输入员工编号的时候,会出现下图的对话框;当没输入员工的职务时会出现错误的信息。在建立其他项目设置的窗体时, 也在两个地方使用,即添加和修改, 在载入时也需要判断状态。 选择员工编号, 再选择需要添加的项目和进额, 单击 “确定” 按钮, 即可添加其他项目。 在其他项目设置这个窗体里, 我用了一个frame控件和几个 optionbutton 控件,目的在于:在添加其他项目时,只能有一个设置是有效的, 而且还可以添加其他的项目, 还有备注等等,
31、这些都便于记录。这里还有一个 dtpicker 控件是用来记录添加其他项目的时间,我觉得这个控件非常好。还有就是每次添加成功后,系统需要初始化,更新一下。在设置完这个窗体后将会弹出查询工资的窗体。在建立工资计算公式的窗体时,输入内容后,单击“确定”按钮,设置计算公式中使用的数字。在计算公式设置的窗体里,单击“恢复默认值”按钮系统将会恢复公式中的默认值。 这里的恢复默认值功能采用的方法比较简单, 就是在一个函数中设置了固定的默认值。 如果需要使用可变的默认值, 可以在数据库中设置一项默认值字段, 这样可以方便的更改默认值。 当输入的格式与设定的格式不一致的时候,会弹出相关的对话框。建立出勤统计窗
32、体, 选择月份后, 单击“确定”按钮, 开始统计出勤记录。在统计出勤信息的窗体里, 这要和出勤记录的数据库相连, 如果输入的月份没有统计将如下的对话框:如果输入的月份有统计记录则弹出如下的对话框:然后弹出出勤结果的窗体,显示数据库中统计信息相关的记录。管理员能看到的界面这是用户登录所显示的用户信息建立计算实发工资的窗体, 这个窗体的建立和统计出勤记录的窗体比较相似,选择月份后,单击“开始统计”按钮,即可统计员工工资。在计算实发工资的窗体里,如果输入的月份的工资没统计会弹出如下的对话框:否则会出现如下的对话框:单击“确定”后,就会出现工资信息列表,这时你将看见所有关于你想要的信息。建立工资查询的
33、窗体,在选择员工编号后,单击“查询单人”按钮,返回选择员工的相关信息。单击“查询全部”按钮,系统返回全部员工的信息。在建立工资查询 (即工资统计结果列表) 的窗体时, 我觉得这是一个最难的窗体。不仅是因为它的设置,还有就是它的代码和数据库相连的操作。在这个窗体中使用了 sstab 控件,在每一个标签上添加一个msflexgrid控件。当你是管理员登录的时候,他的权限是所有,当你是用户登录的时候,窗体只显示登录用户本人的相关信息。他没有任何权限, 只能看到自己的信息,这是我做这个窗体的特色。窗体的部分代码为:if strusername = admin then 管理员的权限 sql = sel
34、ect stuffid from salarysetting set rs = getrs(sql, salary) if rs.eof = false then while not rs.eof mid.additem rs(0) rs.movenext wend rs.close end if mid.listindex = 0 select case me.sstab1.tab case 0 sql = select * from salarysetting call basictopic call showbasic(sql) case 1 sql = select * from sa
35、laryother call othertopic call showother(sql) case 2 sql = select * from salarystatistics order by id desc call listtopic call showdata(sql) end select else 用户的权限 sql = select sid from stuffinfo where sname= & strusername & set rs = getrs(sql, salary) while not rs.eof mid.additem rs(0) rs.mo
36、venext wend rs.movefirst sd = rs(0) rs.close mid.listindex = 0 select case me.sstab1.tab case 0 sql = select * from salarysetting where stuffid= & sd & call basictopic call showbasic(sql) case 1 sql = select * from salaryother where stuffid= & sd & call othertopic call showother(sql)
37、 case 2 sql = select * from salarystatistics where stuffid= & sd & call listtopic call showdata(sql) end select end if end sub 这是用户登录所显示的用户信息建立导出工资表窗体的时候,这是工资管理的最重要的一步。 这个窗体中使用了 commonddialog控件,通过设置 flags 属性,使 commonddialog控件的对话框中显示一个帮助按钮, 但是,程序员必须在这个位置提供相关的帮助主题。对于所有的公共对话框, 当 cancelerror 属性为true ,而且用户单击了对话框的“取消”按钮时将生成一个错误。可以在显示对话框的同时捕获此错误以检验是否按下了“取消”按钮。这个控件可以显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同大写金额标准写法
- DB6103T 83-2025巨菌草栽培技术规范
- 产业园区综合服务与物业管理合同
- 2025年环保技术项目研发合同
- 上海居民住房租赁合同细则
- 专利许可使用权转让合同
- 2025年借款合同范本:生活资金周转专用
- 产权清楚的商业车位买卖合同
- 三方人才派遣合同模板
- 互联网众筹合作合同范本(修订)
- 如愿三声部合唱简谱
- 高三数学开学第一课
- 水生野生动物保护与管理
- 115个低风险组病种目录
- 系统解剖学考试重点笔记
- 暖通空调基础知识及识图课件
- 防渗墙工程施工用表及填写要求讲义
- 交通信号控制系统检验批质量验收记录表
- 校园信息化设备管理检查表
- 新版抗拔桩裂缝及强度验算计算表格(自动版)
- API SPEC 5DP-2020钻杆规范
评论
0/150
提交评论