1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。基于C#的人事工资管理系统第一章 前言人的管理是一切管理工作的核心。员工代表一个企业的形象, 因而人事管理机制设计的好坏, 直接影响一个企业的成败。员工的工资管理是企业人事管理的基础, 在企业员工普遍流失的今天, 一个准确而及时的人事管理系统, 有利于人事部门对员工流动进行分析、 编制, 为酒店所需人员提供了保障。人力资源部那些重复的, 事务性的工作交给HRP(Human Resource Planning,人力资源管理系统)来解决, 能够省去用户以往人力资源管理工作的繁琐、 枯燥; 用领先的人力资源管理理念, 把人力资源管理的作业流程
2、控制和战略规划设计巧妙地集合于一体; 系统重点涉及到人力资源管理工作中的薪资、 考勤、 绩效、 调动、 基本信息、 用户管理以及用户切换等方面, 并有综合的系统安全设置、 报表综合管理模块。能够很好地为用户的人力资源管理部门在对员工的成本管理、 知识管理、 绩效管理等综合管理给予帮助。以每个月中所发工资为例, 其中包括考勤、 人事信息变动、 奖惩、 迟到和旷工对本月的薪资计算都有影响, 为了及时的计算发放工资往往要提前一个星期花费大量时间, 加班加点才能及时完成, 而这样做无论从工作效率还是准确度方面, 都不允许, 而且还浪费大量的人力财力。如果改用HRP管理做到高效、 高精度, 还能够减少管
3、理时带来的一些繁琐的工作, 节约管理带来的开支。第二章 .NET技术概述 七月在美国奥兰多举行的专业开发者大会上, 微软公司展示了它最新的.NET体系, 从多的发言人向大会介绍了.NET的特征和构成。从此, 软件业界就开始掀起了一股”.NET”热潮。经过.NET, 微软公司为人们提供了一种全新的开发平台, 这个平台将推动以新体系为基础的协同WEB应用开发。微软公司推出Visual Studio.NET 的目的就是要推进网络应用软件的开发, 使用Visual Studio.NET开发系统能够编写最简单的基于Windows的单层应用软件, 也能够编写Windows下的客户/服务器多层应用软, 无论
4、是为了Windows还是为Web , Visual Studio都在各个层面上作了大量的工作。Visual Studio.NET与以往版本相比发生了巨大的变化, 这种变化主要来自以下两个方面。一是语言本身的改进和.NET平台的建立。无论是在网络应用还是在本地应用上, 都对各种语言做了许多改进, 特别是用崭新的C#语言代替了J+。C#具有简捷、 灵活、 安全、 面向对象和兼容性强等许多优点, 是.NET中的旗帜语言。二是开发环境的重大改变。首先, 在一个开发环境中同时集成了Visual Basic、 Visual C+、 Visual C#和FoxPro。其次, 开发环境的适应性大大增强了, 适
5、用于快速Web应用软件的开发, 能够轻松地运用XML和WEB服务进行跨平台计算, 也能够快速开发中间层商务组件。再次, 调试功能增强了, 它能够调试不同语言开发的应用程序, 也能够调试工程, 进程和存储过程。这些新特性使用户的开发效率有了大幅度的提高。正如微软公司首席执行管鲍尔默所说: ”Microsoft.NET代表了一个集合、 一个环境、 一个能够作为平台支持下一代Internet的可编程结构。Microsoft.NET的策略是把因特网本身作为构建新一代操作系统的基础, 将因特网和操作系统的设计思想合理延伸。Visual C#是微软公司为它的Microsoft.NET计划推出的核心编程语言
6、。该语言几乎综合了当前所有编程语言系统的优点, 并结合因特网的需要, 增加了丰富的新特性和增强功能。Visual C#语言面向对象的设计, 能够用来构建从高水平的商务目标到体系标准应用程序的范围宽广的组件。使用Visual C#语言, 程序员能够迅速地建造提供充分开拓计算和通信的工具和服务的新的Microsoft.NET平台。C#语言的组成部分使用简单的C#语言结构体, 能被转化成WEB服务, 允许人们经过Internet调用在任何操作系统上运行的任何语言。Visual C#语言作为一种编程语言, 具有以下几个至关重要的特点: u 兼容性; u 灵活性; u 简单性; u 面向对象; u 类开
7、安全; u 版本控制; Visual C#具有C,C+语言的灵活性和语言开发效率高的特点, 同时又是网络服务语言, 体现了许多新的现代化开发技术。因此我们完成底层平台的调用和底层平代码的控制, 实现跨语言、 跨平台的因特网远程调用、 能够构建复杂的商务系统。第三章 开发人事劳资管理系统的问题3.1人事劳资管理系统的简介人事劳资管理系统是针对商厦人事处的大量业务处理工作而开发的管理软件。根据用户的要求, 实现人员基本情况管理、 工资管理、 和考勤管理。等几个方面的功能。用户经过输入工资、 考勤、 职工履历等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查询、 打印,另外用户还能够对
8、这些基本信息进行定期的更新和删除, 商厦人事劳资管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。3.2人事管理系统的用户需求总体功能需求人事劳资管理系统是针对人事处的大量业务处理工作用计算机进行全面现代化管理.主要包括人员基本情况管理、 工资管理、 和考勤管理。等几个方面的功能,以实现用户方便的输入、 查询、 统计、 打印相关报表的业务需求。具体系统功能需求描述(1) 人员基本情况管理提供对”商厦人员履历表”数据输入、 组合条件查询、 统计、 打印功能,实现”职工花名册”数据生成、 查询、 统计、 打印功能。(2) 职工工资管理提供对”商场职工工资表”数据的输入、 查询、 按商场统计、
9、打印功能,完成每月对”商场职工工资表”数据的月统计,以此生成”商场职工工资总额构成情况表”实现该表的查询、 打印功能。实现每季由”商场职工工资总额构成情况表”生成”商厦职工工资总额季度汇总表”及该表的查询、 打印功能。(3) 职工考勤管理提供对各单位(商场)”月考勤登记表”数据的录入、 查询、 统计功能; 根据”月考勤登记表”数据分单位按各种日考勤标志进行分类统计,且生成”商场职工月考勤统计表”, 数据及”商厦职工月考勤统计汇总表”数据, 实现该表的查询、 打印功能。第四章 商厦人事劳资管理系统的分析和设计4.1 商厦人事劳资管理系统的分析和概要设计根据实际情况, 我们使用原型法( Rapid
10、 Prototyping) 即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员能够较快地确定需求, 然后采用循环进化的开发方式, 对系统模型作连续的精化, 将系统需具备的性质逐渐增加上去, 直到所有的性质全部满足。此时模块也发展成为最终产品了。经过对用户需求的分析, 我们能够分析出该商厦人事劳资管理系统大致能够分为四个模块: 人员基本情况管理模块、 职工工资管理模块、 职工考勤管理模块、 系统维护模块。下图说明四者的关系人事劳资管理系统人事基本情况管理模块职工工资管理模块职工考勤管理模块系统维护模块现在对这四个模块做具体说明: 人事基本情况管理模块: 输入: 职工信息输出: ”商
11、厦人员履历表”职工花名册”功能: 对商厦人事基本信息的查询、 统计和打印职工工资管理模块输入: 人员月工资输出: ”商场职工工资表的月统计”, ”商场职工工资总额构成表”及以”商厦职工工资总额季度汇总表”功能: 完成商厦员工工资的查询、 统计和打印职工考勤管理模块输入; 员工每日考勤情况输出: ”月考勤登计表”、 ”商场职工月考勤统计表”、 ”商厦职工月考勤统计表”功能: 完成对员工考勤情况的查询、 根据日考勤标志进行分类统计及表的打印。系统维护模块输入: 输出: 功能: 完成对系统数据和数据库的维护, 如用户名、 密码的更新, 数据库数据的备份、 恢复以及定期删除, 还有单位的编码化。4.2
12、 商厦人事劳资管理系统数据库设计由于考虑到本系统是应用在单机系统上, 另外根据商厦人员规模, 我们只建立起一个数据库, 在此数据库基础上建立起如下表: 职工基本信息表employee_information_table职工工资表 employee_salary_table职工考勤表 employee_attendance_table单位编码表 company_code_table系统信息表 system_table另外, 根据实际统计需要, 我们另外建立两个统计表, 用以存放部分统计表的信息以便查询。职工工资统计表 employee_salary_sum职工考勤统计表 employee_att
13、endance_sum第五章 系统模块的具体实现在本系统中有四个子模块组成。它们分别是员工基本信息模块、 员工工资信息模块、 员工考勤信息模块和系统维护模块, 下面就开发这几个模块的过程及所遇到的问题分别加以介绍。5.1员工基本信息模块该模块主要完成员工基本信息的录入、 查询、 统计及打印功能。在此模块中定义了三个主要窗口: 员工花名册窗口、 员工履历表信息窗口和组合条件查询窗口。后两者均需经过前者访问。员工花名册窗口中显示的是员工必要信息。可供用户浏览查询及以其记录为单位的操作。如果用户修改某一纪录中的某一项, 可双击该条纪录进入员工履历表窗口, 此窗口使用数据窗口的FREEDOM风格( 典
14、型的录入界面) 。该种风格特点是列标题紧挨着数据列。在此窗口显示的是员工的详细资料, 在此窗口还能够增加新员工纪录。该模块的第三个窗口是多条件查询窗口, 在此窗口中应用了数据窗口这一智能化对象。因此多条件查询也就变得简单起来, 只要经过修改数据窗口的QUERYMODE属性。( DW_1.OBJECT.DATAWINDOW.QUERYMODE=”YES”) -用户只要输入组合条件, 系统就会自动检索出数据, 开发人员能够不用再编写冗长的SQL语句。从此一点就能够看出数据窗口的优越之处。由于数据库基本表与其它表之间的主键的特点, 不方便使用外键来保持数据的一致性问题, 因此要用手工操作的方法进行数
15、据一致性的维护, 主要应用在以下几个方面, 职工工资表中加入和删除职工信息, 职工考勤表中加入和删除职工信息, 履历表中删除职工信息。在职工工资表中和在职工考勤表中加入职工信息时, 用户不能任意的输入职工姓名, 而是由系统提供专有的添加职工窗口, 用于显示该单位花名册已有的职工名, 而在职工工资表或职工考勤表中没有的职工名供用户选择, 从而要求用户不能任意输入花名册以外的职工信息了, 要加入新的职工信息必须先加入到花名册中去。这样就既保证数据库的数据的一致性, 又防止了数据的冗余。在职工工资表中和在职工考勤表中删除职工信息时, 为保持数据的一致性, 就需要马上重新计算统计量。另外, 考虑到职工
16、的编码能够唯一标示职工的单位, 因此就对单位进行编码化, 即职工编码的前三位唯一标示一个单位, 这样就减少数据的冗余。5.2职工工资管理模块该模块是完成对员工的工资信息的输入、 查询、 并以此进行统计生成”商场职工工资总额构成情况表”和”商厦职工工资总额季度汇总表”。此模块主要包括三个窗口, 工资录入窗口、 商场职工工资总额统计构成和商厦职工工资总额统计窗口, 后来两者均可经过第一个窗口的菜单项选择而进入。两个窗口”商场职工工资总额统计表”与”商厦职工工资总额统计表”的数据源均是从数据库EMPOYEE_SALARY表和EMPOYEE_SALARY_SUM表中选出。其功能包括打印、 预览。由于所
17、打印的表大多很长, 很难一个屏幕内放下, 这就使得用户预览不到整体的效果。因此带两个窗口中均动态修改了数据窗口的放大倍数( DW_1.Modify(DataWindow.Zoom=50) , 均以缩小百分之五十的面目出现。这就是用户能够一览打印表全貌, 达到打印效果。另外, 由于所要求输出的打印表是典型的中国式的表格而POWERBUILDER没有提供相应的风格, 因此只有经过选择TABLUR风格的表格( 该种风格允许数据列跨页或跨带显示, 用户能够根据自己的需要重新组织安排这些数据) , 自行划线分组增加表头文字。以此达到用户打印表的要求。5.3员工考勤管理模块该模块完成对职工考勤信息的输入和
18、查询。并以此数据为基础生成”商场职工月考勤统计表”和”商厦职工月考勤统计汇总表”。此模块主要包括三个窗口, 考勤登记窗口、 商场职工月考勤, 商厦职工考勤统计窗口, 后两者均可经过第一个窗口的菜单项选择而访问到。由于在模块中使用的方法和程序框图与职工工资管理模块大致相同, 因此这里也就不一一列举了。5.4系统维护模块此模块除完成数据的一般性维护如数据的恢复与备份、 数据的定期删除,还提供了本系统的部分维护功能, 如系统的初始化, ( 该项功能将删除数据库中所有数据, 因此仅在系统初始生成时使用) 另外还有密码的修改和单位编码。下面就数据维护和单位编码分别进行一下讨论。尽管系统中采取各种保护措施
19、来防止数据的安全性和完整性的破坏, 但由于计算机系统中硬件的故障、 软件的错误、 操作员的失误以及故意的破坏, 问题依然是不可避免的, 而且这些故障轻则造成运行事务非正常中断, 影响数据库中数据的正确性, 重则破坏数据库, 使数据库中全部或部分数据丢失。因此作为一个完整的管理信息系统, 数据的备份和恢复当然是少不了的, 在这里我们使用数据窗口提供的SAVEAS()函数和IMPORT()函数分别作为数据的备份和恢复, 要声明的是在这个过程中我们把指定的文件名设为NULL。以便使系统弹出公共对话框由用户选择文件名和保存路径以及保存格式, 这给用户提供了更大的自由度, 当然, 也带来了一些问题。例如
20、, 如果用户选择的保存格式为TEXT WITH HEADERS时( 即含表头的文件格式) , 在恢复过程中就会报错, 因此这点在帮助的文档中特别加以注明。至于单位编码问题, 主要是为了减少数据库冗余, 因为根据用户需求职工编码的前三位就唯一标识单位, 因此就在系统维护中特别添加此项。在开发此过程中遇到不少困难, 例如在用户修改编码时, 如果不保存原有的编码就无法更新职工编码, 就造成数据丢失, 为解决这一问题就做了以下的工作: 首先在修改后保存前先把数据库编码( 待改编码) 保存起来, 然后把修改后的编码( 还未保存编码) 从数据缓冲区中取出, 然后以待改编码为检索条件。检索出职工编码, 修改
21、成新的编码, 最后保存起来。第六章 系统开发的其它方面在这一节中, 我们主要讨论了两个问题, 一个是系统的联机文档, 另一个是系统的测试, 下面我们分别加以说明。作为一个完整的系统, 联机文档是其中不可缺少的部分也是相当重要的部分。好的文档能够使用户快速了解并准确的使用系统的各项功能。减少误操作, 减少错误产生的可能, 这对用户和开发人员都有很多的好处。因此在开发本系统中, 也加入了不少的文档, 除了对于四大模块的详细说明外, 对于易出错和不易操作的地方( 如多条件查询部分) 又作了详细的说明。由于程序员本身能力的局限性, 因此做编写的代码, 即使经过重复检查也难免出错因此在本阶段力求使用有限
22、的时间找出尽可能多的错误, 力求系统尽量正确。我们在本系统的测试中使用了黑盒法( 即不关心程序内部的逻辑结构, 而是根据程序的功能来设计是检测) 请一位不熟悉本系统的人来进行随意性的操作, 打破习惯的操作顺序, 从中发现错误, 在此阶段系统的大量错误得到了改进。第七章 性能要求一个合理的HRP管理软件必须具备以下功能: 信息管理考勤管理薪资管理变动管理奖惩管理用户管理系统安全综合报表权限管理7.1档案信息管理: 企业人事档案管理信息化模块; 具有快速、 无限量员工数据输入及保存功能; 由特定权限的管理员统一管理员工档案。对员工从进入公司开始直至离职的整个过程进行人面管理,档案信息包括, 职员编
23、号, 职员姓名, 出生年月, 职工学历, 定时检查更新员工信息, 具有权限的使用者能够登记、 查询、 修改、 统计部门信息、 岗位设置情况。而且能够根据一定条件查询后浏览各项记录, 并能够进得相应的操作。u 个人资料录入, 建立企业人事档案数据库。u 个人资料维护, 更新, 删除数据库记录。u 个人资料查询( 按员工编号查询, 按员工姓名查, 按员工学历查询, 按所属部门查询) 。u 屏幕显示员工照片。u 分类打印。u 信息浏览。7.2考勤管理: 企业考勤管理信息化模块; 记录员工上下班、 加班、 出、 缺勤时间; 可将考勤数据轻松处理, 并连至薪资计算系统, 以便作薪资结算; 企业还可根据此
24、考勤系统查询企业内各时段的员工出、 缺勤状况, 作管理方面的分析; 提供了全面的考勤管理。u 录入数据, 对员工每一天的考勤都能动态添加, 与薪资系统直接无缝集成。u 更新数据, 能够对员工的考勤信息做出更新, 以便于统计更准确的数据。u 删除数据, 能够对数据的冗余信息及时清理, 及时清理数据库。u 查询数据, 可对特定员工的特定月份进行查询, 这对人事管理都及时了考勤信息是很重要的。u 报表分析, 报表分析能够实现对特定职员的考勤信息进行统计, 并实现打印功还能够实现对所有员工的考勤信息进行统计, 对比, 能够帮助人力资源管理都, 省时, 省力, 准确地统计本公司员工的考勤信息。u 右键功
25、能: 并提供了方便, 强大的右键功能, 能够方便地实现对数据进行更新, 添加删除操作, 执行添加操作时, 考勤编号由系统自动生成, 为了更能体现交互性, 管理者也能够对职员编号进行改变, 更新操作, 当选取一项记录后执行更新操作, 相应的数据将全都显示出来, 操作者只需对特定的信息加修改, 然后提交即可, 在很大程序上减轻了操作者的工作量, 真正体现本系统的省时, 省力之功效。7.3薪资管理: 企业成本核算信息化模块; 符合国家薪资管理制度要求。u 薪资录入: 与考勤系统直接集成, 无缝数据接口问题, 薪资编号也由系统自动生成, 财务人员也能够对编号进行更改, 财务人员只需输入员工编号, 并选
26、择薪资日期, 以下的信息都会由系统自动填充, 由于信息都实现了与职员基本信息, 奖惩管理, 考勤管理无缝连接, 因此由系统生成的数据都是不能修改的, 这在很大程序上能够保证薪资数据信息的安全, 准确。u 薪资浏览: 插入记录, 实现与薪资录入系统的连接, 能够更方便地执行录入操作, 删除记录, 能够从窗体上方的浏览窗口中选取数据前执行操作, 打印所有, 实现对全体员工薪资资料实现打印, 保存, 打印预览, 对于有权限的操作者能够选定特定的职员后, 执行薪资支付操作, 生成支会表单, 前能够实现打印功能, u 制度设置: u 具有权限的操作者能够根据公司制度的变化, 对于迟到, 加班, 出差,
27、旷工等的具体奖励, 还是处罚标准能够灵活地进行动态变更,7.4 绩效考核: 企业员工考核规范化模块; 可对员工在公司的不同就职时间段作绩效考评记录; 实现企业员工考核信息的录入, ( 按职员编号, 按奖惩编号) 分类查询, 并能够对无用的信息资料执行删除操作, 及时清理数据库。7.5 系统安全: 对于一个成功的人事管理系统来说, 系统安全是非常重要的, 由系统管理员或系统管理员授权的超级用户对系统进行管理维护; 确保人力资源记录及工资数据等资料的高度保密, 防止秘密数据外传和程序遭破坏, 每个使用者有各自的密码进入系统; 用户能够在受权的范围内自由更改密码; 对于有具有一定权限的用户能够任意修
28、改其它用户的密码。依据工作需要由管理员分配系统操作权限。7.6 报表分析: 一个完善的人事管理系统必须具备报表分析功能, 对一特定的数据进行分析, 实现打印功能, 对数据资料进行保护。7.7用户管理和用户切换: 由于在操作过程序中有些用户可能要更改自己的权限, 如果系统数据库有相应的个人用户资料, 她就能够进行用户切换, 来提高或降低自己的操作权限。要限比较低的用户只能修改自己的密码, 而高级用户则能够添加, 删除, 更新其它用户, 提高系统安全性。第八章系统功能简介8.1登录窗体: 提供安全的管理机制,进入系统时要输入用户名, 密码, 并选取类别, 只有三项全部与数据库记录相符后才能进入系统
29、, 系统对用户的登陆信息进行记录, 只有有特定权限的用户才能执行相应的操作, 控制系统安全。如图(1-1)所示: 图(1-1)登陆验证的代码: string sel=select user_pass,user_type from TheUser where user_name=+this.textBox1.Text.ToString().Trim()+;string data=none;SqlCommand com=new SqlCommand(sel,this.sqlConnection1);trythis.sqlConnection1.Open();SqlDataReader reader
30、=com.ExecuteReader();while(reader.Read()string pas=reader0.ToString().Trim();string leibie=reader1.ToString().Trim();data=some;string pas1=this.textBox2.Text.ToString().Trim();string leibie1=boBox1.Text.ToString().Trim();if(pas1=pas&leibie1=leibie)this.islogin=true;ManageInfo.Employerleixing=leibie1
31、;ManageInfo.Employername=this.textBox1.Text.ToString().Trim();ManageInfo.Employermima=pas1;this.Close();break;elseMessageBox.Show(输入信息有误, 请重新输入,提示,MessageBoxButtons.OK,MessageBoxIcon.Information);reader.Close();this.sqlConnection1.Close();if(data!=some)MessageBox.Show(没有相应的用户信息, 请查证后重新输入,错误提示,Messag
32、eBoxButtons.OK,MessageBoxIcon.Error);catch(Exception ee)MessageBox.Show(ee.Message);this.sqlConnection1.Close();Main();login log=new login();log.ShowDialog();if(log.islogin=true)Application.Run(new Form1();8.2可操作部分包括: 职员档案管理、 职员考勤管理、 职员奖惩管理、 职员工资管理,工作调动管理等四大部分组成, 如图( 2) : 以及附加更改密码, 和更换用户功能,其界面如图(1-2
33、): 图(1-2)u 职员档案管理, 提供录入、 查询、 修改、 删除和统计功能。职员档案信息录入系统如图: 其中员工编号由系统自动生成, 操作者也能够经过点击后面的按钮来执行编号加一操作。如图( 1-3) 所示: 图( 1-3) 实现编号加一操作的代码: int num=System.Int32.Parse(this.textid.Text.ToString().Trim();+num;this.textid.Text=num.ToString().Trim();u 员工信息浏览, 更新, 修改, 删除, 以及打印操作, 操作者能够经过点击左边的树形控件浏览选定职员的信息, 也能够经过选择查
34、询条件( 按员工编号查询, 按员工姓名查询, 按员工学历查询, 按所属部门查询) 并输入查询条件后查询显示, 然后执行相应的操作, 如图( 1-4) 所示: 图( 1-4) 实现窗体中树形控件节点动态绘制功能的代码为: /此函数功能是实现树的重新描绘, 描绘时清除原来的树this.treeView1.Nodes.Clear();/先从部门表中读取部门信息, 添加为该树的根结点/读取方法是, 用数据集的形式, 循环读入this.sqlSelectCommand1.CommandText=Select * from Department;this.dataSet31.Clear();this.sq
35、lConnection1.Open();trythis.sqlDataAdapter1.Fill(this.dataSet31,Department);catch(Exception aa)MessageBox.Show(aa.Message);this.sqlConnection1.Close();this.sqlConnection1.Close();DataTable myDataTable1=this.dataSet31.TablesDepartment;foreach(DataRow myDataRow1 in myDataTable1.Rows)/以下方法程序段实现的是在树形控件中
36、添加根节点TreeNode treeNode1=new TreeNode();treeNode1.Text=myDataRow1Eminfo_jobdept.ToString().Trim();this.treeView1.Nodes.Add(treeNode1);string sel=treeNode1.Text;/以下方法程序段实现的是在树形控件的根节点下面添加子节点this.sqlSelectCommand2.CommandText=SELECT Eminfo_id, Eminfo_name, Eminfo_jobdept FROM Employerinfo WHERE Eminfo_j
37、obdept = +sel+;this.dataSet41.Clear();this.sqlConnection1.Open();/this.sqlSelectCommand1.ExecuteNonQuery();this.sqlDataAdapter2.Fill(this.dataSet41,Employerinfo);this.sqlConnection1.Close();DataTable myDataTable2=this.dataSet41.TablesEmployerinfo;foreach(DataRow myDataRow in myDataTable2.Rows) TreeN
38、ode treeNode=new TreeNode();treeNode.Text=myDataRowEminfo_name.ToString().Trim();treeNode1.Nodes.Add(treeNode);u 用户执行分类打印的操作如图: 能够打印所有, 还能够按部门打印职员的基本信息; 在一定程序上提高了程序与操作者之间的交互性。如图( 1-5) 所示: 图( 1-5) 8.3工作调动处理:可处理员工在部门内、 部门之间的工作职务调动。员工调入、 调出本单位处理等。对于本子系统, 也由系统自动后成编号, 操作者只需输入职员编号, 和需要调往的部门或职位, , 另外要选择事件发
39、生的时间, 其余的信息都由系统自动生成, 用户也能够对职员的调动信息进行预览, 删除等操作, 自动生成职位变动编号代码为: string sel=select count(*) from Emposchange;SqlCommand com=new SqlCommand(sel,this.sqlConnection1);trythis.sqlConnection1.Open();SqlDataReader reader=com.ExecuteReader();while(reader.Read()string date=System.DateTime.Now.Year.ToString();t
40、his.textBox4.Text=date+reader0.ToString().Trim().PadLeft(2,0);reader.Close();this.sqlConnection1.Close();catch(Exception ee)this.sqlConnection1.Close();MessageBox.Show(ee.Message);子系统执行界面如图( 1-6) 所示: 图( 1-6) 当焦点进入职员姓名后的编辑框后实现实动填充信息的代码为: if(this.textBox5.Text=)MessageBox.Show(你没有输入相应编号的职员, 请查证后输入以显示正
41、确信息);elsestring sel=Select Eminfo_name,Eminfo_jobposit from Employerinfo where Eminfo_id=+this.textBox5.Text.ToString().Trim()+;SqlCommand com=new SqlCommand(sel,this.sqlConnection1);this.sqlConnection1.Open();trySqlDataReader reader=com.ExecuteReader();while(reader.Read()this.textBox6.Text=reader0.
42、ToString().Trim();this.textBox8.Text=reader1.ToString().Trim();reader.Close();this.sqlConnection1.Close();catch(Exception ee)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();DataRow myDataRow1=this.emre1.TablesEmre.NewRow();trymyDataRow1Emreinfo_num=this.textBox1.Text;myDataRow1Eminfo_id=this.textBox2.Te