工资管理系统的设计与实现终搞大学论文_第1页
工资管理系统的设计与实现终搞大学论文_第2页
工资管理系统的设计与实现终搞大学论文_第3页
工资管理系统的设计与实现终搞大学论文_第4页
工资管理系统的设计与实现终搞大学论文_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE江西师范大学科学技术学院本科毕业论文DesignandImplementationofpayrollsystem姓名:学院:专业:计算机科学与技术学号:0608069054完成时间:2010.5.5指导教师:PAGEI摘要随着计算机技术的飞速发展和计算机在企业管理中应用的普及,利用计算机实现教工人事工资管理的管理势在必行。企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。本系统要对企业工资管理的日常的工资发放进行数据输入,并对各项工资条款进行计算。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成了工资管理的全过程。关键词:工资管理;信息管理;数据查询;数据库PAGEIIABSTRACTAlongwiththecomputertechnologyrapiddevelopmentandthecomputerinthebusinessmanagementtheapplicationpopularization,realizestheteachersandadministrationstaffhumanaffairswagesmanagementmanagementusingthecomputerimperative.PayrollManagementisanimportantcontentofcompanymanagement.Withtheincreaseofthenumberofpersonnel,enterprise’spayrollmanagementisalsobecomingmoreandmorecomplicated.EnterprisePayrollmanagementsystemisequippedintocomputerstoenhancethequalitiesofsecurestorage,fastcalculation,andcomprehensivestatistics,andalsorealizethesystematization,standardizationandautomationofpayrollmanagement.Enterprisepayrollmanagementsystembelongstothetypicalinformationmanagementsystem(MIS),ofwhichforegroundprogramexertingMicrosoftVB6developmenttools,andofwhichbackenddatabaseusingAccessdatabase.Theoverallsystemfromconformedtotheoperationeasily,thecontactsurfacefriendly,nimble,practical,thesaferequestembarks,hascompletedthewagesmanagemententireprocess.Keyword:WagesmanagementinformationmanagementdatainquirydatabasePAGE1目录第一章引言 11.1技术背景 11.1.1数据库管理系统概述 11.1.2企业工资管理系统概述 11.1.3管理信息系统概述 12.2本系统开发的目的和意义 2第二章相关技术介绍 42.1开发工具简介 42.1.1VisualBasic6.0的简介 42.1.2Access的简介 62.2C/S模式简介 8第三章工资管理系统分析 93.1系统目标 93.2系统可行性分析研究 93.2.1技术上的可行性 93.2.2经济上的可行性 93.2.3管理上的可行性 93.2.4社会可行性 93.3系统的功能要求 10第四章需求分析 114.1应用需求分析 114.2系统功能需求分析 11第五章系统设计 135.1“登录模块”详细设计 135.1.1“确定”按钮的Click()过程 135.1.2“退出”按钮的Click()过程 155.2“主窗体”模块详细设计 155.3系统数据库设计 195.4用户管理模块 235.4.1“增加”用户按钮的Click()过程 245.4.2修改用户按钮的说明 255.4.3“删除用户”按钮的Click()过程 265.5员工管理 275.5.1“添加”按钮的Click()过程 275.5.2“修改”按钮的Click()过程 295.5.3“删除”按钮的Click()过程 345.6部门管理 355.6.1“添加”按钮的Click()过程 365.6.2“修改”按钮的Click()过程 375.6.3“删除”按钮的Click()过程 385.7工资项目管理 415.7.1“添加”按钮的Click()过程 445.7.2“修改”按钮的Click()过程 455.7.3“删除”按钮的Click()过程 465.8工资管理 485.8.1“录入”按钮的Click()过程 495.8.2“修改”按钮的Click()过程 50第六章结论 536.1系统的特点 536.2系统的缺点 536.3本系统的改善设想 53参考文献 54致谢 55江西师范大学科学技术学院2010届本科生毕业设计PAGE44第一章引言1.1技术背景1.1.1数据库管理系统概述数据库管理系统(databasemanagementsystem)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MSAccess2000就是一种关系型数据库管理系统。1.1.2企业工资管理系统概述企业工资管理是一项琐碎、复杂的工作,一般不允许发生差错。最初的工资统计和发放都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不仅花费财务人员大量的时间,而且由于计算的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制。1.1.3管理信息系统概述(一)管理信息系统现状管理信息系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业战略竞优、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。它是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。随着我国与世界信息高速公路的接轨,企业通过计算机网络获得信息必将为企业带来巨大的经济效益和社会效益,企业的办公及管理都将朝着高效、快速、无纸化的方向发展。MIS系统通常用于系统决策,例如,可以利用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或不足。换句话说,MIS系统的最终目的是使管理人员及时了解公司现状,把握将来的发展路径。(二)管理信息系统应具有如下几个功能。1.基于组织职能进行划分MIS按组织职能可以划分为办公系统、决策系统、生产系统和信息系统。2.基于信息处理层次进行划分MIS基于信息处理层次进行划分为面向数量的执行系统、面向价值的核算系统、报告监控系统,分析信息系统、规划决策系统,自底向上形成信息金字塔。3.基于历史发展进行划分第一代MIS是由手工操作,使用工具是文件柜、笔记本等。第二代MIS增加了机械辅助办公设备,如打字机、收款机、自动记账机等。第三代MIS使用计算机、电传、电话、打印机等电子设备。4.基于规模进行划分随着电信技术和计算机技术的飞速发展,现代MIS从地域上划分已逐渐由局域范围走向广域范围。5.MIS的综合结构MIS可以划分为横向综合结构和纵向综合结构,横向综合结构指同一管理层次各种职能部门的综合,如劳资、人事部门。纵向综合结构指具有某种职能的各管理层的业务组织在一起,如上下级的对口部门。2.2本系统开发的目的和意义随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。工资管理信息系统的最终目的是为管理、决策服务,达到这个目标的手段无外乎以下几个方面:一是利用计算机可快速整理、传输、处理各种数据的特点,处理会计业务,从而更为全面、更为准确的提供管理、决策所需的财务信息;二是利用计算机处理数据速度快的特点,处理会计业务,从而更为快捷地提供各种管理、决策所需地财务信息;三是利用计算机对数据分类整理的优点,按管理的要求,对会计核算数据进行各种加工、处理,从而筛选出管理所需的信息;四是会计人员从繁杂的手工核算工作中解脱出来,利用他们懂财务、了解情况的优势,参与分析、参与管理、参与决策。 第二章相关技术介绍2.1开发工具简介2.1.1VisualBasic6.0的简介VisualBasic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。因此,本系统使用MSVisualBasic6.0开发。总的来说,VisualBasic具有以下特点:1.可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。2.面向对象的程序设计4.0版以后的VisualBasic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而VisualBasic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。3.结构化程序设计语言VisualBasic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。VisualBasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。VisualBasic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计VisualBasic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离VisualBasic环境,直接在Windows环境下运行。4.事件驱动编程机制VisualBasic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用VisualBasic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。5.访问数据库VisualBasic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理MicrosoftAccess格式的数据库,并提供了强大的数据存储和检索功能。同时,VisualBasic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用VisualBasic编辑和处理。VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。6.动态数据交换(DDE)利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。7.对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。8.链接库(DLL)VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。2.1.2Access的简介MicrosoftOfficeAccess(前名MicrosoftAccess)是由微软发布的关联式数据库管理系统。它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员之一。其实Access也是微软公司另一个通讯程序的名字,想与ProComm以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。另外,Access还是c语言的一个函数名和一种交换机的主干道模式。Access的优点:1.存储方式单一Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。2.面向对象Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。3.界面友好、易操作Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。4.集成环境、处理多种数据信息Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。5.Access支持ODBC(开发数据库互连,OpenDataBaseConnectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。1.表(Table)表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。2.查询(Query)查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。3.窗体(Form)窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。5.报表(Report)报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。6.宏(Macro)宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。7.模块(Module)模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用VisualBasic编程。2.2C/S模式简介C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。C/S结构的优点:C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或WindowsXP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。 第三章工资管理系统分析3.1系统目标本系统要对企业工资管理的日常的工资发放进行数据输入,并对各项工资条款进行计算。汇总各项数据生成员工个人台帐。采用用户名,密码安全机制,分用户权限登陆访问,保证系统资源不受人为因素的干扰。

3.2系统可行性分析研究可行性研究的目的使用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我们具体从下面两个方面考虑。3.2.1技术上的可行性技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势,现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。由于对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。3.2.2经济上的可行性主要是对项目的经济效益进行评价,一方面是支出的费用,另一方面是取得的收益中可以用钱来衡量的那部分。本系统基于企业的现有计算机及配套设备。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统。3.2.3管理上的可行性主要是管理人员对开发信息系统是否支持,现有管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等,本工资管理系统比较完善的规章制度和管理方法为系统的建设提供了保障。3.2.4社会可行性随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率。3.3系统的功能要求整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。开发方法,文档规范化,便于管理,可扩充。完善的数据输入,维护,输出。自检性能高,用户误输、错输均有提示。容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。第四章需求分析4.1应用需求分析需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。软件需求一般包含三个层次—业务需求、用户需求和功能需求,还包括非功能需求。业务需求:反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求:描述了用户使用产品必须要完成的任务和具备的功能,这在使用实例文档或方案脚本说明中予以说明。功能需求:定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足其业务需求。4.2系统功能需求分析开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、人事管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终实现的主要功能如下。(一)企业工资信息设置部分:包括设置员工的基本工资和其它项目的金额,如奖金等。并且负责设置员工工资的计算公式。(二)人事管理部分:包括企业部门管理,工资项目管理,奖罚(三)企业工资信息管理部分:包括工资录入、工资更新、工资发放等。(四)系统部分:包括添加用户和修改密码。系统用户管理人事管理工资管理系统用户管理人事管理工资管理工资管理系统工资项目管理工资管理员工管理部门管理系统用户图4-1系统整体功能图第五章系统设计5.1“登录模块”详细设计登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和退出的按钮组成。输入用户名和密码后,点击确定按钮进入主窗体界面,点击退出按钮退出整个系统,如图5-1:用户登录图5-15.1.1“确定”按钮的Click()过程输入用户名和密码后,点击确定按钮进入主窗体界面。登录模块确定按钮代码:PrivateSubcmdOK_Click() //定义user变量,用于存储用户名DimUserAsString //给user赋值User=Trim(txtUser.Text) //定义pwd变量,用于存储密码DimpwdAsString//'给密码赋值pwd=Trim(txtPasswd.Text)//没有输入用户名IfTrim(User)=""ThenMsgBox"请输入用户名",vbInformation,"信息提示"txtUser.SetFocusExitSubEndIf//判断用户是否存在IfNotobjPasswd.IsExistUser(User)Thencounter=counter+1Ifcounter<3ThenMsgBox"用户名不存在,请重新输入!",vbOKOnly+vbInformation,_"用户名错误"txtUser.Text=""txtPasswd.Text=""txtUser.SetFocusExitSubElseMsgBox"重试次数已到,不能再输入用户名和密码,即将退出系统!",_vbOKOnly+vbExclamation,"用户名错误"DBDisconnectEndExitSubEndIfEndIf//判断密码是否正确objPasswd.GetInfo(User)IfobjPasswd.Passwd<>pwdThencounter=counter+1Ifcounter<3ThenMsgBox"用户或密码错误,请重新输入!",vbOKOnly+vbInformation,_"密码错误"txtUser.Text=""txtPasswd.Text=""txtUser.SetFocusExitSubElseMsgBox"重试次数已到,不能再输入用户名和密码,即将退出系统!",_vbOKOnly+vbExclamation,"密码错误"DBDisconnectEndExitSubEndIfEndIf//登录成功,将当前用户的信息保存在objCurPasswd中objCurPasswd.User=objPasswd.UserobjCurPasswd.UserType=objPasswd.UserType//关闭自己UnloadMefrmMain.Show//当重新登录时用到frmMain.Enabled=TrueEndSub5.1.2“退出”按钮的Click()过程点击退出按钮退出整个系统。退出按钮代码如下:PrivateSubcmdExit_Click()DBDisconnectEndEndSub5.2“主窗体”模块详细设计在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。主窗体设计的界面是用菜单编辑器做的,主要由系统管理、系统用户管理、人事管理、工资管理、这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。如图5-2.主窗体图5-2用户管理,如图5-3:用户管理图5-3员工管理,如图5-4:员工管理图5-4部门管理,如图5-5:部门管理图5-5职务管理,如图5-6:工资项目图5-6工资管理,如图5-7:工资管理图5-75.3系统数据库设计数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容分析,为本系统设计如下的数据项和数据结构:基本工资信息:包括员工编号、员工姓名、所在部门、基本工资、岗位工资、公积金、奖金、补贴、工龄工资、职称工资、保险费、罚金、个人所得税、应发工资、应扣工资、实发工资。员工基本信息:包括员工编号、员工姓名、所在部门、性别、民族、婚姻状况、文化程度、政治面貌、出生年月、省份证号、户口所在地、籍贯、在职状态、职务、工资级别、固定电话、手机、电子邮件、现在居地.其他数据结构描述如下系统数据表.部门表用来记录部门的名称,在部门管理界面对部门进行删除、修改、增加操作的结果存在此表。表5-1部门表(DeptInfo)字段数据类型长度说明DeptIDChar4部门编号DeptNameString20部门名称DescriptionString50描述职务类型表如下,此表用来存储职务名称和相应的工资数。表5-2职务类型表(DutyType)字段数据类型长度说明DutyInt40-无,1-董事长,2-总经理,DNameString20职务名称员工信息表用来存储员工基本信息,表的结构如下所示:表5-3员工信息表(EmployeeInfo)字段数据类型长度说明ENoString10员工编号NameString20员工兴民DepartmentString20部门SexString18性别IDcardString100身份证TimeString20入职时间DutyInt4职务PostInt4职称Salary

Int4工资P.SInt4备注用户系统表是用来存储用户名和密码,此表格在用于登录界面用到,表的结构如下所示:表5-4系统用户表(PasswdInfo)字段数据类型长度说明UserString20用户名PasswdString50密码UserTypeInt4用户类型职称表分为四个级别,每个级别对应着相应的工资数额,表的结构如下所示:表5-5职称表(PostType)字段数据类型长度说明PsotInt4职称PNameString20职称名称PostWageInt4职称津贴奖罚表应用在奖罚管理界面,此表用来记录对员工的奖罚记录,表的结构如下所示:表5-6职务表(DutyType)字段数据类型长度说明DutyInt10职务DnameString4职务名称DutyWageInt20职务津贴表5-7工资信息表(WageInfo)字段数据类型长度说明NameString20员工姓名BasicWageInt4基本工资MissionWageInt4职务津贴PostWageInt8职称津贴BonusInt8奖金AllowanceInt8房帖InsuranceInt4养老保险PostWageInt4医疗保险InsuranceInt8住房公积金WithholdInt8代扣TaxInt8个人所得税TotalWageInt8应发小计SubWageInt8应扣小计WageInt8实发工资5.4用户管理模块点击系统用户俺就,进入用户管理的的窗体,在这里可以对系统用户进行日常的管理操作,包括增加用户,修改用户和删除用户,如图5-9。图5-8用户管理图5.4.1“增加”用户按钮的Click()过程点击增加用户按钮,即弹出用户管理界面,输入参数,点击确定,即增加新的用户,如图5-9和5-10:图5-9用户编辑图添加用户按钮代码如下:PrivateSubcmdAddUser_Click()frmUserEdit.txtUser=""frmUserEdit.txtPasswd=""frmUserEdit.txtConfirm=""IsAdd=TruefrmUserEdit.Show1EndSub5.4.2修改用户按钮的说明点击修改户按钮,即弹出用户管理界面,输入参数,点击确定,即修改用户信息,如图5-11和5-12:图5-10用户编辑图修改用户按钮代码如下:PrivateSubcmdModiUser_Click()IflstPasswd.Text=""ThenMsgBox"请选择一个用户",vbInformation,"信息提示"cmdModiUser.Enabled=FalseElsefrmUserEdit.txtUser=Trim(Left(lstPasswd.Text,30))frmUserEdit.txtUser.Locked=TruefrmUserEdit.txtPasswd=""frmUserEdit.txtConfirm=""frmUserEdit.cboUserType.ListIndex=IIf(Right(lstPasswd.Text,_Len(lstPasswd.Text)-30)="超级用户",0,1)IsAdd=FalsefrmUserEdit.Show1EndIfEndSub5.4.3“删除用户”按钮的Click()过程选择要删除的用户,点击删除用户按钮,即删除用户,如图5-11:图5-11删除按钮代码如下:PrivateSubcmdDelUser_Click()IflstPasswd.Text=""ThenMsgBox"请选择一个用户",vbInformation,"信息提示"cmdDelUser.Enabled=FalseExitSubEndIfobjPasswd.User=Trim(Left(lstPasswd.Text,30))IfobjPasswd.User="super"ThenMsgBox"此用户不能删除",vbExclamation,"警告"ElseobjPasswd.DeleteobjPasswd.UserMsgBox"删除成功!",vbInformation,"删除"CallAddList(lstPasswd,SQLStmt)EndIfEndSub5.5员工管理在员工管理模块里可以对企业员工的的档案信息进行方便的管理,其中信息包括员工编号、员工姓名、部门、性别、身份证、入职时间、职务、职称、基本工资而查看相应的员工信息,如图5-12:图5-12员工管理图5.5.1“添加”按钮的Click()过程点击添加按钮,输入参数,点击确定,即增加新的员工信息,如图5-13:图5-13员工编辑图添加按钮代码如下:PrivateSubcmdAdd_Click()frmEmpEdit.txtENo=""frmEmpEdit.txtName=""frmEmpEdit.txtIDCard=""frmEmpEdit.txtNativePlace=""frmEmpEdit.txtResidence=""frmEmpEdit.txtServiceLength=""frmEmpEdit.txtTele=""frmEmpEdit.txtMobile=""frmEmpEdit.txtEmail=""frmEmpEdit.txtAddress=""IsAdd=TruefrmEmpEdit.Show1EndSub5.5.2“修改”按钮的Click()过程点击修改按钮,弹出员工编辑界面,修改员工相关信息如图5-14:图5-14员工编辑图修改按钮代码如下:PrivateSubcmdModi_Click()IfadoEmployeeInfo.Recordset.EOFThenExitSubElseIfoptTable.ValueThen//文本框内容的添加frmEmpEdit.txtENo=adoEmployeeInfo.Recordset.Fields(0).ValuefrmEmpEdit.txtENo.Locked=TruefrmEmpEdit.txtName=adoEmployeeInfo.Recordset.Fields(1).ValuefrmEmpEdit.txtIDCard=adoEmployeeInfo.Recordset.Fields(9).ValueIfIsNull(adoEmployeeInfo.Recordset.Fields(10).Value)ThenfrmEmpEdit.txtResidence=""ElsefrmEmpEdit.txtResidence=adoEmployeeInfo.Recordset.Fields(10).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(11).Value)ThenfrmEmpEdit.txtNativePlace=""ElsefrmEmpEdit.txtNativePlace=adoEmployeeInfo.Recordset.Fields(11).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(15).Value)ThenfrmEmpEdit.txtServiceLength=""ElsefrmEmpEdit.txtServiceLength=adoEmployeeInfo.Recordset.Fields(15).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(17).Value)ThenfrmEmpEdit.txtTele=""ElsefrmEmpEdit.txtTele=adoEmployeeInfo.Recordset.Fields(17).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(18).Value)ThenfrmEmpEdit.txtMobile=""ElsefrmEmpEdit.txtMobile=adoEmployeeInfo.Recordset.Fields(18).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(19).Value)ThenfrmEmpEdit.txtEmail=""ElsefrmEmpEdit.txtEmail=adoEmployeeInfo.Recordset.Fields(19).ValueEndIfIfIsNull(adoEmployeeInfo.Recordset.Fields(20).Value)ThenfrmEmpEdit.txtAddress=""ElsefrmEmpEdit.txtAddress=adoEmployeeInfo.Recordset.Fields(20).ValueEndIf//下拉式列表框内容的添加IfTrim(adoEmployeeInfo.Recordset.Fields(3).Value)<>""ThenIfInCombo(adoEmployeeInfo.Recordset.Fields(3).Value,frmEmpEdit.cboSex)ThenfrmEmpEdit.cboSex.Text=Trim(adoEmployeeInfo.Recordset.Fields(3).Value)EndIfEndIfIfTrim(adoEmployeeInfo.Recordset.Fields(4).Value)<>""ThenIfInCombo(adoEmployeeInfo.Recordset.Fields(4).Value,frmEmpEdit.cboFolk)ThenfrmEmpEdit.cboFolk.Text=Trim(adoEmployeeInfo.Recordset.Fields(4).Value)EndIfEndIfIfTrim(adoEmployeeInfo.Recordset.Fields(5).Value)<>""ThenIfInCombo(adoEmployeeInfo.Recordset.Fields(5).Value,frmEmpEdit.cboMarry)ThenfrmEmpEdit.cboMarry.Text=Trim(adoEmployeeInfo.Recordset.Fields(5).Value)EndIfEndIfIfTrim(adoEmployeeInfo.Recordset.Fields(6).Value)<>""ThenIfInCombo(adoEmployeeInfo.Recordset.Fields(6).Value,frmEmpEdit.cboEducation)ThenfrmEmpEdit.cboEducation.Text=Trim(adoEmployeeInfo.Recordset.Fields(6).Value)EndIfEndIfIfTrim(adoEmployeeInfo.Recordset.Fields(7).Value)<>""ThenIfInCombo(adoEmployeeInfo.Recordset.Fields(7).Value,frmEmpEdit.cboParty)ThenfrmEmpEdit.cboParty.Text=Trim(adoEmployeeInfo.Recordset.Fields(7).Value)EndIfEndIf//时间内容的添加IfIsNull(adoEmployeeInfo.Recordset.Fields(8).Value)ThenfrmEmpEdit.dtpBirthday.Value=""ElseIfIsDate(adoEmployeeInfo.Recordset.Fields(8).Value)ThenfrmEmpEdit.dtpBirthday.Value=Format(adoEmployeeInfo.Recordset.Fields(8).Value,_"yyyy-mm-dd")EndIfEndIf//卡式的读取Else//文本框内容的添加frmEmpEdit.txtENo=adoDetail.Recordset.Fields(0).ValuefrmEmpEdit.txtENo.Enabled=FalsefrmEmpEdit.txtName=adoDetail.Recordset.Fields(1).ValuefrmEmpEdit.txtIDCard=adoDetail.Recordset.Fields(9).ValueIfIsNull(adoDetail.Recordset.Fields(10).Value)ThenfrmEmpEdit.txtResidence=""ElsefrmEmpEdit.txtResidence=adoDetail.Recordset.Fields(10).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(11).Value)ThenfrmEmpEdit.txtNativePlace=""ElsefrmEmpEdit.txtNativePlace=adoDetail.Recordset.Fields(11).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(15).Value)ThenfrmEmpEdit.txtServiceLength=""ElsefrmEmpEdit.txtServiceLength=adoDetail.Recordset.Fields(15).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(17).Value)ThenfrmEmpEdit.txtTele=""ElsefrmEmpEdit.txtTele=adoDetail.Recordset.Fields(17).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(18).Value)ThenfrmEmpEdit.txtMobile=""ElsefrmEmpEdit.txtMobile=adoDetail.Recordset.Fields(18).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(19).Value)ThenfrmEmpEdit.txtEmail=""ElsefrmEmpEdit.txtEmail=adoDetail.Recordset.Fields(19).ValueEndIfIfIsNull(adoDetail.Recordset.Fields(20).Value)ThenfrmEmpEdit.txtAddress=""ElsefrmEmpEdit.txtAddress=adoDetail.Recordset.Fields(20).ValueEndIf//下拉式列表框内容的添加IfIsNull(adoDetail.Recordset.Fields(3).Value)ThenfrmEmpEdit.cboSex.Text=""ElseIfInCombo(adoDetail.Recordset.Fields(3).Value,frmEmpEdit.cboSex)ThenfrmEmpEdit.cboSex.Text=Trim(adoDetail.Recordset.Fields(3).Value)EndIfEndIfIfNotIsNull(adoDetail.Recordset.Fields(4).Value)ThenIfInCombo(adoDetail.Recordset.Fields(4).Value,frmEmpEdit.cboFolk)ThenfrmEmpEdit.cboFolk.Text=Trim(adoDetail.Recordset.Fields(4).Value)EndIfEndIfIfNotIsNull(adoDetail.Recordset.Fields(5).Value)ThenIfInCombo(adoDetail.Recordset.Fields(5).Value,frmEmpEdit.cboMarry)ThenfrmEmpEdit.cboMarry.Text=Trim(adoDetail.Recordset.Fields(5).Value)EndIfEndIfIfNotIsNull(adoDetail.Recordset.Fields(6).Value)ThenIfInCombo(adoDetail.Recordset.Fields(6).Value,frmEmpEdit.cboEducation)ThenfrmEmpEdit.cboEducation.Text=Trim(adoDetail.Recordset.Fields(6).Value)EndIfEndIfIfNotIsNull(adoDetail.Recordset.Fields(7).Value)ThenIfInCombo(adoDetail.Recordset.Fields(7).Value,frmEmpEdit.cboParty)ThenfrmEmpEdit.cboParty.Text=Trim(adoDetail.Recordset.Fields(7).Value)EndIfEndIf//时间内容的添加IfIsNull(adoDetail.Recordset.Fields(8).Value)ThenfrmEmpEdit.dtpBirthday.Value=""ElseIfIsDate(adoDetail.Recordset.Fields(8).Value)ThenfrmEmpEdit.dtpBirthday.Value=Format(adoDetail.Recordset.Fields(8).Value,_"yyyy-mm-dd")EndIfEndIfEndIfIsAdd=FalsefrmEmpEdit.Show1EndIfEndSub//删除按钮PrivateSubcmdDel_Click()IfadoEmployeeInfo.Recordset.EOFThenExitSubElseDimisDelAsInteger//表式删除IfoptTable.ValueThenIfdtgEmployee.Text=""ThenMsgBox"请选择一条员工记录",vbInformation,"信息提示"ExitSubElseIfvbYes=MsgBox("是否删除所选择的记录",vbYesNo+vbInformation+vbD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论