
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 目录 第1章 绪论 .............................................................................................................................................1 1.1 引言 .............................................................................................................................................1 1.2 问题的定义 .................................................................................................................................1 1.3 开发工具的简介 .........................................................................................................................1 1.3.1 Powerbuilder简介 ..............................................................................................................1 1.3.2 Powerbuilder目前的应用...................................................................................................2 1.3.3 SQL Server简介 .................................................................................................................2 1.3.4 SQL Server的广泛性 .........................................................................................................2 1.3.5 ODBC简介 .........................................................................................................................2 第2章 需求分析 .....................................................................................................................................3 第3章 概要设计 .....................................................................................................................................4 3.1 模块划分 .....................................................................................................................................4 3.2 数据库设计 .................................................................................................................................4 3.3 数据库连接 .................................................................................................................................6 3.3.1 事务对象 ............................................................................................................................6 3.3.2 数据库连接的实现 ............................................................................................................6 第4章 系统详细设计 .............................................................................................................................7 4.1 员工基本信息 .............................................................................................................................7 4.2 工资信息查询 .............................................................................................................................8 4.2.1 添加工资级别 ....................................................................................................................8 4.2.2 工资结算 ............................................................................................................................9 4.2.3 员工工资情况维护 .......................................................................................................... 11 4.3 员工历史工资查询 ...................................................................................................................12 第5章 结论 ...........................................................................................................................................14 谢辞 ...............................................................................................................................................................15 参考文献 .......................................................................................................................................................16 - 1 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 第1章 绪论 1.1 引言 随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。员工工资管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求,推动企业劳动人事管理走向科学化,规范化的必要条件。 本文主要介绍了员工工资管理系统的整个设计开发过程.其主要系统功能包括以下几个模块:系统模块管理(包括重新登入、用户管理) 、员工管理(包括新员工登记、员工信息查询、员工信息维护)、工资组成项目(包括工资名称的添加、工资信息维护)、各级别工资情况维护(包括工资的添加、工资信息维护) 、统计查询管理(包括员工工资信息统计查询、员工工资组成的统计) 、工资结算、工资发放、员工历史工资查询、退出。体现了清晰的员工工资管理流程,完成了基本的员工工资管理要求,是一个典型的信息管理系统。该系统大大地简化了操作流程,提高了企业的工作效率。 1.2 问题的定义 博宇员工工资管理系统是一个通用性较好的人事管理系统,具有运行速度快、安全性高、稳定性好的优点,可以作为企业员工工资管理部门进行工资网络管理的一种工具。本系统具备完善的员工工资档案管理功能,员工工资信息报表生成、查询功能,奖罚信息通知单,考评信息表等功能。可方便的为企业完成员工工资信息管理、员工考评管理等重要工作。 通过使用博宇员工工资管理系统,使企业的员工工资管理系统化、规范化、自动化、从而达到提高企业管理效率的目的。系统开发的总体任务是使办公人员可以轻松快捷地完成员工工资管理的任务。 博宇员工工资管理系统主要是对用户、员工、部门、岗位信息的查询,包括对用户信息的添加、修改和查询,系统还可查询员工基本信息,以及对工资项目组成、各级别工资情况的修改和维护。 1.3 开发工具的简介 1.3.1 Powerbuilder简介 Powerbuilder是一种高效的的客户机/服务器的开发模式以及分布式信息系统的前端开发工具,其有独特的体系结构,强大的数据库操纵能力、专有的数据窗口技术。PowerBuilder提供了多种接口,支持信息系统同时访问多种数据库,不仅包括Oracle、Informix、Sybase、SQL Server等提供专用接口的大型数据库,同时也包括Access、ForPro等以ODBC为标准接口的小型数据库。另外,其自带的Adaptive Server Anywhere(简称ASA)是一个功能强大的数据库管理系统,对小型信息系统而言,ASA不失为一个理想的选择。PowerBuilder提供了数十个窗口、菜单等可视化对象和数据储存、数据管道等不可视对象,并对这些对象赋予了数以千计的属性、函数、事件,加上它的图形化界面、事件驱动和面向对象的脚本语言编程方法,使得PowerBuilder成为快速应用开发的最优秀的第4代语言之一。 - 1 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 1.3.2 Powerbuilder目前的应用 作为信息系统的前端开发工具,目前比较知名的有微软的Visual Basic语言、Sybase公司的PowerBuilder语言和Borland公司的Delphi语言,这3家公司目前已形成鼎足之势,而PowerBuilder以其开放的体系结构、简洁高效的集成开发环境、强大的数据窗口技术、几乎无所不能的数据库访问能力和友好的用户界面,越来越受到编程人员的青睐,连续多年被评为美国计算机界的年度风云产品,在信息系统开发工具领域占据了高达44%的市场份额。据Sybase公司统计,目前全球有60万程序员和系统分析人员在使用PowerBuilder进行各种类型的应用程序开发。 1.3.3 SQL Server简介 SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。 SQL Server是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与 Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在 UNIX 操作系统上的应用。 SQL Server2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 1.3.4 SQL Server的广泛性 SQL语言是1974年由Bovce和Chamberlin提出的,由于它功能丰富,语言简洁,使用方法灵活,备受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。经各公司的不断修改、扩充和完善,SQL语言最终发展成为关系数据库的标准语言。SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、SELECT、ALTER、INSERT、UPDATE、DELETE、GRANT、REVOKE。 SQL成为国际标准,对数据库以外的领域也产生了很大影响,有不少软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL已成为关系数据库领域中一个主流语言。 1.3.5 ODBC简介 ODBC(Open Data Base Connectivity)接口是Microsoft公司提出的开放式数据库互连标准接口,它完成了数据库连接底层的封装,以结构化查询语言SQL来存取连接的数据源。由于ODBC使用统一方法处理不同的数据源,因此可以通过ODBC使一个应用程序同时访问多个不同的数据库管理系统,开发者无需理会DBMS的具体特征。绝大部分数据库都支持ODBC接口,例如Oracle、Sybase、Informix、SQL Server、DB/2、dBase、Access等。 - 2 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 第2章 需求分析 博宇员工工资管理系统主要处理企业内部人力资源,包括员工信息维护,工资组成项目维护,各级别工资情况维护,员工工资情况维护,加班情况维护,考情维护,工资结算和工资发放,员工历史工资查询,以及每月工资发放统计。用户登入主要包括以下功能模块: 登入界面 (1)如果是数据库中已有的用户,直接进入登入页面; (2)填写用户名和密码; (3)单击“登录”按钮; (4)用户名和密码正确,登入成功,进入人事管理系统主窗口。 员工工资管理主要包括以下几个功能模块: 基本信息维护 此模块是关于员工基本信息的查询及修改,在员工基本信息维护中可添加新员工信息,也可对原有员工基本信息的查询及修改,以及用户的管理 工资信息维护 此模块的功能就是对工资组成项目的添加、删除、保存,还可对各级别工资的添加,修改,保存。也对员工工资情况维护,进行员工工资的查询和修改,对加班情况的添加和保存,对考勤的添加和保存,工资结算的维护,最后对工资发放的查询。 统计查询 此模块的功能就是根据一定的条件对员工历史工资查询,对每月工资的发放统计,以及对工资发放情况的统计,方便用户看懂。 - 3 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 第3章 概要设计 3.1 模块划分 员工工资管理系统 基本信息维护 工资管理 统计查询 员工护各员每工加工资工月资级 用班考工工基组历工发别户 情本成勤资资史资放工管况信项维结发工发情 资理维息目护算放资放况情 护 维维查统统况 护护询计计 维 图3-1博宇员工工工资管理系统框架 1、员工信息维护:能添加、删除、修改员工表信息 2、工资组成项目维护:能添加、修改、删除工资组成项目表信息 3、各级别工资情况维护:能添加、删除、修改各级别工资情况表数据 4、员工工资情况维护:能添加、删除、修改员工工资情况表数据 5、加班情况维护:能添加、删除、修改加班情况表数据 6、考勤维护:能添加、删除、修改考勤情况表数据 7、工资结算:每月结算一次,根据员工工资情况表、加班情况表、考勤表等数据计算出本月每位员工的各项工资组成的具体情况,存入员工每月工资结算表中 8、工资发放:登记已经取到工资的信息(在每月发放工资表中添加记录) 9、员工历史工资查询:根据员工号和年月信息查询出该员工的历史工资信息 10、每月工资发放统计:根据年月信息统计出该月的所有员工的各项工资的总和情况 11、工资发放情况统计:统计历年来每月的工资发放情况以及总和 3.2 数据库设计 博宇员工工资管理系统采用的主要数据库是SQL Server 2000,数据库的名字叫做“员工工资管理”,为了方便用户使用此系统,每个功能模块都采用几张表查询,同时也方面管理员修改一些信息,数据库建了9张表。 表结构说明如下: - 4 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 表3-1加班情况表 字段名 数据类型 长度 说明 加班情况编号 主键 Varchar 10 员工号 无 Varchar 4 发生时间 无 Datetime 8 加班工资 无 8 10 表3-2员工基本信息表 字段名 数据类型 长度 说明 员工号 主键 Varchar 4 姓名 无 Varchar 10 性别 无 Varchar 2 出生年月 无 Datetime 8 学历 无 Varchar 6 职位 无 Varchar 20 参加工作时间 无 Datetime 8 表3-3考勤表 字段名 数据类型 长度 说明 员工号 无 Varchar 4 考勤编号 主键 Varchar 10 日期 无 Datetime 8 事由 无 Varchar 20 罚款金额 无 Money 8 表3-4员工工资情况表 字段名 数据类型 长度 说明 员工号 主键 Varchar 4 级别编号 主键 Varchar 2 表3-5员工每月工资结算表 字段名 数据类型 长度 说明 年月 主键 Varchar 6 员工号 主键 Varchar 4 工资项目 主键 Varchar 20 金额 无 Money 8 表3-6工资级别表 字段名 数据类型 长度 说明 级别编号 主键 Varchar 2 级别名称 无 Varchar 20 工资项目编号 主键 Varchar 20 - 5 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 金额 无 Money 8 表3-7工资组成项目表 字段名 数据类型 长度 说明 工资项目编号 主键 Varchar 20 项目名称 无 Varchar 20 表3-8每月发放工资表 字段名 数据类型 长度 说明 年月 主键 Varchar 6 员工号 主键 Varchar 4 经办人 无 Varchar 10 工资总额 无 Money 8 发放日期 无 Datetime 8 表3-9用户表 字段名 数据类型 长度 说明 用户名 主键 Varchar 10 密码 无 Varchar 10 姓名 无 Varchar 10 3.3 数据库连接 3.3.1 事务对象 事务是DBMS的一种机制,它将SQL语句作为一个完整的工作单位提交给内存单元进行处理。其最大特点是原子性,又称不可分割,其提交的操作要么成功,要么失败。这对维护数据的完整性、一致性非常重要。 3.3.2 数据库连接的实现 在应用的OPEN事件中利用事物对象SQLCA连接数据库,代码如下: SQLCA.DBMS = "MSS Microsoft SQL Server" SQLCA.Database = "员工工资管理" SQLCA.LogPass = "sa" SQLCA.ServerName = "." SQLCA.LogId = "sa" connect; if sqlca.sqlcode<>0 then messagebox("提示没有设置ODBC数据源!") return end if - 6 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 第4章 系统详细设计 在概念设计章节中已经介绍了本系统的软件结构、数据库的结构和软件与数据库的连接,在本章中将以基本信息维护、工资管理、统计查询三个模块为例,介绍具体实现的过程 4.1 员工基本信息 员工基本信息就是添加一个新员工,点击添加按钮将新员工的姓名、年龄、性别、出生年月等一些基本信息添入,再次点击添加按钮可再继续填下一个员工信息。填完基本信息后,也可对员工信息进行删除和修改,此窗口可以按员工号查询员工基本信息。该模块界面如下: 图4-1员工基本信息界面 操作说明 主要功能代码如下: 窗口的open事件中: dw_1.settrans(sqlca) “查询”按钮的clicked事件中: if sle_1.text="" then messagebox("提示请输入员工号!") return - 7 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 end if dw_1.retrieve(sle_1.text) “添加”按钮的clicked事件中: dw_1.insertrow(0) “删除”按钮的clicked事件中: dw_1.deleterow(0) “保存”按钮的clicked事件中: dw_1.accepttext() if dw_1.update()=-1 then rollback; messagebox("提示保存失败") else messagebox("提示保存成功") return end if commit; “退出”按钮的clicked事件中: close(parent) 4.2 工资信息查询 4.2.1 添加工资级别 工资级别添加窗口中输入新级别名称以及新信息点击确定按钮,添加新级别成功。该模块界面如下: - 8 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 图4-2-1添加工资级别 操作说明 主要功能代码如下: 窗口的open时间中: dw_1.settrans(sqlca) dw_2.settrans(sqlca) dw_1.retrieve() bh=message.stringparm “确定”按钮的clicked的事件中: int r,i dw_1.accepttext() if sle_1.text="" then messagebox("提示请输入级别名称!") return end if r=dw_1.rowcount() for i=1 to r dw_2.insertrow(0) dw_2.setitem(i,1,bh) dw_2.setitem(i,2,sle_1.text) dw_2.setitem(i,3,dw_1.getitemstring(i,1)) if isnull(dw_1.getitemnumber(i,3)) then messagebox("提示请输入"+dw_1.getitemstring(i,2)) return end if dw_2.setitem(i,4,dw_1.getitemnumber(i,3)) next if dw_2.update()=-1 then rollback; messagebox("提示保存失败!"+sqlca.sqlerrtext) return end if commit; close(parent) 4.2.2 工资结算 工资结算窗口功能是输入年月,显示出员工每月工资结算情况。 该模块界面如下: - 9 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 图4-2-2 员工每月工资结算 操作说明 主要功能代码如下: 窗口的open事件中: dw_1.settrans(sqlca) dw_2.settrans(sqlca) string ny ny=string(year(today()))+right("0"+string(month(today())),2) dw_1.retrieve(ny) em_1.text=ny “结算”按钮的clicked的事件中: string ny,ygh,xmmc int ygshu,gzxmshu,jbshu,kqshu,i,j,k,l,n dec je,ze datetime datebegin,dateend ny=em_1.text datebegin=datetime(date(left(ny,4)+"-"+right(ny,2)+"-01")) if right(ny,2)="12" then dateend=datetime(date(string(integer(left(ny,4))+1)+"-"+"01-01")) else dateend=datetime(date(left(ny,4)+"-"+string(integer(right(ny,2))+1)+"-01")) end if if dw_1.retrieve(ny)>0 then return ygshu=dw_2.retrieve() for i=1 to ygshu ze=0 - 10 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 ygh=dw_2.getitemstring(i,1) gzxmshu=dw_3.retrieve(ygh) for j=1 to gzxmshu xmmc=dw_3.getitemstring(j,4) je=dw_3.getitemdecimal(j,5) ze=ze+je n=dw_6.insertrow(0) dw_6.setitem(n,1,ny) dw_6.setitem(n,2,ygh) dw_6.setitem(n,3,xmmc) dw_6.setitem(n,4,je) next jbshu=dw_4.retrieve(ygh,datebegin,dateend) for k=1 to jbshu xmmc="加班费" je=dw_4.getitemdecimal(k,2) ze=ze+je n=dw_6.insertrow(0) dw_6.setitem(n,1,ny) dw_6.setitem(n,2,ygh) dw_6.setitem(n,3,xmmc) dw_6.setitem(n,4,je) next kqshu=dw_5.retrieve(ygh,datebegin,dateend) for l=1 to kqshu xmmc="考勤罚款" je=dw_5.getitemdecimal(l,2) ze=ze+je n=dw_6.insertrow(0) dw_6.setitem(n,1,ny) dw_6.setitem(n,2,ygh) dw_6.setitem(n,3,xmmc) dw_6.setitem(n,4,je) next dw_7.insertrow(1) dw_7.setitem(1,1,ny) dw_7.setitem(1,2,ygh) dw_7.setitem(1,4,ze) next if dw_6.update()=-1 then rollback; messagebox("提示保存失败!") return end if if dw_7.update()=-1 then rollback; messagebox("提示保存失败!") return end if commit; dw_1.retrieve(ny) “打印”按钮的clicked的事件中: dw_1.print() “返回”按钮的clicked事件中: close(parent) 4.2.3 员工工资情况维护 该模块界面如下: - 11 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 图4-2-3员工工资情况维护 操作说明 主要功能代码如下: 窗口的open事件中: dw_1.settrans(sqlca) dw_2.settrans(sqlca) dw_3.settrans(sqlca) dw_1.retrieve() “保存”按钮clicked事件中: if dw_2.update()=-1 then rollback; messagebox("提示保存失败!"+sqlca.sqlerrtext) return end if commit; messagebox("提示保存成功!") “返回”按钮clicked事件中: close(parent) 4.3 员工历史工资查询 此窗口是根据员工号查询某员工的历史工资,该模块界面如下: - 12 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 图4-3员工历史工资查询 操作说明 主要功能代码如下: 窗口的open事件中: dw_1.settrans(sqlca) 第一个按钮是打开选择员工的界面,代码为: open(w_gwxuanze) “查询”按钮clicked事件中: if sle_1.text="" then messagebox("提示请输入员工号") return end if dw_1.retrieve(sle_1.text) “返回”按钮clicked事件中: close(parent) - 13 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 第5章 结论 在本次毕业设计过程中,让我学到了不少东西,第一次做软件设计,遇到了不少问题,对于一些代码的作用并不是很懂,还有一些代码需写在窗口的哪些事件里没有分得很清楚,经过对设计不断地修改及对代码的编程,现在我有了不少提高。博宇员工工资管理系统的设计虽然有些地方不是很完美,但是我想以后不断地锻炼编写程序与设计软件,我一定能设计出更好的系统。博宇员工工资管理系统通过powerbuilder,SQL Server以及ODBC之间的连接而实现的。 此系统还不能成为很完美,因为此系统只是单单对员工工资的一些基本信息做修改,对于其他信息已经能查询及修改,例如员工的工资情况和员工的考勤情况,如果此系统只是用于一般的公司人事管理也绰绰有余了。 我在设计此软件的时间并不是很长,在设计中出现了问题时,老师和同学热心的帮助让我很快的解决了问题。设计中发现问题最好就是能分析问题原因所在,不要急于求助于别人,要试着自己想办法去解决,如果凭着自己的能力真的解决不了,那就可以和老师同学讨论一起来解决出现的问题。在解决问题后,不能马上做下去,应该去总结一下此次的问题,这样在下次出现同样问题的时候,就知道问题的所在,便可以通过上次的总结来解决问题,这样子才能通过此次设计来提高自己的水平。 这次博宇员工工资管理系统的设计,为我以后的工作中打下基础,我也会利用在此次设计中学到的东西在以后的工作中好好发挥,希望我能得到更大的进步。如果系统还有哪里不足,也希望老师能给与批评,相信这对我也十分有用。 - 14 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 谢辞 大学生活很快就要过去了,这段期间我学到了非常多的关于计算机的知识,在各位老师的教导下我得到了很大的提高,同时也也取得了一些成绩,在今后,我也会不断地努力。 很感谢学院领导两年内对我们的关心和帮助,给了我们良好的学习环境,对于我们今后的工作情况也高度重视。同时也非常感谢我们两年来的任课老师,如韩春玲老师,李俊杰老师、李忠明老师、胡秧老师等,所有老师教给我们的知识都让我们受益匪浅,希望老师教给我们的知识,我们能很好的运用在以后的工作和学习中。 在这次博宇员工工资管理系统的设计过程中,非常要感谢韩春玲老师给我的帮助,老师态度和蔼,工作认真负责,在我出现问题的时候,不厌其烦的帮我找问题错误所在,解决问题,并跟我说明问题的原因,以及正确的做法。在老师一次次的教导下,我懂的了很多,也完成了第一份软件设计——博宇员工工资管理系统。在老师教导的同时,身边的同学也给了我很多的帮助,我也非常感谢她们。 通过这次系统的设计,让我懂得了非常多的知识,如在出现问题是我应该先思考解决,再请求老师和同学的帮助,更让我体会到合作精神,在大学学到的一切,在我今后的工作中都会很有帮助,再次感谢老师和同学带给我的一切。 - 15 -
毕业论文——《博宇员工工资管理系统的设计与实现》 绍兴职业技术学院 参考文献 [1]王志梅,黄河.关系数据库基础与技术.北京:国防工业出版社,2004 [2]孔令德.毕业设计实例教程——从系统开发到论文写作.北京:国防工业出版社,2007 [3]齐治昌,谭庆平,宁洪.软件工程.北京:高等教育出版社,2004 [4]于洪文.PowerBuilder9.0案例开发篇.北京:清华大学出版社,2004 [5]韩征.InstallShield应用技巧与实例.北京:机械工业出版社,2004 - 16 -
