企业工资管理系统文档(共14页).doc
精选优质文档-倾情为你奉上 企业工资管理系统的开发 一:问题定义阶段 功能简要描述: 1. 本系统要对企业工资管理的日常的工资发放进行数据输入,并对各项工 资条款进行计算。汇总各项数据生成员工个人台帐,打印工资报表。采用用户名,密码安全机制,分用户权限登陆访问,保证系统资源不受人为因素的干扰。 工资管理系统 工资基本设定 系统管理员 上级主管部门 提交员工基本信息 工资汇总 生成报表2.用例图: 二:可行性研究 在技术、经济、社会、管理和法律上都是可行的。 三:需求分析 1.数据流图 职工号 员工基本信息 考勤 系统管理 录入分类 员工基本信息管理 员 工资固定信息 员工信息 工资计算 工资信息 员工基本情况查询 员工 工资 工 个人 基本 资 工资 上级主 设定 查询 汇 管部门 总 打印报表 1 数据字典2. 2.1外部实体定义: 编号 名称 内部名 备注 W01 系统管理XTGLY 员 W02 上级主管SJZGBM 部门 2.2数据流定义: 编号 数据流名 内部名 组成 备注 L01 工资固定GZGDXX E01+E02+E 信息 03+E04 L02 员工基本YGJBXX E05+E06+E 信息 07+E08+E0 9 2.3数据元素定义: 编号 数据元素 内部名 类型 备注 E01 部门 BM 字符型 E02 部门工资 BMGZ 数值型 E03 工龄 GZ 数值型 E04 工龄工资 GZGL 数值型 E05 职工号 ZGH 数值型 E06 姓名 XM 字符型 E07 性别 XB 字符型 E08 岗位 GW 字符型 E09 工资等级 GZDJ 字符型 2.4文件定义 编号 文件名 内部名 组成 备注 E01+E02+E03+E0F01 工资固定清单 GZGDQD 4 E05+E06+E07+E0F02 员工信息清单 YGXXQD 8+E09 E01+E02+E03+E0F03 报表 BB 4+E05+E06+E07+ E08+E09 2.5加工定义: 2 编号 文件名 输入 输出 加工逻辑 P01 录入分类 L01 L02 P02 工资设定 L01 F03 3.状态转换图 员工信 息界面 工资基 登陆界账号密系统主 本设定 面码正确界面 界面 结束界 请重新工资汇 面 输入总界面 个人工 资查询 退出界 面四:总体设计 系统功能模块图 本系统在设计时采用结构化程序的设计方法,系统的总体结构采用菜单来调用表单,利用表单来对信息进行管理、数据加工、信息查询、系统维护等工作,系统的功能模块本结构图如下所示。 企业工资管理系统 工工个退 员 资资人出 工 基汇工 信 本总资 息 设查 定询 员员基岗工打打退 工工础位龄印印出 信信工工工预 息息资资资览五:详细设计及编码 浏查 览询 3 本系统大致分为如下四大功能模块。 1员工信息 分为员工信息浏览和员工信息查询: 在员工信息浏览子模块中,可以对员工的编号、姓名、性别、岗位、工龄、工资等级等信息进行浏览,并可以对员工信息进行增加记录,修改记录,删除记录等操作; 在员工信息查询模块中,可按员工号或员工姓名进行查询。 2工资基本设定 包括对基础工资、岗位工资、工龄工资的设定。 基础工资的设定包括工资等级、工资额的设定,可以对工资等级及相应的工资额进行修改、添加、删除。 岗位工资的设定包括岗位名称、岗位工资额的设定,可以对岗位名称及相应的岗位工资额进行修改、添加、删除。 工龄工资的设定包括工龄、工资额的设定,可以对各个工龄段及相应的工龄工资额进行修改、添加、删除。 3工资汇总 在工资管理中,要分别输入每一个员工的各项工资条款,这样才能运用计算机技术来管理好员工的工资发放情况,其中包括:员工基本情况,员工基本工资情况,员工岗位工资情况,员工工龄工资,工资综合。 4个人工资查询 此查询分为按职工姓名查询、按职工号查询。 5退出 此功能块为退出系统。 编码:系统主程序MAIN.PRG clear screen clear events set defa to d:qygz open database databasesalary do salarymain.mpr do form salaryformksjm read events 2、Ksjm.frm (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-3。 Form1.load事件代码: public i i=0 4 Timer.timer事件代码: if Thisform.Label1.Left<0-Thisform.Label1.Width Thisform.Label1.Left=Thisform.Width+3 Endif Thisform.Label1.Left=Thisform.Label1.Left-10 I=I+10 If I>=255*2-6 I=0 Endif (2)“员工基本信息“按钮的CLICK事件为: do form salaryformpersonnel personnel.frm的有关设计见 第3目 图6-3 (3)“工资基本设定“按钮的CLICK事件为: do form salaryformdataformat (4)“工资汇总“按钮的CLICK事件为: do form salaryformresult (5)“个人工资查询“按钮的CLICK事件为: do form salaryformgrcx (6)“退出“按钮的CLICK事件为: 5 thisform.release clear events 1personnel.frm的有关设计: (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-4。 Form1.init事件代码: set multilocks on cursorsetprop("buffering",3) (2) mand1.click事件代码: thisform.pageframe1.page1.fy1.enabled=.F. mand2.enabled=.F. mand3.enabled=.F. mand4.enabled=.T. if mand1.caption='增加新记录' thisform.pageframe1.page1.txtpid.enabled=.T. thisform.pageframe1.page1.txtpname.enabled=.T. thisform.pageframe1.page1.txtpsex.enabled=.T. thisform.pageframe1.page1.txtpjob.enabled=.T. thisform.pageframe1.page1.txtpindate.enabled=.T. thisform.pageframe1.page1.txtprank.enabled=.T. append blank mand1.caption='增加确认' 6 thisform.pageframe1.page1.refresh thisform.pageframe1.page1.txtpid.setfocus else getid=alltrim(thisform.pageframe1.page1.txtpid.value) getname=alltrim(thisform.pageframe1.page1.txtpname.value) getsex=alltrim(thisform.pageframe1.page1.txtpsex.value) getjob=alltrim(thisform.pageframe1.page1.txtpjob.value) getindate=alltrim(thisform.pageframe1.page1.txtpindate.value) getrank=alltrim(thisform.pageframe1.page1.txtprank.value) if empty(getid) or empty(getname) or empty(getsex) or empty(getjob) or empty(getindate) or empty(getrank) messagebox("资料不足",48,"错误") else mand1.caption='增加新记录' tableupdate(.t.) thisform.pageframe1.page1.txtpid.enabled=.F. thisform.pageframe1.page1.txtpname.enabled=.F. thisform.pageframe1.page1.txtpsex.enabled=.F. thisform.pageframe1.page1.txtpjob.enabled=.F. thisform.pageframe1.page1.txtpindate.enabled=.F. thisform.pageframe1.page1.txtprank.enabled=.F. thisform.pageframe1.page1.fy1.enabled=.T. mand2.enabled=.T. mand3.enabled=.T. mand4.enabled=.F. endif endif 工龄工资设定窗体代码4: 7 1.”修改”按钮有关代码: thisform.grdgongling.column1.text1.enabled=.T. thisform.grdgongling.column2.text1.enabled=.T. thisform.grdgongling.column1.text1.setfocus 2.”修改确认”按钮有关代码: thisform.grdgongling.column1.text1.enabled=.F. thisform.grdgongling.column2.text1.enabled=.F. 3.”添加” 按钮有关代码: append blank go bottom thisform.grdgongling.column1.text1.enabled=.T. thisform.grdgongling.column2.text1.enabled=.T. thisform.grdgongling.column1.text1.setfocus 4.”删除” 按钮有关代码: thisform.grdgongling.recordsource='' use gongling exclusive delete from gongling where gname=getgname pack thisform.grdgongling.recordsource='gongling' thisform.grdgongling.refresh 5.”退出” 按钮有关代码 thisform.release do form salaryformdataformat 个人查询窗体有关代码5: (1).”确定”按钮有关代码: inname=alltrim(thisform.text1.value) inpswd=alltrim(thisform.text2.value) set order to tms_user seek inname 8 if !found() cMessageTitle='设备管理系统' cMessageText='用户名错误,请重新输入' nDialogType=4+32 nAnswer=messagebox(cMessageText,nDialogType,cMessageTitle) do case case nAnswer=6 thisform.text1.value='' thisform.text1.setfocus case nAnswer=7 messagebox("请勿偷窥他人资料",48,"警告") thisform.release endcase else if tms_pswd!=inpswd cMessageTitle='设备管理系统' cMessageText='密码错误,请重新输入' nDialogType=4+32 nanswer=messagebox(cMessageText,nDialogType,cMessageTitle) do case case nAnswer=6 if flag<2 thisform.text2.value='' thisform.text2.setfocus flag=flag+1 else messagebox("请勿偷窥他人资料",48,"警告") thisform.release endif case nAnswer=7 messagebox("请勿偷窥他人资料",48,"警告") thisform.release endcase else thisform.release par1=inname do form salaryformgresult endif endif (2)表单载入事件代码: public inname public flag flag=0 9 岗位工资有关源码5: (1).”修改”按钮有关代码: thisform.grddept.column1.text1.enabled=.T. thisform.grddept.column2.text1.enabled=.T. thisform.grddept.column1.text1.setfocus (2).”修改确认”按钮有关代码: thisform.grddept.column1.text1.enabled=.F. thisform.grddept.column2.text1.enabled=.F. (3).”添加” 按钮有关代码: append blank go bottom thisform.grddept.column1.text1.enabled=.T. thisform.grddept.column2.text1.enabled=.T. thisform.grddept.column1.text1.setfocus (4).”删除” 按钮有关代码: thisform.grddept.recordsource='' use dept exclusive delete from dept where jobname=getjob pack thisform.grddept.recordsource='dept' thisform.grddept.refresh (5).”退出” 按钮有关代码 thisform.release do form salaryformdataformat 七:系统测试 1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能, 10 我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。 2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。 3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。 11 专心-专注-专业