工资管理系统_第1页
工资管理系统_第2页
工资管理系统_第3页
工资管理系统_第4页
工资管理系统_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

基于C#的人事工资管理系统第一章前言人的管理是一切管理工作的核心。员工代表一个公司的形象,因而人事管理机制设计的好坏,直接影响一个公司的成败。员工的工资管理是公司人事管理的基础,在公司员工普遍流失的今天,一个准确而及时的人事管理系统,有助于人事部门对员工流动进行分析、编制,为酒店所需人员提供了保障。人力资源部那些反复的,事务性的工作交给HRP(HumanResourcePlanning,人力资源管理系统)来解决,可以省去用户以往人力资源管理工作的繁琐、枯燥;用领先的人力资源管理理念,把人力资源管理的作业流程控制和战略规划设计巧妙地集合于一体;系统重点涉及到人力资源管理工作中的薪资、考勤、绩效、调动、基本信息、用户管理以及用户切换等方面,并有综合的系统安全设立、报表综合管理模块。可以很好地为用户的人力资源管理部门在对员工的成本管理、知识管理、绩效管理等综合管理给予帮助。以每月中所发工资为例,其中涉及考勤、人事信息变动、奖惩、迟到和旷工对本月的薪资计算都有影响,为了及时的计算发放工资往往要提前一个星期花费大量时间,加班加点才干及时完毕,而这样做无论从工作效率还是准确度方面,都不允许,并且还浪费大量的人力财力。假如改用HRP管理做到高效、高精度,还可以减少管理时带来的一些繁琐的工作,节约管理带来的开支。第二章.NET技术概述2023年七月在美国奥兰多举行的专业开发者大会上,微软公司展示了它最新的.NET体系,从多的发言人向大会介绍了.NET的特性和构成。从此,软件业界就开始掀起了一股“.NET”热潮。通过.NET,微软公司为人们提供了一种全新的开发平台,这个平台将推动以新体系为基础的协同WEB应用开发。微软公司推出VisualStudio.NET的目的就是要推动网络应用软件的开发,使用VisualStudio.NET开发系统可以编写最简朴的基于Windows的单层应用软件,也可以编写Windows下的客户/服务器多层应用软,无论是为了Windows还是为Web,VisualStudio都在各个层面上作了大量的工作。VisualStudio.NET与以往版本相比发生了巨大的变化,这种变化重要来自以下两个方面。一是语言自身的改善和.NET平台的建立。无论是在网络应用还是在本地应用上,都对各种语言做了许多改善,特别是用崭新的C#语言代替了J++。C#具有简捷、灵活、安全、面向对象和兼容性强等许多优点,是.NET中的旗帜语言。二是开发环境的重大改变。一方面,在一个开发环境中同时集成了VisualBasic、VisualC++、VisualC#和FoxPro。另一方面,开发环境的适应性大大增强了,合用于快速Web应用软件的开发,可以轻松地运用XML和WEB服务进行跨平台计算,也可以快速开发中间层商务组件。再次,调试功能增强了,它可以调试不同语言开发的应用程序,也可以调试工程,进程和存储过程。这些新特性使用户的开发效率有了大幅度的提高。正如微软公司首席执行管鲍尔默所说:“Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构。Microsoft.NET的策略是把因特网自身作为构建新一代操作系统的基础,将因特网和操作系统的设计思想合理延伸。VisualC#是微软公司为它的Microsoft.NET计划推出的核心编程语言。该语言几乎综合了目前所有编程语言系统的优点,并结合因特网的需要,增长了丰富的新特性和增强功能。VisualC#语言面向对象的设计,可以用来构建从高水平的商务目的到体系标准应用程序的范围宽广的组件。使用VisualC#语言,程序员可以迅速地建造提供充足开拓计算和通信的工具和服务的新的Microsoft.NET平台。C#语言的组成部分使用简朴的C#语言结构体,能被转化成WEB服务,允许人们通过Internet调用在任何操作系统上运营的任何语言。VisualC#语言作为一种编程语言,具有以下几个至关重要的特点:u兼容性;u灵活性;u简朴性;u面向对象;u类开安全;u版本控制;VisualC#具有C,C++语言的灵活性和VB语言开发效率高的特点,同时又是网络服务语言,体现了许多新的现代化开发技术。因此我们完毕底层平台的调用和底层平代码的控制,实现跨语言、跨平台的因特网远程调用、可以构建复杂的商务系统。第三章开发人事劳资管理系统的问题3.1人事劳资管理系统的简介人事劳资管理系统是针对商厦人事处的大量业务解决工作而开发的管理软件。根据用户的规定,实现人员基本情况管理、工资管理、和考勤管理。等几个方面的功能。用户通过输入工资、考勤、职工履历等基本信息,由系统自行生成相应的记录数据及各类记录报表以供用户查询、打印,此外用户还可以对这些基本信息进行定期的更新和删除,商厦人事劳资管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。3.2人事管理系统的用户需求·总体功能需求人事劳资管理系统是针对人事处的大量业务解决工作用计算机进行全面现代化管理.重要涉及人员基本情况管理、工资管理、和考勤管理。等几个方面的功能,以实现用户方便的输入、查询、记录、打印相关报表的业务需求。·具体系统功能需求描述(1)人员基本情况管理提供对”商厦人员履历表”数据输入、组合条件查询、记录、打印功能,实现”职工花名册”数据生成、查询、记录、打印功能。(2)职工工资管理提供对”商场职工工资表”数据的输入、查询、按商场记录、打印功能,完毕每月对“商场职工工资表”数据的月记录,以此生成“商场职工工资总额构成情况表”实现该表的查询、打印功能。实现每季由“商场职工工资总额构成情况表”生成“商厦职工工资总额季度汇总表”及该表的查询、打印功能。(3)职工考勤管理提供对各单位(商场)“月考勤登记表”数据的录入、查询、记录功能;根据“月考勤登记表”数据分单位按各种日考勤标志进行分类记录,且生成“商场职工月考勤登记表”,数据及“商厦职工月考勤记录汇总表”数据,实现该表的查询、打印功能。第四章商厦人事劳资管理系统的分析和设计4.1商厦人事劳资管理系统的分析和概要设计根据实际情况,我们使用原型法(RapidPrototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地拟定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具有的性质逐渐增长上去,直到所有的性质所有满足。此时模块也发展成为最终产品了。通过对用户需求的分析,我们可以分析出该商厦人事劳资管理系统大体可以分为四个模块:人员基本情况管理模块、职工工资管理模块、职工考勤管理模块、系统维护模块。下图说明四者的关系人事劳资管理系统人事基本情况管理模块职工工资管理模块职工考勤管理模块系统维护模块现在对这四个模块做具体说明:人事基本情况管理模块:输入:职工信息输出:“商厦人员履历表”“职工花名册”功能:对商厦人事基本信息的查询、记录和打印·职工工资管理模块输入:人员月工资输出:“商场职工工资表的月记录”,“商场职工工资总额构成表”及以“商厦职工工资总额季度汇总表”功能:完毕商厦员工工资的查询、记录和打印·职工考勤管理模块输入;员工每日考勤情况输出:“月考勤登计表”、“商场职工月考勤登记表”、“商厦职工月考勤登记表”功能:完毕对员工考勤情况的查询、根据日考勤标志进行分类记录及表的打印。·系统维护模块输入:输出:功能:完毕对系统数据和数据库的维护,如用户名、密码的更新,数据库数据的备份、恢复以及定期删除,尚有单位的编码化。4.2商厦人事劳资管理系统数据库设计由于考虑到本系统是应用在单机系统上,此外根据商厦人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表:·职工基本信息表employee_information_table·职工工资表employee_salary_table·职工考勤表employee_attendance_table·单位编码表company_code_table·系统信息表system_table此外,根据实际记录需要,我们此外建立两个登记表,用以存放部分登记表的信息以便查询。·职工工资登记表employee_salary_sum·职工考勤登记表employee_attendance_sum第五章系统模块的具体实现在本系统中有四个子模块组成。它们分别是员工基本信息模块、员工工资信息模块、员工考勤信息模块和系统维护模块,下面就开发这几个模块的过程及所碰到的问题分别加以介绍。5.1员工基本信息模块该模块重要完毕员工基本信息的录入、查询、记录及打印功能。在此模块中定义了三个重要窗口:员工花名册窗口、员工履历表信息窗口和组合条件查询窗口。后两者均需通过前者访问。员工花名册窗口中显示的是员工必要信息。可供用户浏览查询及以其记录为单位的操作。假如用户修改某一纪录中的某一项,可双击该条纪录进入员工履历表窗口,此窗口使用数据窗口的FREEDOM风格(典型的录入界面)。该种风格特点是列标题紧挨着数据列。在此窗口显示的是员工的具体资料,在此窗口还可以增长新员工纪录。该模块的第三个窗口是多条件查询窗口,在此窗口中应用了数据窗口这一智能化对象。所以多条件查询也就变得简朴起来,只要通过修改数据窗口的QUERYMODE属性。(DW_1.OBJECT.DATAWINDOW.QUERYMODE=“YES”)-用户只要输入组合条件,系统就会自动检索出数据,开发人员可以不用再编写冗长的SQL语句。从此一点就可以看出数据窗口的优越之处。由于数据库基本表与其它表之间的主键的特点,不方便使用外键来保持数据的一致性问题,所以要用手工操作的方法进行数据一致性的维护,重要应用在以下几个方面,职工工资表中加入和删除职工信息,职工考勤表中加入和删除职工信息,履历表中删除职工信息。在职工工资表中和在职工考勤表中加入职工信息时,用户不能任意的输入职工姓名,而是由系统提供专有的添加职工窗口,用于显示该单位花名册已有的职工名,而在职工工资表或职工考勤表中没有的职工名供用户选择,从而规定用户不能任意输入花名册以外的职工信息了,要加入新的职工信息必须先加入到花名册中去。这样就既保证数据库的数据的一致性,又防止了数据的冗余。在职工工资表中和在职工考勤表中删除职工信息时,为保持数据的一致性,就需要立刻重新计算记录量。此外,考虑到职工的编码可以唯一标示职工的单位,所以就对单位进行编码化,即职工编码的前三位唯一标示一个单位,这样就减少数据的冗余。5.2职工工资管理模块该模块是完毕对员工的工资信息的输入、查询、并以此进行记录生成“商场职工工资总额构成情况表”和“商厦职工工资总额季度汇总表”。此模块重要涉及三个窗口,工资录入窗口、商场职工工资总额记录构成和商厦职工工资总额记录窗口,后来两者均可通过第一个窗口的菜单项选择而进入。两个窗口“商场职工工资总额登记表”与“商厦职工工资总额登记表”的数据源均是从数据库EMPOYEE_SALARY表和EMPOYEE_SALARY_SUM表中选出。其功能涉及打印、预览。由于所打印的表大多很长,很难一个屏幕内放下,这就使得用户预览不到整体的效果。所以带两个窗口中均动态修改了数据窗口的放大倍数(DW_1.Modify("DataWindow.Zoom=50")),均以缩小百分之五十的面目出现。这就是用户可以一览打印表全貌,达成打印效果。此外,由于所规定输出的打印表是典型的中国式的表格而POWERBUILDER没有提供相应的风格,所以只有通过选择TABLUR风格的表格(该种风格允许数据列跨页或跨带显示,用户可以根据自己的需要重新组织安排这些数据),自行划线分组增长表头文字。以此达成用户打印表的规定。5.3员工考勤管理模块该模块完毕对职工考勤信息的输入和查询。并以此数据为基础生成“商场职工月考勤登记表”和“商厦职工月考勤记录汇总表”。此模块重要涉及三个窗口,考勤登记窗口、商场职工月考勤,商厦职工考勤记录窗口,后两者均可通过第一个窗口的菜单项选择而访问到。由于在模块中使用的方法和程序框图与职工工资管理模块大体相同,所以这里也就不一一列举了。5.4系统维护模块此模块除完毕数据的一般性维护如数据的恢复与备份、数据的定期删除,还提供了本系统的部分维护功能,如系统的初始化,(该项功能将删除数据库中所有数据,所以仅在系统初始生成时使用)此外尚有密码的修改和单位编码。下面就数据维护和单位编码分别进行一下讨论。尽管系统中采用各种保护措施来防止数据的安全性和完整性的破坏,但由于计算机系统中硬件的故障、软件的错误、操作员的失误以及故意的破坏,问题仍然是不可避免的,并且这些故障轻则导致运营事务非正常中断,影响数据库中数据的对的性,重则破坏数据库,使数据库中所有或部分数据丢失。因此作为一个完整的管理信息系统,数据的备份和恢复当然是少不了的,在这里我们使用数据窗口提供的SAVEAS()函数和IMPORT()函数分别作为数据的备份和恢复,要声明的是在这个过程中我们把指定的文献名设为NULL。以便使系统弹出公共对话框由用户选择文献名和保存途径以及保存格式,这给用户提供了更大的自由度,当然,也带来了一些问题。例如,假如用户选择的保存格式为TEXTWITHHEADERS时(即含表头的文献格式),在恢复过程中就会报错,所以这点在帮助的文档中特别加以注明。至于单位编码问题,重要是为了减少数据库冗余,由于根据用户需求职工编码的前三位就唯一标记单位,所以就在系统维护中特别添加此项。在开发此过程中碰到不少困难,例如在用户修改编码时,假如不保存原有的编码就无法更新职工编码,就导致数据丢失,为解决这一问题就做了以下的工作:一方面在修改后保存前先把数据库编码(待改编码)保存起来,然后把修改后的编码(尚未保存编码)从数据缓冲区中取出,然后以待改编码为检索条件。检索出职工编码,修改成新的编码,最后保存起来。第六章系统开发的其他方面在这一节中,我们重要讨论了两个问题,一个是系统的联机文档,另一个是系统的测试,下面我们分别加以说明。作为一个完整的系统,联机文档是其中不可缺少的部分也是相称重要的部分。好的文档可以使用户快速了解并准确的使用系统的各项功能。减少误操作,减少错误产生的也许,这对用户和开发人员都有很多的好处。所以在开发本系统中,也加入了不少的文档,除了对于四大模块的具体说明外,对于易犯错和不易操作的地方(如多条件查询部分)又作了具体的说明。由于程序员自身能力的局限性,所以做编写的代码,即使通过反复检查也难免犯错所以在本阶段力求使用有限的时间找出尽也许多的错误,力求系统尽量对的。我们在本系统的测试中使用了黑盒法(即不关心程序内部的逻辑结构,而是根据程序的功能来设计是检测)请一位不熟悉本系统的人来进行随意性的操作,打破习惯的操作顺序,从中发现错误,在此阶段系统的大量错误得到了改善。第七章性能规定一个合理的HRP管理软件必须具有以下功能:信息管理考勤管理薪资管理变动管理奖惩管理用户管理系统安全综合报表权限管理7.1档案信息管理:公司人事档案管理信息化模块;具有快速、无限量员工数据输入及保存功能;由特定权限的管理员统一管理员工档案。对员工从进入公司开始直至离职的整个过程进行人面管理,档案信息涉及,职工编号,职工姓名,出生年月,职工学历,定期检查更新员工信息,具有权限的使用者可以登记、查询、修改、记录部门信息、岗位设立情况。并且可以根据一定条件查询后浏览各项记录,并可以进得相应的操作。u个人资料录入,建立公司人事档案数据库。u个人资料维护,更新,删除数据库记录。u个人资料查询(按员工编号查询,按员工姓名查,按员工学历查询,按所属部门查询)。u屏幕显示员工照片。u分类打印。u信息浏览。7.2考勤管理:公司考勤管理信息化模块;记录员工上下班、加班、出、缺勤时间;可将考勤数据轻松解决,并连至薪资计算系统,以便作薪资结算;公司还可根据此考勤系统查询公司内各时段的员工出、缺勤状况,作管理方面的分析;提供了全面的考勤管理。u录入数据,对员工每一天的考勤都能动态添加,与薪资系统直接无缝集成。u更新数据,可以对员工的考勤信息做出更新,以便于记录更准确的数据。u删除数据,可以对数据的冗余信息及时清理,及时清理数据库。u查询数据,可对特定员工的特定月份进行查询,这对人事管理都及时了考勤信息是很重要的。u报表分析,报表分析可以实现对特定职工的考勤信息进行记录,并实现打印功还可以实现对所有员工的考勤信息进行记录,对比,可以帮助人力资源管理都,省时,省力,准确地记录本公司员工的考勤信息。u右键功能:并提供了方便,强大的右键功能,可以方便地实现对数据进行更新,添加删除操作,执行添加操作时,考勤编号由系统自动生成,为了更能体现交互性,管理者也可以对职工编号进行改变,更新操作,当选取一项记录后执行更新操作,相应的数据将全都显示出来,操作者只需对特定的信息加修改,然后提交即可,在很大程序上减轻了操作者的工作量,真正体现本系统的省时,省力之功效。7.3薪资管理:公司成本核算信息化模块;符合国家薪资管理制度规定。u薪资录入:与考勤系统直接集成,无缝数据接口问题,薪资编号也由系统自动生成,财务人员也可以对编号进行更改,财务人员只需输入员工编号,并选择薪资日期,以下的信息都会由系统自动填充,由于信息都实现了与职工基本信息,奖惩管理,考勤管理无缝连接,所以由系统生成的数据都是不能修改的,这在很大程序上可以保证薪资数据信息的安全,准确。u薪资浏览:插入记录,实现与薪资录入系统的连接,可以更方便地执行录入操作,删除记录,可以从窗体上方的浏览窗口中选取数据前执行操作,打印所有,实现对全体员工薪资资料实现打印,保存,打印预览,对于有权限的操作者可以选定特定的职工后,执行薪资支付操作,生成支会表单,前可以实现打印功能,u制度设立:u具有权限的操作者可以根据公司制度的变化,对于迟到,加班,出差,旷工等的具体奖励,还是处罚标准可以灵活地进行动态变更,7.4绩效考核:公司员工考核规范化模块;可对员工在公司的不同就职时间段作绩效考评记录;实现公司员工考核信息的录入,(按职工编号,按奖惩编号)分类查询,并可以对无用的信息资料执行删除操作,及时清理数据库。7.5系统安全:对于一个成功的人事管理系统来说,系统安全是非常重要的,由系统管理员或系统管理员授权的超级用户对系统进行管理维护;保证人力资源记录及工资数据等资料的高度保密,防止秘密数据外传和程序遭破坏,每个使用者有各自的密码进入系统;用户可以在受权的范围内自由更改密码;对于有具有一定权限的用户可以任意修改其它用户的密码。依据工作需要由管理员分派系统操作权限。7.6报表分析:一个完善的人事管理系统必须具有报表分析功能,对一特定的数据进行分析,实现打印功能,对数据资料进行保护。7.7用户管理和用户切换:由于在操作过程序中有些用户也许要更改自己的权限,假如系统数据库有相应的个人用户资料,他就可以进行用户切换,来提高或减少自己的操作权限。要限比较低的用户只能修改自己的密码,而高级用户则可以添加,删除,更新其它用户,提高系统安全性。第八章系统功能简介8.1登录窗体:提供安全的管理机制,进入系统时要输入用户名,密码,并选取类别,只有三项所有与数据库记录相符后才干进入系统,系统对用户的登陆信息进行记录,只有有特定权限的用户才干执行相应的操作,控制系统安全。如图(1-1)所示:图(1-1)登陆验证的代码:stringsel="selectuser_pass,user_typefromTheUserwhereuser_name='"+this.textBox1.Text.ToString().Trim()+"'";stringdata="none";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);try{this.sqlConnection1.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){stringpas=reader[0].ToString().Trim();stringleibie=reader[1].ToString().Trim();data="some";stringpas1=this.textBox2.Text.ToString().Trim();stringleibie1=boBox1.Text.ToString().Trim();if(pas1==pas&&leibie1==leibie){this.islogin=true;ManageInfo.Employerleixing=leibie1;ManageInfo.Employername=this.textBox1.Text.ToString().Trim();ManageInfo.Employermima=pas1;this.Close();break;}else{MessageBox.Show("输入信息有误,请重新输入","提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);}}reader.Close();this.sqlConnection1.Close();if(data!="some"){MessageBox.Show("没有相应的用户信息,请查证后重新输入","错误提醒",MessageBoxButtons.OK,MessageBoxIcon.Error);}}catch(Exceptionee){MessageBox.Show(ee.Message);this.sqlConnection1.Close();}Main();loginlog=newlogin();log.ShowDialog();if(log.islogin==true){Application.Run(newForm1());}8.2可操作部分涉及:职工档案管理、职工考勤管理、职工奖惩管理、职工工资管理,工作调动管理等四大部分组成,如图(2):以及附加更改密码,和更换用户功能,其界面如图(1-2):图(1-2)u职工档案管理,提供录入、查询、修改、删除和记录功能。职工档案信息录入系统如图:其中员工编号由系统自动生成,操作者也可以通过点击后面的按钮来执行编号加一操作。如图(1-3)所示:图(1-3)实现编号加一操作的代码:intnum=System.Int32.Parse(this.textid.Text.ToString().Trim());++num;this.textid.Text=num.ToString().Trim();u员工信息浏览,更新,修改,删除,以及打印操作,操作者可以通过点击左边的树形控件浏览选定职工的信息,也可以通过选择查询条件(按员工编号查询,按员工姓名查询,按员工学历查询,按所属部门查询)并输入查询条件后查询显示,然后执行相应的操作,如图(1-4)所示:图(1-4)实现窗体中树形控件节点动态绘制功能的代码为://此函数功能是实现树的重新描绘,描绘时清除本来的树this.treeView1.Nodes.Clear();//先从部门表中读取部门信息,添加为该树的根结点//读取方法是,用数据集的形式,循环读入this.sqlSelectCommand1.CommandText="Select*fromDepartment";this.dataSet31.Clear();this.sqlConnection1.Open();try{this.sqlDataAdapter1.Fill(this.dataSet31,"Department");}catch(Exceptionaa){MessageBox.Show(aa.Message);this.sqlConnection1.Close();}this.sqlConnection1.Close();DataTablemyDataTable1=this.dataSet31.Tables["Department"];foreach(DataRowmyDataRow1inmyDataTable1.Rows){//以下方法程序段实现的是在树形控件中添加根节点TreeNodetreeNode1=newTreeNode();treeNode1.Text=myDataRow1["Eminfo_jobdept"].ToString().Trim();this.treeView1.Nodes.Add(treeNode1);stringsel=treeNode1.Text;//以下方法程序段实现的是在树形控件的根节点下面添加子节点this.sqlSelectCommand2.CommandText="SELECTEminfo_id,Eminfo_name,Eminfo_jobdeptFROMEmployerinfoWHEREEminfo_jobdept='"+sel+"'";this.dataSet41.Clear();this.sqlConnection1.Open();//this.sqlSelectCommand1.ExecuteNonQuery();this.sqlDataAdapter2.Fill(this.dataSet41,"Employerinfo");this.sqlConnection1.Close();DataTablemyDataTable2=this.dataSet41.Tables["Employerinfo"];foreach(DataRowmyDataRowinmyDataTable2.Rows){TreeNodetreeNode=newTreeNode();treeNode.Text=myDataRow["Eminfo_name"].ToString().Trim();treeNode1.Nodes.Add(treeNode);}}u用户执行分类打印的操作如图:可以打印所有,还可以按部门打印职工的基本信息;在一定程序上提高了程序与操作者之间的交互性。如图(1-5)所示:图(1-5)8.3工作调动解决:可解决员工在部门内、部门之间的工作职务调动。员工调入、调出本单位解决等。对于本子系统,也由系统自动后成编号,操作者只需输入职工编号,和需要调往的部门或职位,,此外要选择事件发生的时间,其余的信息都由系统自动生成,用户也可以对职工的调动信息进行预览,删除等操作,自动生成职位变动编号代码为:stringsel="selectcount(*)fromEmposchange";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);try{this.sqlConnection1.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){stringdate=System.DateTime.Now.Year.ToString();this.textBox4.Text=date+reader[0].ToString().Trim().PadLeft(2,'0');}reader.Close();this.sqlConnection1.Close();}catch(Exceptionee){this.sqlConnection1.Close();MessageBox.Show(ee.Message);}子系统执行界面如图(1-6)所示:图(1-6)当焦点进入职工姓名后的编辑框后实现实动填充信息的代码为:if(this.textBox5.Text=""){MessageBox.Show("你没有输入相应编号的职工,请查证后输入以显示对的信息");}else{stringsel="SelectEminfo_name,Eminfo_jobpositfromEmployerinfowhereEminfo_id='"+this.textBox5.Text.ToString().Trim()+"'";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);this.sqlConnection1.Open();try{SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){this.textBox6.Text=reader[0].ToString().Trim();this.textBox8.Text=reader[1].ToString().Trim();}reader.Close();this.sqlConnection1.Close();}catch(Exceptionee){this.sqlConnection1.Close();MessageBox.Show(ee.Message);}}8.4奖惩管理子系统:可解决员工在本月份职工奖惩信息的录入(涉及考评记录,以及金额等,)以及删除功能,此子系统将与薪资管理系统无缝接合,实现薪资数据的自动化添加。如图(1-7)所示:图(1-7)职工奖惩信息录入的代码为:this.sqlConnection1.Open();this.sqlDataAdapter1.Fill(this.emre1,"Emre");this.sqlConnection1.Close();DataRowmyDataRow1=this.emre1.Tables["Emre"].NewRow();try{myDataRow1["Emreinfo_num"]=this.textBox1.Text;myDataRow1["Eminfo_id"]=this.textBox2.Text;myDataRow1["Emreinfo_date"]=byear.Text.ToString().Trim()+bomont.ToString().Trim();myDataRow1["Emreinfo_resco"]=this.textBox3.Text;myDataRow1["Emreinfo_punsco"]=this.textBox4.Text;myDataRow1["Emreinfo_punmon"]=this.textBox5.Text;myDataRow1["Emreinfo_remon"]=this.textBox6.Text;this.emre1.Tables["Emre"].Rows.Add(myDataRow1);this.sqlDataAdapter1.Update(this.emre1,"Emre");MessageBox.Show("录入数据成功");}catch(Exceptionee){MessageBox.Show(ee.Message);this.sqlConnection1.Close();}8.5考勤管理:本子系统实现了自动生成编号,实实现考勤信息的录入,更新,删除功能。本系统也提供最一定功能的右键功能,操作都可以选取一定的记录后执行相应的操作,假如是执行更新信息操作,则所选项的信息资料将在窗体下方的编辑框中显示,有权限的操作者只需填写相应更新的项后就可以执行更新操作,在很大程序上减少操作者的工作量。如图(1-8)所示:图(1-8)为了防止提高系统的安全性,在该窗体打开时对用户的权限做了如下规定:if(ManageInfo.Employerleixing=="一般职工"||ManageInfo.Employerleixing=="财务人员"){this.button1.Enabled=false;this.button5.Enabled=false;this.button8.Enabled=false;this.button6.Enabled=false;}else{}this.sqlConnection2.Open();this.sqlDataAdapter1.Fill(this.emattendmanage1,"Emattendinfo");this.sqlConnection2.Close();实现数据录入的代码为:DataTablemyDataTable=this.emattendmanage1.Tables["Emattendinfo"];DataRowmyDataRow=myDataTable.NewRow();myDataRow["Emattend_num"]=this.textBox1.Text.ToString().Trim();myDataRow["Eminfo_id"]=this.textBox2.Text.ToString().Trim();myDataRow["Emattend_month"]=boBox1.Text.ToString().Trim()+"-"+boBox2.Text.ToString().Trim();myDataRow["Emattend_late"]=Convert.ToInt16(this.textBox3.Text);myDataRow["Emattend_abs"]=System.Double.Parse(this.textBox4.Text);myDataRow["Emattend_even"]=System.Double.Parse(this.textBox5.Text);myDataRow["Emattend_jiab"]=System.Convert.ToInt16(this.textBox6.Text);myDataRow["Emattend_matt"]=Convert.ToInt16(this.textBox7.Text);myDataTable.Rows.Add(myDataRow);try{this.sqlDataAdapter1.Update(this.emattendmanage1,"Emattendinfo");MessageBox.Show("录入数据成功");FillData();}catch(Exceptionee){MessageBox.Show(ee.Message);This.SqlConnection.Close();}ListView控件的数据添加代码为:this.listView1.Items.Clear();stringsel="Select*fromEmattendinfo";SqlCommandcom=newSqlCommand(sel,this.sqlConnection2);this.sqlConnection2.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){ListViewItemitem=newListViewItem();item.SubItems[0].Text=reader[0].ToString().Trim();item.SubItems.Add(reader[1].ToString().Trim());item.SubItems.Add(reader[2].ToString().Trim());item.SubItems.Add(reader[3].ToString().Trim());item.SubItems.Add(reader[4].ToString().Trim());item.SubItems.Add(reader[5].ToString().Trim());item.SubItems.Add(reader[6].ToString().Trim());item.SubItems.Add(reader[7].ToString().Trim());this.listView1.Items.Add(item);}reader.Close();this.sqlConnection2.Close();}执行右键删除考勤信息的代码为:if(this.listView1.Items.Count<1){MessageBox.Show("请你先中一项记录后再执行相应的操作");}elseif(MessageBox.Show("您拟定要删除选定的记录吗?","删除记录",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes){stringsel=this.listView1.SelectedItems[0].SubItems[0].Text.ToString().Trim();stringdel="deletefromEmattendinfowhereEmattend_num='"+sel+"'";SqlCommandcom=newSqlCommand(del,this.sqlConnection2);try{this.sqlConnection2.Open();com.ExecuteNonQuery();MessageBox.Show("成功删除数据");FillData();this.sqlConnection2.Close();}catch(Exceptionee){MessageBox.Show(ee.Message);This.sqlConnection2.Close();}}实现更新考勤信息的代码为:DataTablemyDataTable=this.emattendmanage1.Tables["Emattendinfo"];myDataTable.PrimaryKey=newDataColumn[]{myDataTable.Columns["Emattend_num"]};stringfind=this.textBox1.Text.ToString().Trim();DataRowmyDataRow=myDataTable.Rows.Find(find);myDataRow["Emattend_num"]=this.textBox1.Text.ToString().Trim();myDataRow["Eminfo_id"]=this.textBox2.Text.ToString().Trim();myDataRow["Emattend_month"]=boBox1.Text.ToString().Trim()+"-"+boBox2.Text.ToString().Trim();myDataRow["Emattend_late"]=Convert.ToInt16(this.textBox3.Text);myDataRow["Emattend_abs"]=System.Double.Parse(this.textBox4.Text);myDataRow["Emattend_even"]=System.Double.Parse(this.textBox5.Text);myDataRow["Emattend_jiab"]=System.Convert.ToInt16(this.textBox6.Text);myDataRow["Emattend_matt"]=Convert.ToInt16(this.textBox7.Text);try{this.sqlDataAdapter1.Update(this.emattendmanage1,"Emattendinfo");MessageBox.Show("你已经成功实现了数据更新操作");FillData();}catch(Exceptionee){MessageBox.Show(ee.Message);}本系统还提供一项分打报表功能是,假如操作在右边的职工编号中没有输入数据,则系统将记录分析所有职工的考勤信息,如图(1-9)所示:如图(1-9)假如输入的确存在的职工信息,奖会显示该职工的本月份考勤记录报表,可以实现打印操作。如图(1-10)所示:图(1-10)打开Emattendbaobiao时的代码为:Emattendmanman=newEmattendman();man.sqlConnection2.Open();man.sqlSelectCommand1.CommandText=ManageInfo.Emattendsel;man.sqlDataAdapter1.Fill(man.emattendmanage1,"Emattendinfo");man.sqlConnection2.Close();EmattendReport1rep=newEmattendReport1();rep.SetDataSource(man.emattendmanage1);this.crystalReportViewer1.ReportSource=rep;8.6薪资管理:对职工的工资信息进行管理。薪资录入:此子系统实现了薪资的录入,涉及奖惩查询,考勤查询,以及工资计算等,此过程都实现时填充了所选月份的的奖惩记录,考勤记录,打开窗体后系统自动生成薪资录入编号,财务人员也可以通过点击后面的“+”按钮实现薪资编号加一操作。如图(1-11)所示:图(1-11)考勤查询的代码为:if(this.textid.Text==""||this.textnum.Text==""||byear.Text==""||bomont.Text==""){MessageBox.Show("请你注意选好职工编号,工资编号,工资月份后再执得相应的操作","提醒",MessageBoxButtons.OK,MessageBoxIcon.Warning);}else{FindName();EmattendSel();}另附两个函数:FindName();stringid=this.textid.Text.ToString().Trim();stringsel="SelectEminfo_name,Eminfo_salarysortfromEmployerinfowhereEminfo_id='"+id+"'";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);try{this.sqlConnection1.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){this.textname.Text=reader[0].ToString().Trim();this.textbasic.Text=reader[1].ToString().Trim();}reader.Close();this.sqlConnection1.Close();}catch(Exceptionee){this.sqlConnection1.Close();MessageBox.Show(ee.Message);}EmattendSel()stringid=this.textid.Text.ToString().Trim();stringmonth=byear.Text.ToString().Trim()+"-"+bomont.Text.ToString().Trim();stringsel="selectsum(Emattend_late),sum(Emattend_abs),sum(Emattend_even),sum(Emattend_jiab)"+"fromEmattendinfowhereEminfo_id='"+id+"'ANDEmattend_month='"+month+"'";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);this.sqlConnection1.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){if(reader[0].ToString().Trim()!=""){stringlate=reader[0].ToString().Trim();stringabs=reader[1].ToString().Trim();stringeven=reader[2].ToString().Trim();stringjiab=reader[3].ToString().Trim();doublejia=System.Double.Parse(ManageInfo.EmSalaryjia);doubleeve=System.Double.Parse(ManageInfo.EmSalaryeve);doublelat=System.Double.Parse(ManageInfo.EmSalarylat);doubleabss=System.Double.Parse(ManageInfo.EmSalaryabs);doublelate1=System.Double.Parse(late)*lat;doubleabs1=System.Double.Parse(abs)*abss;doubleeven1=System.Double.Parse(even)*eve;doublejiab1=System.Double.Parse(jiab)*jia;this.texteve.Text=even1.ToString().Trim();this.textjia.Text=jiab1.ToString().Trim();this.textabs.Text=abs1.ToString().Trim();this.textlate.Text=late1.ToString().Trim();}else{this.texteve.Text="0";this.textjia.Text="0";this.textabs.Text="0";this.textlate.Text="0";}}reader.Close();this.sqlConnection1.Close();奖惩查询的代码为:stringid=this.textid.Text.ToString().Trim();stringmonth=byear.Text.ToString().Trim()+"-"+bomont.Text.ToString().Trim();stringsel="selectsum(Emreinfo_remon),sum(Emreinfo_punmon)fromEmreinfowhereEminfo_id='"+id+"'ANDEmreinfo_date='"+month+"'";SqlCommandcom=newSqlCommand(sel,this.sqlConnection1);this.sqlConnection1.Open();SqlDataReaderreader=com.ExecuteReader();while(reader.Read()){if(reader[0].ToString().Trim()!=""){stringremon=reader[0].ToString().Trim();stringpunmon=reader[1].ToString().Trim();doubleremon1=System.Double.Parse(remon);doublepunmon1=System.Double.Parse(punmon);this.textre.Text=remon1.ToString().Trim();this.textpun.Text=punmon1.ToString().Trim();}else{this.textre.Text="0";this.textpun.Text="0";}}reader.Close();this.sqlConnection1.Close();薪资浏览:功能涉及(插入记录,刷新记录,删除记录,打印所有,工资支付等)界面如图:工资支付的代代码为:if(this.listView1.SelectedItems.Count<1){MessageBox.Show("请你选择一个员工后,再进行相应的操作","提醒",MessageBoxButtons.OK,MessageBoxIcon.Warning);}else{SalaryClass.Eminfosal_num=this.listView1.SelectedItems[0].SubItems[1].Text;SalaryClass.Eminfosal_name=this.listView1.SelectedItems[0].SubItems[2].Text;SalaryClass.Eminfosal_money=this.listView1.SelectedItems[0].SubItems[11].Text;SalaryClass.salarydate=this.listView1.SelectedItems[0].SubItems[12].Text;Salaryzhifuzhifu=newSalaryzhifu();zhifu.Show();this.listView1.SelectedItems[0].Selected=false;}插入记录实现与录入窗体的链接,u删除记录:当操作者选取一项一记录后,执行删除操作,确认删除后就可以从数据库中删除相应的记录;u打印所有:实现对所有职工工资具体信息的报表打印操作。如图(1-12)所示:(1-12)u工资支付:操作者选定一条记录后,将打开工资支付窗体。系统自动生成职工工资支付表单信息,假如该员工的工资没有支付,将会弹出该员工工资已支付过的对话话,如图(1-13)所示:图(1-13)当Salaryzhifu窗体打开后实现信息自动填充的代码为:this.labname.Text=SalaryClass.Eminfosal_name;this.labmon.Text=SalaryClass.Eminfosal_money;this.labnum.Text=SalaryClass.Eminfosal_num;this.labyear.Text=SalaryClass.salarydate.Substring(0,4);this.labmonth.Text=SalaryClass.salarydate.Substring(5,2);this.labman.Text=ManageInfo.Employername;stringsel1="selectgetdate()";this.sqlConnection1.Open();SqlCommandcom1=newSqlCommand(sel1,this.sqlConnection1);thedate=(DateTime)com1.ExecuteScalar();this.sqlConnection1.Close();this.labdate.Text=thedate.Year.ToString().Trim()+"-"+thedate.Month.ToString().Trim()+"-"+thedate.Day.ToString().Trim();this.labno.Text=SalaryClass.salarydate.Substring(0,4)+SalaryClass.salarydate.Substring(5,2)+this.labnum.Text.ToString().Trim();SalaryClass.salaryzhino=this.labno.Text;否则的话将弹出工员工资支付表单的打印报表并把工资支付信息填充到数据库中。如图(1-14)所示:图(1-14)制度设立:为了使系统更具灵活性,又加入了工资设立功能,重要是具有权限的操作者可以根据公司制度的变化,对于迟到,加班,出差,旷工等的具体奖励,还是处罚标准可以灵活地进行变更,在一定程序上适合公司发展的需要。执行界面如图(1-15)图(1-15)8.7系统相关u更改密码:依据用户权限的不同,将有两种用户管理的界面:图(1),图(2)假如用户类别是人力资源管理者,或者是人力资源主管理。将出现界面(1)否则为界面(2);图(1)注册的代码为:stringinsert="INSERTINTOTheUser(user_name,user_pass,user_type)VALUES('"+this.textBox1.Text.ToString().Trim()+"','"+this.textBox2.Text.ToString().Trim()+"','"+boBox1.Text.ToString().Trim()+"')";SqlCommandcom=newSqlCommand(insert,this.sqlConnection1);try{this.sqlConnection1.Open();com.ExecuteReader();MessageBox.Show("注册用户成功","提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);this.textBox1.Text="";this.textBox2.Text="";boBox1.Text="";this.sqlConnection1.Close();}catch(Exceptionee){this.sqlConnection1.Close();MessageBox.Show(ee.Message);}更新的代码为:stringupdate=null;if(ManageInfo.Employerleixing=="财务人员"||ManageInfo.Employerleixing=="一般职工"){if(this.textBox1.Text.ToString().Trim()==ManageInfo.Employermima&&this.textBox2.Text.ToString().Trim()!=this.textBox3.Text.ToString().Trim()){MessageBox.Show("你输入的信息错误,请拟定密码对的,并且两次密码一致","错误",MessageBoxButtons.OK,MessageBoxIcon.Stop);}else{update="updateTheUsersetuser_pass='"+this.textBox2.Text.ToString().Trim()+"'whereuser_name='"+ManageInfo.Employername+"'";}}else{if(this.textBox1.Text.ToString().Trim()==""||this.textBox2.Text.ToString().Trim()==""||boBox1.Text.ToString().Trim()==""){MessageBox.Show("请你输入完整的信息后再执行操作");}else{update="UPDATETheUserSETuser_name='"+this.textBox1.Text.ToString().Trim()+"',user_pass='"+this.textBox2.Text.ToString().Trim()+"',"+"user_type='"+boBox1.Text.ToString().Trim()+"'whereuser_name='"+this.textBox1.Text.ToString().Trim()+"'";}}SqlCommandcom=newSqlCommand(update,this.sqlConnection1);try{this.sqlConnection1.Open();com.ExecuteReader();MessageBox.Show("用户资料更新成功","提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);this.textBox1.Text="";this.textBox2.Text="";this.textBox3.Text="";this.sqlConnection1.Close();}catch(Exceptione

温馨提示

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

评论

0/150

提交评论