《项目5基于三层架构的企业人事工资管理系统.ppt》由会员分享,可在线阅读,更多相关《项目5基于三层架构的企业人事工资管理系统.ppt(78页珍藏版)》请在三一办公上搜索。
1、项目5 基于三层架构的企业人事工资管理系统,教育部“十二五”职业教育国家规划教材,Visual C#程序设计与软件项目实训电子工业出版社 郑伟 谭恒松 编著,ISBN:9787121246128,教材网站:http:/,目录,系统功能总体设计,建立系统数据库,搭建三层架构框架,系统详细设计,系统总体功能设计,本系统的功能模块有以下几个:员工管理(包括添加员工和管理员工)、工资管理(包括添加工资和管理工资)、考核管理(包括添加考核和管理考核)、信息查询(包括员工查询和考核查询)、部门维护(包括添加部门和管理部门)、用户维护(包括添加用户和管理用户)。,系统总体功能设计,系统总体功能设计界面,系统
2、总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,系统总体功能设计界面,建立系统数据库,本系统采用SQL Server 2008作为后台数据库,数据库名为HRManage。数据库包含5个数据表,分别是用户表UserInfo、部门信息表Department、员工信息表Employee、工资信息表Salary、考核信息表CheckInfo。,建立系统数据库,建立系统数据库,建立系统数据库,搭
3、建三层架构框架,三层架构通常是指将整个业务应用划分为:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。目的是实现“高内聚,低耦合”。其中,表示层是展现给用户的界面,业务逻辑层是针对具体问题的操作,是对数据访问层的操作,对数据业务逻辑处理,数据访问层直接操作数据库,针对数据进行插入、修改、删除和查找等工作。,搭建三层架构框架,搭建三层架构框架,搭建三层架构框架,创建空的解决方案,搭建数据库实体层Model(类库),搭建数据访问层DAL(类库),搭建业务逻辑层BLL(类库),搭建表示层UL,将表示层项目设置为启动项目,添加各层之间的相互依赖,搭建三层架构框架,添加配置文件,添加数据操作
4、类DbHelperSQL,为各层添加类,编写Model层代码,用户实体类代码(UserInfo.cs),部门实体类代码(Department.cs),员工实体类代码(Employee.cs),工资实体类代码(Salary.cs),考核实体类代码(Check.cs),系统详细设计,用户登录功能模块设计,用户登录功能模块设计,关键代码:(1)BLL.UserInfo bll=new BLL.UserInfo();实例化BLL层;(2)Model.UserInfo model=new Model.UserInfo();实例化Model层;(3)ds=bll.GetList(strWhere);调用B
5、LL层中的GetList方法,返还DataSet对象;(4)if(ds.Tables0.Rows.Count=1)判断是否有查找到数据。,用户登录功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)为登录窗体设计Icon图标。,添加用户功能模块设计,添加用户功能模块设计,关键代码:(1)Model.UserInfo model=new Model.UserInfo();实例化Model层;(2)BLL.UserInfo bll=new BLL.UserInfo();实例化BLL层;(3)if(bll.Add(model)=true)将用户信息添加到数据库中,根据返回值判断是否添加成功。
6、,添加用户功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)如果添加的用户名重复,代码如何修改?,管理用户功能模块设计,管理用户功能模块设计,关键代码:(1)BLL.UserInfo bll=new BLL.UserInfo();实例化BLL层;(2)Model.UserInfo model=new Model.UserInfo();实例化Model层;(3)if(bll.Update(model)=true)根据返回布尔值判断是否修改数据成功;(4)if(bll.Delete(userName)=true)根据返回布尔值判断是否删除数据成功;(5)DataBind();刷新Data
7、GridView数据;(6)ds=bll.GetList();执行SQL语句,将结果存在ds中。,管理用户功能模块设计,待完善工作:(1)异常处理;(2)要求admin用户不得删除,只能修改密码,请修改代码;(3)将DataGridView的列标题显示为中文,代码如何修改?,主界面设计,主界面设计,1已完成工作:(1)窗体的属性设置;(2)菜单设计;(3)工具栏设计。2待完善工作:(1)为主窗体设计Icon图标;(2)为主窗体退出系统编写代码;(3)为主窗体添加状态栏。,添加部门功能模块设计,添加部门功能模块设计,关键代码:(1)BLL.Department bll=new BLL.Depar
8、tment();实例化BLL层;(2)Model.Department model=new Model.Department();实例化Model层;(3)if(bll.Add(model)0)将部门信息添加到数据库中,根据影响的行数判断是否添加成功。,添加部门功能模块设计,已完成工作:(1)窗体控件属性设置;(2)部门信息的添加功能;(3)重置功能。待完善工作:(1)文本框的输入规范检查;(2)异常处理。,管理部门功能模块设计,管理部门功能模块设计,关键代码:(1)int departmentID;定义部门编号;(2)BLL.Department bll=new BLL.Department
9、();实例化BLL层;(3)Model.Department model=new Model.Department();实例化Model层;(4)model.DepartmentID=departmentID;departmentID值从dgvDepartmentInfo的CellClick事件取得;,管理部门功能模块设计,(5)if(bll.Update(model)=true)根据返回布尔值判断是否修改数据成功;(6)if(bll.Delete(departmentID)=true)根据返回布尔值判断是否删除数据成功;(7)DataBind();刷新DataGridView数据;(8)ds
10、=bll.GetList();执行SQL语句,将结果存在ds中;(9)departmentID=int.Parse(dgvDepartmentInfo.CurrentCell.OwningRow.Cells0.Value.ToString();获取部门编号。,管理部门功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3)没有在控件dgvDepartmentInfo 中选择部门信息时,单击“删除”按钮会报错,代码如何修改?(4)如果该部门已经有员工,则不能删除部门信息,如何修改代码?(5)将DataGridView的列标题显示为中文,代码如何修改?,添加员工功能模块设计,添
11、加员工功能模块设计,关键代码:(1)Model.Employee model=new Model.Employee();实例化Model层(2)BLL.Employee bll=new BLL.Employee();实例化BLL层;(3)if(bll.Add(model)=true)将员工信息添加到数据库中,根据返回值判断是否添加成功。,添加员工功能模块设计,已完成工作:(1)窗体控件属性设置;(2)员工信息的添加功能;(3)重置功能。待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3)如果添加的员工编号重复,代码如何修改?,管理员工功能模块设计,管理员工功能模块设计,关键代码:(1
12、)Model.Employee model=new Model.Employee();实例化Model层;(2)BLL.Employee bll=new BLL.Employee();实例化BLL层;(3)if(bll.Update(model)=true)根据返回布尔值判断是否修改数据成功;,管理员工功能模块设计,(4)ds=bll.GetList();执行SQL语句,将结果存在ds中;(5)if(bll.Delete(employeeID)=true)根据返回布尔值判断是否删除数据成功;(6)DataBind();刷新DataGridView数据。,管理员工功能模块设计,待完善工作:(1)
13、文本框的输入规范检查;(2)异常处理;(3)没有在控件dgvEmployeeInfo中选择员工信息时,单击“删除”按钮会报错,代码如何修改?(4)如果该员工已经有工资和考核记录,则不能删除员工信息,如何修改代码?(5)将DataGridView的列标题显示为中文,代码如何修改?,添加工资功能模块设计,添加工资功能模块设计,关键代码:(1)Model.Salary model=new Model.Salary();实例化Model层;(2)BLL.Salary bll=new BLL.Salary();实例化BLL层;(3)if(bll.Add(model)0)将工资信息添加到数据库中,根据影响
14、的行数判断是否添加成功;(4)ds=bll.GetList();执行SQL语句,将结果存在ds中。,添加工资功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3)将DataGridView的列标题显示为中文,代码如何修改?,管理工资功能模块设计,管理工资功能模块设计,关键代码:(1)int salaryID;定义工资编号;(2)BLL.Salary bll=new BLL.Salary();实例化BLL层;(3)ds=bll.GetList();执行SQL语句,将结果存在ds中;(4)Model.Salary model=new Model.Salary();实例化Mod
15、el层;,管理工资功能模块设计,(5)model.SalaryID=salaryID;salaryID值从dgvSalaryInfo的CellClick事件取得;(6)if(bll.Update(model)=true)根据返回布尔值判断是否修改数据成功;(7)if(bll.Delete(salaryID)=true)根据返回布尔值判断是否删除数据成功;(8)DataBind();刷新DataGridView数据;(9)salaryID=int.Parse(dgvSalaryInfo.CurrentCell.OwningRow.Cells0.Value.ToString();获取工资编号。,管
16、理工资功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3)没有在控件dgvSalaryInfo中选择工资信息时,单击“删除”按钮会报错,代码如何修改?(4)将DataGridView的列标题显示为中文,代码如何修改?,添加考核功能模块设计,添加考核功能模块设计,关键代码:(1)Model.CheckInfo model=new Model.CheckInfo();实例化Model层;(2)BLL.CheckInfo bll=new BLL.CheckInfo();实例化BLL层;(3)if(bll.Add(model)0)将考核信息添加到数据库中,根据影响的行数判断是否
17、添加成功;,添加考核功能模块设计,(4)BLL.Employee bll=new BLL.Employee();实例化BLL层;(5)ds=bll.GetList();执行SQL语句,将结果存在ds中;(6)BLL.Department bll=new BLL.Department();实例化BLL层;(7)ds=bll.GetList(strWhere);根据条件获取部门信息(8)txtDepartmentName.Text=ds.Tables0.Rows01.ToString();根据部门ID查找部门名称。,添加考核功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3
18、)将DataGridView的列标题显示为中文,代码如何修改?(4)要求考核人为本公司员工,代码如何修改?,管理考核功能模块设计,管理考核功能模块设计,关键代码:(1)int checkID;定义考核编号;(2)Model.CheckInfo model=new Model.CheckInfo();实例化Model层;(3)model.CheckID=checkID;checkID值从dgvCheckInfo的CellClick事件取得;(4)BLL.CheckInfo bll=new BLL.CheckInfo();实例化BLL层;,管理考核功能模块设计,(5)if(bll.Update(m
19、odel)=true)根据返回布尔值判断是否修改数据成功;(6)if(bll.Delete(checkID)=true)根据返回布尔值判断是否删除数据成功;(7)DataBind();刷新DataGridView数据;(8)ds=bll.GetList();执行SQL语句,将结果存在ds中;(9)checkID=int.Parse(dgvCheckInfo.CurrentCell.OwningRow.Cells0.Value.ToString();获取考核编号。,管理考核功能模块设计,待完善工作:(1)文本框的输入规范检查;(2)异常处理;(3)没有在控件dgvCheckInfo中选择考核信息
20、时,单击“删除”按钮会报错,代码如何修改?(4)将DataGridView的列标题显示为中文,代码如何修改?,员工查询功能模块设计,员工查询功能模块设计,关键代码:(1)string strWhere=1=1;设置初始查询条件,当用户没有输入任何查询信息时将所有信息查询出来;(2)BLL.Employee bll=new BLL.Employee();实例化BLL层;(3)ds=bll.GetList(strWhere);执行带参数SQL语句,将结果存在ds中。,员工查询功能模块设计,待完善工作:(1)异常处理;(2)将DataGridView的列标题显示为中文,代码如何修改?,考核查询功能模
21、块设计,考核查询功能模块设计,关键代码:(1)string strWhere=1=1;设置初始查询条件,当用户没有输入任何查询信息时将所有信息查询出来;(2)BLL.CheckInfo bll=new BLL.CheckInfo();实例化BLL层;(3)ds=bll.GetList(strWhere);执行带参数SQL语句,将结果存在ds中。,考核查询功能模块设计,待完善工作:(1)异常处理;(2)将DataGridView的列标题显示为中文,代码如何修改?,功能总结,企业人事工资管理系统基于三层架构开发,另外添加了一个Model层,用于存放实体类,整个解决方案包括四个项目:Model、DA
22、L、BLL、HRManage。Model层包括5个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs;DAL层包括6个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs、DbHelperSQL.cs;BLL层包括5个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs;,功能拓展,(1)员工工资查询,能够分月分年统计;(2)如果员工被删除,但工资信息、考核信息还在,如何处理?(3)重新设计主界面,将员工的基本信息在主界面显示,方便管理;(4)针对不同的用户,给予不同的系统管理权限;(5)增加一个数据库备份和还原功能模块。,THANK YOU,