1、目录1 引言12 研究对象与方法12。1 研究对象12.2 研究方法23 系统需求分析23.1用户需求分析23。2业务流程图34 系统详细设计34.1系统功能模块设计34.2数据库概念设计44.3数据的实现65系统的实现65。1 创建公用数据库模块465。2 主窗体的创建575.3 创建人员管理窗体95.4 创建添加员工窗体95。5 创建修改员工窗体105.6 创建职位管理窗体105。7 创建添加职位窗体115。8 创建修改职位窗体125。9 创建工资发放窗体125。10 创建统计报表窗体136 测试与分析14结束语14参考文献1512用VB开发企业工资管理系统 指导教师: 【摘要】:工资管理
2、是每个企业要面临的问题,对于大企业有正规的工资管理系统,但对于小企业采用大的工资管理系统不合适,所以开发一套符合小企业工资管理的系统就显得重要,本次设计的工资管理系统能满足企业工资管理的日常要求,包括人员管理、职位管理、工资发放管理及统计报表等功能,提高企业的管理效率.【关键词】:工资管理 信息管理 数据查询 数据库1 引言企业职工的工资管理作为一个企业管理不可或缺的方面,其管理过程比较复杂,工作繁琐,时间性强及具有延续性,再加上每个月要重复产生数据,形成巨大的数据量,利用人工来管理显得比较困难。因此非常有必要开发一套工资管理系统软件来提高企业工次管理的工作效率。 企业工资管理系统为了保证统计
3、数据的准确性,首先将职工的基本信息经过核实后输入系统内并存储起来,同时按照系统的要求设定标准代码,在工资管理的日常工作中最大限度的减少重复输入,也减少人为因素造成的不必要的错误,提高系统数据的完整性,企业工资管理系统主要可以完成数据的录入、存储、查询、汇总及报表的打印,不仅节省时间和人力,而且调用方便,统计快捷,准确性高。2 研究对象与方法2.1 研究对象目前在大的公司已经有一整套比较完整的工资管理系统,而在一般小型的企业中工资的管理大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解工资的发放状况等等,不便于管理.同时由于不可避免的人为因素,造成数据的遣漏、误报等。为了更好地适应当前
4、企业对工资管理的需求,缓解手工管理存在的这些弊端,开发了企业工资管理系统.它具有以下几个特点:l 可以存储所有有关工资、津贴、提成等内容,安全高效。l 可以迅速查到所需信息。l 实现动态报表。2.2 研究方法Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C+编程基础.在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,
5、以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接 ,二是利用adodc(ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程。要实现企业工资管理系统,关键是如何运用Microsoft Access2000作为后台数据库.数据库前台控制
6、界面使用Visual Basic+ADO来实现。系统分析方法采用结构化生命周期法,这是软件开发常用的方法,主要可以分成以下四个步骤:系统需求分析,系统数据的逻辑设计、系统功能模块的设计和软件功能界面的设计.3 系统需求分析3.1用户需求分析通过对用户工作流程及要求的调研,确定系统的功能要满足以下几个方面:1、 企业员工基本信息的管理:在这个模块中要主要输入企业员工的基本信息.2、 员工岗位信息的管理:不同的岗位对应不同的工资和津贴,这是发放工资参照的标准.3、 特殊项管理:企业对员工有不同的奖惩措施,具体的奖惩标准应在系统中体现,并在每月的工资中计算。4、 发放工资管理:完成每月的工资合计,并
7、打印出工资凭条交由财务发放工资。5、 报表打印:对各种数据进行统计与查询并打印出来,便于企业管理者对工资发放情况的动态掌握和管理。软件的设计要求界面友好,操作简单,最好在硬件的配置上没有什么要求,功能结构清楚明了,一看就懂,这样才能更好的满足企业员工水平。总之,企业工资管理信息系统旨在提供一个可以操作的,方便工资发放和管理,易于修改的辅助管理系统.同时提供了系统智能辅助与用户自主选择两种方式,提高工作效率.财务处3.2业务流程图根据需求分析的结果,本系统主要划分为以下5个子模块:人员管理、职位管理、特殊项管理、工资发放、统计报表.主要的系统模块如图31所示。图3-1、系统功能图4 系统详细设计
8、4.1系统功能模块设计1) 企业员工基本信息管理模块企业工资管理人员通过此模块来管理企业员工的信息,包括员工的添加、修改、删除等。这也是工资管理系统的基础数据,在添加企业员工信息时,系统会进行员工号唯一性检验,正常是一个员工一个号,不重复。在删除企业员工信息时,为了防止误码删除,会弹出提示窗口让用户确认,在删除时一定要慎重,一经删除该员工的所有信息都将一起被删除。2) 企业员工岗位信息管理模块企业工资管理人员通过此模块来管理企业员工岗位信息,包括岗位的添加、修改、删除等。是这工资标准发放的依据,不同的岗位对应不同的工资,如果员工岗位有变动就要对岗位信息进行修改。3) 特殊项管理模块企业工资管理
9、人员通过此模块来管理特殊项信息;特殊项管理作为工资发放在另一块标准,主要是对员工进行奖惩性的数据输入,企业会根据每个员工在企业内的表现进行考核,同时考核结果对应相应的奖惩标准,同时数据计入当月的工资总额中。4) 发放工资模块通过该模块实现员工的工资发放、工资凭条生成和打印等功能。首先用户选择员工和月份,然后由程序自动生成相应月份的工资表。程序调用Excel生成工资凭条,并可打印该工资凭条.5) 统计报表模块实现对工资情况的统计与报表输出,这些报表包括当月工资细表、当月工资总表、当月特殊项表以及其他历史数据的汇总。并实现生成报表并打印的功能.方便企业管理者掌握企业员工工资发放情况,对工资发放作出
10、及时合理的调整。4.2数据库概念设计根据企业工资管理系统的功能需求,选取Microsoft Access2000作为数据库开发软件,通过Access2000提供的表、查询、窗体等功能来实现。该数据库由4个主表组成。4个主表包括职工表、职位表、特殊项表、领取表。职工表是对职工个人信息的统计,包括职工的职工ID、职位、姓名、性别等信息。表1是职工表的结构。表1 职工表字段名数据类型说明职工ID文本主键,字段大小为10职位文本字段大小为10姓名文本字段大小为10性别文本字段大小为2出生年月日期工作年月日期职位表是对每个职位工资的基本评价。包括职位及时其对应的工资、津贴和奖金。表2是职位表的结构。表2
11、 职位表字段名数据类型说明职位文本主键,字段大小为10基本工资货币奖金货币津贴货币特殊项表包括特殊项ID、职工ID、特殊项名称、特殊项金额4个字段,该表主要用于计量一些特殊情况下的奖惩金额。例如某人上班迟到,罚款若干;某人加班,奖励或干等。表3 特殊项表字段名数据类型说明特殊项ID长整型主键,自增字段职工ID文本字段大小为10特殊项名称文本字段大小为200特殊项金额货币特殊项时间日期默认值为当前时间数据库中还需记录企业工资发放的信息,考虑到每月发一次,本例采用按月工资发放记录的方式。在领取表中记录每月的发放情况,结构如表4所示, 表4 领取表字段名数据类型说明职工ID文本字段大小为10领取日期
12、日期默认值为当前时间领取月份文本工资货币该表代表职工当月工资是否取毕。其中的工资项是将上面的职位工资、奖金、津贴以及当月所得的特殊项的总和(其中,特殊项的值可能为负).这表通过职工ID与职工表构成一对一的关系。即每个职工每个月都能领到一份工资.4。3 数据的实现完成数据库的表的分析与字段的确定后,就可以在ACCESS数据库中完成具体表的实现,首先通过创建一个新的数据库,命名为企业工资管理系统;其次在ACCESS数据库中利用表设计器,在设计器中输入字段名来完成上述4个表的创建.为了各表之间的数据的完整性,必须为各表设计关系,这4个表的关系设计如下:以职工表中的职工ID为主关键字,和特殊项表、领取
13、表中的ID创建一对多关系,并为关系设计成实施参照完整性、级联更新及级联删除。职工表中的职位和职位表中的职位也形成一对多关系,关系如图4-1所示:图4-1、关系表5系统的实现5。1 创建公用数据库模块4新建一个标准EXE工程,并将它命名为prjSalaryManage.去掉默认的窗体,添加一个MDI窗体,并命名为MainForm。添加一个公用模块,并命名为ModData,用于处理数据库有关的功能。一、公用数据库模块的功能公用数据库模块完成对数据库的基本操作。包括打开数据库连接、关闭数据库连接、打开数据库集合和关闭数据库集合等操作,同时声时了几个关键的数据库对象。二、公用数据库模块设计1 全局变量
14、的声明包括数据库文件的路径、数据库连接、数据库集合已经用于生成打印报表的Excel对象。2 OpenDBFile过程OpenDBFile过程用于打开数据库文件,也就是打开数据连接对象。在调用过程中如果出现错误,会打开一个错误日志文件进行记录。3 CloseDBFile过程CloseDBFile过程用于关闭数据库连接。4 OpenRS过程OpenRS过程用于打开数据集合,该函数首先打开一个数据库连接,然后执行参数中的SQL语句,返回的数据集就是上面定义的gRst。5 CloseRS过程CloseRS过程用于关闭打开的数据集合。该函数首先关闭打开的数据集,然后关闭数据库连接.中间如果出现错误会存储
15、到日志文件中。5。2 主窗体的创建5主窗体是程序的启动窗体,担任着调动程序其他模块的功能,是整个程序的核心。在主窗体初始化的时候,还初始化了一些全局变量。主窗体没有包含控件,但是包含一个菜单,设计中的主窗体及其菜单如图51所示。图51 主窗体窗体部分代码编写如下:1相应MDIForm对象的Load事件,对整体进行初始化。设置启动参数Private Sub MDIForm_Load() gFile = App.Path & 企业工资管理系统.mdb Set gX = CreateObject(Excel.Application”)End Sub2响应HRManage菜单项的单击事件,调用“人员管
16、理”窗体.调用人员管理”窗体Private Sub HRManage_Click() HRForm。ShowEnd Sub3响应PosManage菜单项的单击事件,调用“职位管理”窗体。调用”职位管理”窗体Private Sub PosManage_Click() PosForm。ShowEnd Sub4响应 SpeciaManage菜单项的单击事件,调用“特殊项管理”窗体.调用特殊项管理”窗体Private Sub SpecialManage_Click() SpecialForm.ShowEnd Sub5响应PayOffTable菜单项的单击事件,调用“工资发放”窗体。调用”工资发放窗体P
17、rivate Sub PayoffTable_Click() PayForm。ShowEnd Sub6响应MDIForm的QueruUnload事件,在程序关闭前关闭所有窗体。关闭所有窗口Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) On Error Resume Next Unload AddEForm Unload AddPForm Unload AddSForm Unload UpdateEForm Unload UpdatePForm Unload UpdateSFormEnd Sub
18、5。3 创建企业员工信息管理窗体企业人员管理窗体的主要功能是完成企业人员基本信息的添加、删除与修改;窗体采用表格方式显示所有人员的信息,窗体设计了四个功能按钮,单击“添加员工”可以在弹出的窗体中进行人员的添加.单击“删除员工”按钮可对选中的记录进行删除,在删除时会让用户确认是否删除,确定后才能被删除.单击“修改员工”按钮可在弹出的窗体中对人员信息进行修改,单击“取消按钮可以退出该窗体。设计中的人员管理窗体如图52所示。图5-2 人员管理窗体5.4 创建添加员工窗体在人员管理窗体中单击添加员工按钮就会弹出员工添加窗体,在窗体中输入员工基本信息后,单击添加可以将数据添加到员工信息窗体中,添加员工信
19、息窗体如图5-3所示。图53 添加员工窗体5。5 创建修改员工窗体在窗体显示的时候,保证窗体上面的数据与在人员管理窗体上选定的行的数据一致,同时保证职工ID不可改动。当用户单击“修改”按钮时,生成并执行对应的修改语句。出现错误记录到错误日志中。新建一个窗体,并命名为UpdateEForm,Caption设置为“修改员工”。图54修改员工窗体5。6 创建职位管理窗体该窗体实现对职位的增删改功能。单击“添加职位按钮可以调用“添加职位窗体,进行人员的添加。单击“删除职位”按钮会弹出对话框,要求确认删除该职位,单击“是”按钮,即删除该职位。单击“修改职位按钮可以调用“修改职位”窗体,进行人员信息的修改
20、。单击“取消按钮可以退出该窗体.设计中的职位管理窗体如图5-5所示。图5-5 职位管理窗体窗体的工作流程/方式用户重新选择DataGrid1控件中的行列,则记录用户所在的行。用户单击“添加职位”按钮,则显示添加职位窗体。用户单击“删除职位”按钮,则弹出对话框确认,无误之后执行SQL语句,删除职位。然后刷新Ado数据控件,保证数据库和DataGrid控件中的数据的一致性.如果出现错误,将错误记录到错误日志中。用户单击“修改职位”按钮,则显示修改职位窗体,并将相关的用户选定信息传递给修改职位窗体。操作完毕,用户单击“取消”按钮,可以退出本窗体.5.7 创建添加职位窗体新建一个窗体,并命名为AddF
21、orm,Caption设置为“添加职位”。图56 添加职位窗体窗体的工作流程/方式如下:在窗体初始化的时候,初始化IblField控件数组。用户对txtValue控件数组的属性进行修改,当用户单击“添加时,生成SQL语句并执行,并刷新职位管理窗体的数据。5。8 创建修改职位窗体新建一个窗体,并命名为UpdatePForm,Caption设置为“修改职位”。图57 职位修改窗体窗体的工作流程/方式如下:窗体初始化时,会把“职位管理”窗体中选中的数据显示到TxtValue控件数组中.用户修改txtValue 控件数组中的文字内容.用户单击“修改”按钮,则生成并执行SQL语句,实现修改的功能。用户单
22、击“取消按钮,退出该窗体。5。9 创建工资发放窗体新建一个窗体命名为PayForm,MDIChild属性为True。图5-8 工资发放窗体窗体的工作流程/方式如下:首选用户选择要发工资的月份和职工姓名,之后如果当月的月表(即一个月的工资总表)还没有生成,则单击“生成月表”按钮生成月表.单击“查询是否已发放按钮会显示职工的工资报表,如果发放则弹出对话框说明。单击“发放工资”按钮,发放工资,即将工资月表中的“发放完毕字段设置为1。单击“打印工资表”按钮打印工资表。单击“取消”按钮退出本窗体。5。10 创建统计报表窗体新建一个Form,并命名为AnaForm。MDIChild属性设置为True,Wi
23、ndowState属性设置为Maximized。该窗体上有一系列的按钮。这里由于篇幅关系,只实现了前3个按钮的功能,其他按钮的功能实现读者可以自行实现。设计中的统计报表窗体如图所示。包括12个按钮,分别放到4个Frame控件中。图5-9 统计窗体本窗体的工作流程就是在用户单击需要的按钮,显示相应的窗体。6 测试与分析经过详细的设计和开发,企业工资管理系统基本开发完毕。其功能基本符合用户需求,能够完成企业工资信息的存储和查询。由于在设计的过程中就通过输入数据对每项功能进行测试,发现行不通的地方就及时改进,所以在交付给企业使用后,问题比较少,基本完成了系统的测试与运行.由于软件设计的时间才一个多月
24、,以及个人能力上的短缺,在系统分析上存在很多不足,系统功能也不够完善,操作方面也不够合理,这些都有待进一步改进,我会在后期的系统维护中不断改进,争取完成一个完整的系统管理软件。结束语本次设计我挑选了一个自己比较熟悉的企业工资管理,在选题时还对自己信心十足能做好本次设计,但从开始搜集资料到完成系统规划,才感觉理论与实践有很大的不同,在系统设计及撰写论文过程中出现许多错误,还好在指导老师的用心指导下,对系统及论文不断的完善才勉强完成本次设计。 感谢学校认真负责的态度为我们组织这次毕业设计以及毕业论文答辨。通过这次煅炼,使我们的系统开发水平各方面都有了较大的进步。由此积累的经验对我们以后的学习和生活
25、产生帮助。 感谢我的指导老师,在毕业设计时帮助选题,在设计的过程中提出了许多有益的建议和意见,同时他先进的软件开发理念和思维方式也给我很大的启发。参考文献1谭浩强,袁玫,薛淑斌. Visual Basic程序设计.第二版。清华大学出版社,2009 2童爱红,侯太平。 Visual Basic数据库编程.清华大学出版社,北京交通大学出版社,20103赵学慧,赵玮。 Visual Basic程序开发完整实例教程。海洋出版社,2008 4王斌华,李建华。中文Visual Basic精彩编程五十例。电子科技大学出版社,2008 5王晟。 Visual Basic数据库开发经典案例解析.清华大学出版社,2009 6郑阿奇 顾韵华, VB6.0程序设计教程M (机械工业出版社) 20067 李鹏。学生信息管理系统总体设计与主模块构成J。中国新技术新产品,2009,(2):306。8 于雪涛 奚砚涛。高校二级学院学生信息管理系统设计与实现J。电脑编程技巧与维护,2009,(1):95。9 靳京阳 武立博 张峰。学生信息管理系统在高职院校管理中的应用J.中国成人教育,2010,(0):70.10 陈相吉。未来计算机与计算机技术的发展J;法制与社会,2007,(10):148.