1、工资管理系统的设计与实现摘 要企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。企业工资管理系统是典型的信息管理系统(MIS) ,本系统采用 ASP 开发,后台数据库采用 Access 数据库。工资管理系统能提高了工作效率,节省了人力和物力
2、,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志。关键词:工资管理;信息管理; ASP;AccessThe Design and Implementation of Salary Management System AbstractSalary management of enterprise plays important role in enterprise management. It becomes more and more complex for increasing personnel. Salary management is involved wit
3、h both the labor resource management and financial management. It is influenced with affair management, attendance and medical insurance. Each employees salary comprises base pay, allowance, medical insurance, insurance premium and real pay. Capital as the major element for the existence of enterpri
4、se, its current can effect the whole movement of an enterprise. Salary management system is a classic Management Information System (MIS). This system is implemented with ASP and Access database. This system greatly improves the work efficiency, saves labor and material resources, and fits the needs
5、 of the requirement for financial management. Meanwhile, it becomes the symbol of modern enterprise management.Key words: Salary Management; Information Management; ASP; Access 目 录论文总页数:23 页1 引言 .11.1 课题背景 .11.2 国内外研究现状 .11.3 本课题研究的意义 .12 关键技术介绍 .12.1 ASP 技术 .12.2 ACCESS .22.3 IIS 简介 .23 系统设计分析 .23.
6、1 应用需求分析 .23.2 系统功能模块划分 .23.3 系统数据库设计 .34 系统实现 .64.1 登录与注册模块的实现 .64.2“用户查询”模块的实现 .94.3“管理员模块”的实现 .124.3.1 查询用户信息 .134.3.2 修改管理员信息 .154.3.3 添加用户信息 .164.3.4 删除用户信息 .184.3.5 修改员工信息 .19结 论 .20参考文献 .21致 谢 .22声 明 .23第 1 页 共 23 页1 引言1.1 课题背景随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现工资的数据库管理势在必行。人员方面:可随时通过工资管理员根据本
7、人需要查阅工资情况,每月可以领取相应的工资报表,以进行检查和核实。财务人员方面:实现工资数据输入、查询、修改和打印的计算机化管理,减轻工作量,使工资管理更加的规范化。单位方面:实现财务管理系统的统一,开发完本系统后,可使财务管理更具有统一性,提高管理效率,增强单位凝聚力。1.2 国内外研究现状现在国内外对此类系统的开发与研究也是很有实用性的,基本上能满足各企业的自身特点,来进行工资管理,同时,该类系统又都在不断地深入与发展,来适用更多的企业。但工资管理系统的安全性还有待于今后的进一步开发与实践。1.3 本课题研究的意义计算机的应用和普及,使我们可以应用计算机来进行管理,这样,面对大量的管理信息
8、,我们不必再需要人为地管理,我们开发出工资管理软件就可以很轻松的进行管理。工资管理系统是一个协助各单位科学、全面、高效地进行工资管理的系统,在任何一个单位,工资管理是一件非常重要的财务工作,开发工资管理系统是一个通用的管理系统,它是办公自动化系统的基础,是应用计算机进行管理的一种方法。2 关键技术介绍系统采用前台使用ASP技术,后台使用ACCESS 数据库平台,下面分别介绍一下最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。2.1 ASP 技术ASP使用了微软的ActiveX技术。ActiveX(COM)技术是现在
9、Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。ASP 运行在服务器端。这样就不必担心浏览器是否支持 ASP 所使用的编程语言。ASP 的编程语言可以是 VBSCRIPT 和 JSCRIPT。VBSCRIPT 是 VB 的一个简集,会 VB 的人可以很方便的快速上手。然而 Netscape 浏览器不支持客户端的VBSCRIPT,所以时,看到的是 ASP 生成的 HTML 代码,而不是 A
10、SP 程序代码。这第 2 页 共 23 页样就可以防止别人抄袭程序。2.2 ACCESSAccess 是微软公司推出的基于 Windows 的桌面关系数据库管理系统(RDBMS) ,是 Office 系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块 7 种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。2.3 IIS 简介IIS 是 Internet 信息服务(Internet Information Server)的缩
11、写,它是一种Web 服务,主要包括 WWW 服务器、FTP 服务器等,使得在 Intranet(局域网)或 Internet(因特网)上发布信息成了一件很容易的事。WWW 服务提供维护网站和网页,并回复基于浏览器的请求。有了 WWW 服务和它内置的功能,通过Internet 信息服务器可以创建各种各样的 Internet 应用程序,加上其内置的对数据库连接的支持,IIS 的功能就更强大了。SQL 数据库信息或其他任何符合ODBC 的数据库信息都能在 Internet/Intranet 上灵活应用。3 系统设计分析3.1 应用需求分析本系统模块设计目标是采用后台工资信息录入,前台动态页面显示的形
12、式,适应网站大规模浏览量要求,形成一个系统化、自动化、高效率的工资管理系统。本系统充分考虑了系统的可扩展性和商业性,利用 ASP 基本知识以及Acess 的基本操作,使它具有良好的稳定性并宜于维护。本系统拥有两个操作用户角色,即员工和管理员。员工通过输入自己的身份证号和密码登录系统,然后再次输入自己的身份证号以及需要查询的月份便可对自己每个月的工资具体情况有个精确的了解。同时管理员也能够及时的对员工的工资进行修改、添加、删除等,这样就极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资查询的需要。3.2 系统功能模块划分开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,
13、实现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终划分为以下四个模块:(1) 员工登录模块:用于员工登录,通过员工输入身份证号以及密码判第 3 页 共 23 页断员工身份的有效性,有效的员工根据其角色定向分别选择进入管理界面还是查询界面,无效员工定向到登录失败页面。(2) 员工注册模块:用于记录员工的资料(姓名、密码、性别、年龄等) 。当员工注册后才能登录系统。而注册时必须使用自己的身份证号来注册,体现起唯一性。(3) 员工查询模块:用于员工通过输入身份证号和月份查询自己每月的具体工资情况(包括岗位工资、技能
14、工资、加班费等) 。(4) 管理员模块:当管理员成功登录后,可通过模糊查询或精确查询对每个员工的工资情况有具体的了解,同时可以删除、修改、添加员工的工资情况,最后管理员能够随时修改自己的密码和帐号,因为管理员是唯一的。3.3 系统数据库设计数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容分析,系统 E-R 图如下:第 4 页 共 23 页查询工作日期身份证号 密码员工 工资性别姓
15、名属于管理员密码帐号岗位工资技能工资 年功工资降温费劳保折算其他津贴其他补贴存假结算加班工资NN11图 2-1 E-R 图数据库表结构设计如下:(1) 基本工资信息表:管理员在后台编辑时填写的工资信息都将存储在数据库 CX 表中。表中 ID 用来唯一标识添加工资信息,每添加一个员工的工资信息,其值自动加一;照表中顺序从上到下依次是:月份、备注、身份证号码、姓名、岗位工资、技能工资、年功工资、降温费、劳保折算、其他津贴、其他补贴、存假结算、加班工资、公积金、储蓄金、养老金、医疗金、应发工资总额和实发工资总额。具体的表如下:表 2-1 员工信息 CX 表字段名称 数据类型 说明ID 自动编号 员工
16、编号ym 数字 月份others 文本 备注ic 文本 身份证号码name 文本 姓名a 数字 岗位工资第 5 页 共 23 页b 数字 技能工资c 数字 年功工资d 数字 降温费e 数字 劳保折算f 数字 其他津贴g 数字 其他补贴h 数字 存假结算i 数字 加班工资j 数字 应发工资总额k 数字 公积金l 数字 储蓄金m 数字 养老金n 数字 医疗金o 数字 实发工资总额(2) 用户登陆信息表:员工在前台注册时填写的信息都将存储在数据库MAIN 表中。表中 ID 用来唯一标识注册用户,每注册一个用户,其值自动加一;照表中顺序从上到下依次是:身份证、密码、密码提示问题、密码提示答案、性别、年
17、龄。具体的表如下:表 2-2 用户资料 MAIN 表字段名称 数据类型 说明id 文本 用户编号user 文本 身份证password 文本 密码question 文本 密码提示问题answer 文本 密码提示答案sex 文本 性别age 数字 年龄(3) 管理员信息:管理员的信息都将存储在数据库 REG 表中。表中 ID用来唯一标识注册管理员,每注册一个管理员,其值自动加一;照表中顺序从上到下依次是:管理员名和密码。具体的表如下:第 6 页 共 23 页表 2-3 管理员信息字段名称 数据类型 说明Id 自动编号Name 文本 管理员名Password 文本 密码content 备注 备注4
18、 系统实现4.1 登录与注册模块的实现登录验证N登陆成功Y图 3-1 登录模块流程图登录模块是用来判断用户是否是本企业的员工,当成功登录后进入主界面,可以选择修改自己的资料或者进入自主查询。而注册模块主要是对用户的资料进行记录。界面的实现由 Cc.asp 页面体现,主要是由一些文本框以及提交、重置按纽组成。员工在该页面填写的身份证号和密码来登录系统。利用 DreamwearMX自动生成的代码来首先判断身份证号、密码是否为空,如果任意一项为空,点击提交便会弹出警告窗口。如果不为空就先检查用户输入的身份证号和密码是否与数据库中的 MAIN 表的对应项匹配,如果匹配就转到 Ccsuccess.asp
19、 页面,反之转到 Ccfailure.asp 页面。登录的代码如下:function MM_findObj(n, d) /v4.01var p,i,x; if(!d) d=document; if(p=n.indexOf(“?“)0 n=n.substring(0,p);if(!(x=dn) for (i=0;!xi+) x=d.formsin;for(i=0;!xi+) x=MM_findObj(n,d.layersi.document);if(!x return x;function MM_validateForm() /v4.0var i,p,q,nm,test,num,min,max,
20、errors=,args=MM_validateForm.arguments;for (i=0; i(args.length-2); i+=3) test=argsi+2; val=MM_findObj(argsi);if (val) nm=val.name; if (val=val.value)!=“) if (test.indexOf(isEmail)!=-1) p=val.indexOf();if (p1 | p=(val.length-1) errors+=- +nm+ must contain an e-mail address.n; else if (test!=R) num =
21、parseFloat(val);if (isNaN(val) errors+=- +nm+ must contain a number.n;if (test.indexOf(inRange) != -1) p=test.indexOf(:);min=test.substring(8,p); max=test.substring(p+1);if (nummin | maxnum) errors+=- +nm+ must contain a number between +min+ and +max+.n; else if (test.charAt(0) = R) errors += - +nm+ is required.n; if (errors) alert(The following error(s) occurred:n+errors);document.MM_returnValue = (errors = );