您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 第24章人力资源管理系统实战(C#从入门到精通)
第24章人力资源管理系统实战本章综合第15、16、17、和18章中的模块,以一个简单的人力资源管理系统的开发实战,详细介绍了使用LINQtoSQL技术开发三层体系结构的windows窗体应用程序的流程,介绍了需求及功能分析、数据库和实体类设计、数据访问层、业务逻辑层和表示层的设计过程。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.1开发背景随着我国市场经济的不断发展,以及现在日趋激烈的人才竞争态势,使得人力资源管理在公司和企业中的地位变得越来越重要。目前,许多公司和企业在人力资源管理上还停留在手工操作的层面上,很难适合现代企业的发展和公司信息化的需求。为此,开发一套合适人力资源管理是目前许多公司和企业的迫切需要的。通过“人力资源管理系统”软件的实施,提高人力资源部门的工作效率,更好的为公司和企业的发展服务。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.2需求及功能分析为了便于入门,本系统是一个简单版本的人力资源管理系统”,系统采用三层结构利用LINQ技术进行开发。经过调研,“人力资源管理系统”的的功能如下。⑴员工信息管理,实现员工信息的添加、修改,删除等功能;⑵部门、职务信息管理,部门基本信息包括:部门的代号、名称,实现增加、修改、删除部门基本信息。职务信息包括职务名称和所属部门,职务信息管理实现增加、修改、删除职务信息。⑶考勤记录管理,对员工的考勤情况,按月进行统计。可以对考勤记录进行输入、修改、保存。⑷员工调动信息,对员工的调动信息进行管理,实现员工调动信息的输入、修改、保存。⑸培训信息管理,对员工的培训信息进行管理,实现员工培训信息的输入、修改、保存。⑹奖惩信息管理,对员工的奖惩信息进行管理,实现对员工奖惩信息的输入、修改、保存。⑺工资变动管理,对员工的薪水调动进行管理,实现对员工的工资调整信息的输入、修改、保存。本系统的总体架构采用三层架构模型,综合第15~18章的介绍,表示层、业务逻辑层、数据访问层分别用HrManage、HrBLL、HrDAL三个项目实现,实体层用DataLinql项目用来组织系统中的实体类,利用LINQtoSQL实现对数据库的操作。本系统三层架构和项目结构如图所示。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.3数据库设计在“人力资源管理系统中”设计有表如下。员工考勤表(Attendance),用于存放员工考勤的信息。员工奖惩表(RewardsInfo),用于记录员工的奖惩信息。员工培训表(TrainInfo):记录员工的培训信息。员工调动表(EmpTransfer),用于记录员工的调动信息。员工信息表(EmployInfo)用于记录员工信息。员工职位表(PostInfo),用于记录职位信息。员工部门表(Section),用于记录部门信息。员工工资变动表(TransferWage),用于记录员工工资调整的信息。用户表(UserInfo),用于记录系统操作用户的信息。表的结构信息在第15章已经做了介绍,本章不再重复。由于需要在多个表中进行LINQ查询,而LINQ目前不支持将多表联合查询的结果返回,对于这个情况的一种解决办法是创建一个视图,视图里面包含需要的所有数据列,然后在视图里面查询。所以创建如下视图用于查询。1.创建视图RewardsView为了对奖惩表(RewardsInfo)、员工信息表(EmployInfo)、职位表(PostInfo)和部门表(Section)进行联合查询获得员工的详细奖惩信息,创建视图RewardsView,视图结构如下。列名数据类型是否空描述RIdIntNo标识列,编号EidVarchar(10)No员工编号ENameVarchar(10)No姓名ESexVarchar(10)No性别SectionNameVarchar(10)no部门名postNameVarchar(10)no职务名DateVarchar(12)No日期TypeVarchar(5)No奖惩类型ReasonIntYes原因ScoreIntYes奖惩分数remarksVarchar(200)Yes备注2.创建视图TrainEmployeeView为了对员工培训表(TrainInfo)、员工信息表(EmployInfo)、职位表(PostInfo)和部门表(Section)进行联合查询获得员工的详细培训信息,创建视图TrainEmployeeView,视图结构如下。列名数据类型是否空描述TidIntNo标识列,编号ENameVarchar(10)No姓名ESexVarchar(10)No性别SectionNameVarchar(10)no部门名postNameVarchar(10)no职务名DateVarchar(50)Yes日期CourseVarchar(20)No培训课程RemarksVarchar(200)Yes备注3.创建视图V_attendance_Section为了对考勤表(Attendance)、员工信息表(EmployInfo)、职位表(PostInfo)和部门表(Section)进行联合查询获得员工的详细考勤信息,创建视图V_attendance_Section,视图结构如下。列名数据类型是否空描述AidIntNo标识列,编号EIdVarchar(10)No员工编号DateVarchar(10)Yes统计月份ENameVarchar(10)No姓名ESexVarchar(10)No性别SectionNameVarchar(10)no部门名postNameVarchar(10)no职务名ResultVarchar(5)No考勤结果DetailsMoneyNo考勤内容RemarksFloatYes备注4.创建视图V_Employee、V_EmpTransfer和V_Transferwage为了获得员工的详细信息,创建视图V_Employee,为了获得员工调动和工资变动的详细信息,分别创建视图V_EmpTransfe和V_Transferwage,视图结构和前面类似不再一一描述,详情请看源代码。可以使用SQLServerManagementStudio以可视化的方式和书写SQL语句的方式创建视图,也可以通过VisualStudio2008中的【服务器资源管理器】创建视图,二者的操作方法类似。下面介绍使用SQLServerManagementStudio以可视化的方式创建视图的步骤。➊启动SQLServerManagementStudio,选择服务器名称和身份验证方式后单击“连接”按钮登录。➋进入SQLServerManagementStudio后,在对象资源管理器中用鼠标右键单击视图,在弹出的菜单上单击【新建视图】,出现【添加表】窗体,选择创建视图所需的表。➌如创建V_Employee视图,依次选择EmployInfo表、Section表和PostInfo表后单击【添加】按钮出现如下窗体。➍分别在对应的表上选择所需要的列后,单击保存按钮后输入视图名称即可创建视图。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.4实体类设计按照15.2.2中的操作步骤,建立类库项目,项目名为“DataLinq”,添加“LINQtoSQL”类来创建实体类。打开【服务器资源管理器中到数据库HrManage的链接,将HrManage中的表和视图拖放到dbml设计器后保存,就可以自动生成了包含相关的属性、方法的DataContext类和实体类。参考15.2.2。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.5数据访问层设计建立数据访问层类库项目,项目名为HrDAL。添加对DataLinq层实体类的引用和对System.Data.Linq的引用,然后分别添加对数据库表的相应操作的类,实现对数据库表的操作。以对员工表操作为例。1.添加DALEmployInfo类,代码如下(代码24-1-1.txt)。2.在DALEmployInfo中添加方法SelectRecordAll返回表PostInfo的全部记录。3.在DALEmployInfo中添加方法listall返回视图V_Employee的所有记录(代码24-1-3.txt)。4.在DALEmployInfo中添加方法SelectMaxRecordNo得到员工表EmployInfo中的最大的记录号(代码24-1-4.txt)。5.在DALEmployInfo中添加方法SelectRecordByID返回按照员工编号查询的记录。6.在DALEmployInfo中添加方法InsertRecord向员工表EmployInfo中添加记录。7.在DALEmployInfo中添加方法UpdateRecord更新记录(代码24-1-7.txt)。8.在DALEmployInfo中添加方法DeleteRecord通过tid删除记录(代码24-1-8.txt)。9.在DALEmployInfo中添加方法selectImg读取员工表中照片字段(代码24-1-9.txt)。其他数据访问层代码参考源程序。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.6业务逻辑层设计建立类库项目,项目名为HrBLL。分别添加对应于数据访问层中的类,以完成对数据访问层中方法的调用。需要添加对数据访问层HrDAL和实体层DataLinq的引用。对员工表操作的业务逻辑层为例,代码如下(代码24-2-1.txt)。其他业务逻辑层代码参考源程序。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.7表示层设计建立表示层Windows窗体应用程序项目,项目名称是HrManage。表示层采用MDI多文档界面,下面介绍各个窗体的设计。1.主窗体设计本系统是一个便于入门的系统,是复杂的“人力资源管理系统”的一个简化版本,主界面设计如下。在主界面HrManage窗体中添加一个toolStrip控件,用于进行操作的导航。在toolStrip上添加7个toolStripButton,分别设置每个toolStripButton的DisplayStyle为Text,输入相应的文字,如“员工管理”、“培训管理”、“奖惩管理”、“员工考评”等。分别为每个toolStripButton添加单击事件处理程序,实现单击相应按钮后,执行对应的功能,以“员工管理”按钮为例,代码如下(代码24-3-1.txt)。2.员工管理等子窗体设计员工管理BrowseEmployee子窗体实现显示员工信息和添加、编辑和删除员工信息。界面如下。单击编辑按钮,弹出新窗体实现编辑选择的员工记录,代码如下(代码24-3-2.txt)。编辑员工信息的窗体界面如下。单击【添加】按钮,弹出添加新员工的操作窗体,代码如下(代码24-3-3.txt)。弹出的添加新员工的窗体AddEmployInfo设计如下。在BrowseEmployee子窗体上单击【删除】按钮,实现删除选择的记录,代码如下。其他功能模块和员工管理模块类似,详见源程序。开发背景需求分析数据库设计实体层设计数据访问层设计业务逻辑层设计表示层设计运行系统24.8运行系统运行系统,首先出现主界面,单击相应按钮可以实现相应的功能。主界面如下。如单击工具栏上“员工管理”按钮,出现界面如下。选择一条记录后单击【编辑】按钮,可以编辑选定的记录,运行界面如下。在编辑窗体中输入更新的员工信息后,单击
本文标题:第24章人力资源管理系统实战(C#从入门到精通)
链接地址:https://www.777doc.com/doc-3243545 .html