版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人事管理系统用例图,类图,活动图PAGE63-Fox-ERP人事管理系统(二)毕业设计(论文)指导老师专业计算机应用与维护组长班级组员成都电子机械高等专科学校2007年5月10日目录更大的扩展性。例如多公司运作只执行最基本的功能,至于一些具体应用方式的特殊属性,并不应出现在系统中。模块化的构建同时也意味着模块之间尽量降低偶合度,这样做的好处是使得更改模块内部或新增其他模块对系统的稳定性影响不大。物理需求和结构需求都是从设计框架上对系统提出了宏观的要求,而逻辑需求则是在实际项目的需求分析阶段对系统的业务逻辑提出的要求。三、逻辑需求抽象人事管理系统中的对象和方法人事管理系统中有几个关键的对象,每个对象有其特有的方法。对象通过方法实现其自己的功能。例如可以将人事管理系统中的员工抽象为一个对象,员工的出勤率等可以构建成为对象的属性,而出勤率的计算方式等可以抽象成为商品的方法。在逻辑上与其他应用程序整和建立人事管理系统的目的是让员工和管理者可以通过网络进行查询、修改等行为动作。当然人事管理系统并不是孤立存在的,人事管理系统属于人事系统,与考勤系统、薪金系统等都是进行交互的。例如人事管理系统需要从考勤系统那里得到考勤单,经核算得出员工的出勤率。这就涉及到人事管理系统与其他的应用程序进行交互的问题,这种交互可能是数据上的共享,也可能是功能上的共享。完整的人事管理系统人事管理系统里有一个完整的人事管理流程。员工可以挑选整批系统的某个功能,输入某个员工姓名或编号,由系统筛选,再由员工挑选哪些人事管理功能。1.2FoxERP人事管理系统功能根据需求分析中对系统的要求,人事管理系统的设计者规划了一系列的系统功能。如果说需求分析是提出问题,那么系统功能就是解决问题,针对需求建立功能说明文档。下面将人事管理系统功能总结为如下几个方面:资料保密控管(1)组织权限:依据员工所隶属的人事管理系统组织来决定使用者所能处理的人事权限范围(2)薪资群权限:依据职位的差异或群组的特性将员工予以分群控管,除非人事薪资操作人员拥有处理该薪资群的权限,否则即便拥有了该人事管理系统的组织权限,依然无法处理该薪资群的资料。(3)作业表权限:依据操作人员职务分给不同的操作人员,一方面能理清责任归属,一方面又能确保资料的安全。主管查询权限:人事管理系统主管不但能方便地查询到自己单位内每位员工的资料,又能在公司规章授权下来查询同一上级人事管理系统内其他单位员工的资料。多公司运作可同时处理多家公司的资料同一公司可再分成数个不同人事数据库以便设定不同权限予以控管不同公司数据库可自行设定不同的年资计算方式以及薪资福利等计薪基数与财务系统的数据库能紧密结合,自动抛转相关的人事薪资传票员工基本资料能完整记载每位员工的各项人事资料(至少包含:一般、就职、薪金、眷属、经历、证照等类)能提供自定义字段功能以便依据公司实际的特殊需要而能自行设定如需针对新进员工进行安全调查时,能提供安全调查管理的功能能提供常用的证明书表(如:服务证明书、薪资证明书)能提供常用的基本资料表(如:通讯簿、生日名单)能依据员工的技能、证照等专长列出合乎该项专长的名单提供职号管制功能自定义基本资料表能提供自定义报表功能,以便随时应付各种临时特殊的员工基本资料查询需求提供群组合计功能,得以将数个字段资料相同者予以归纳为同一群组,并能将同群组的数值字段资料予以加总、平均或计算笔数提供自定义筛选条件功能,以便任何组合查询条件筛选出符合条件的资料提供自定义分析统计报表功能,可以方便地从任一角度来交叉分析现行的人事状况5、人事状况统计表(1)学历分布明细/统计表(依单位、职位、薪资归属等条件分类统计)(2)男女人数分布明细/统计表(依单位、职位、学历、薪资归属等条件分类统计)(3)年资/年龄分布统计表(依单位、职位、学历、薪资归属等条件分类统计)(4)薪金区间统计表(依单位、职位、学历、薪资归属等条件分类统计)(5)组织员额/缺额统计表6、人事异动管理(1)完整记载各项人事异动资料,并提供完整的汇总查询(2)对于临时人员或续聘人员提供方便的职号转换作业,以确保资料的一致性(3)人事异动单据登录时会自动同时更新员工主文件的相关资料,并在异动单据剔除或修改时能自动倒回原始资料(4)留职停薪年资能计算到以日为单位,并在复职时自动扣除留职停薪的年资(5)提供各式人事异动名单报表,如就职名单、离职名单、调薪名单(6)提供人事异动统计分析表,得以方便地查询人事异动的状况(7)提供职务异动公告表,不必再由人工誊打7、教育训练(1)提供不同角度(课程别/员工别、内训/外训、有无认证)的报表查询功能(2)能提供训练人事统计报表(3)需进行人力资源库筛选时,能提供教育训练结果的分析名单8、奖惩(1)奖惩资料能自动转为考绩的加扣分(2)奖惩资料能自动转为年终奖金的加扣天数(3)奖惩资料能自动转至当月薪资发放的加扣金额(4)提供奖惩公告表,不必再由人工誊打9、考绩(1)能依据企业实际需要自行设定考核种类(如:月考绩、季考绩、年考绩、新近人员考绩、临时考绩)(2)能自行定义考核表的种类、考核项目及评等标准(3)能分别设定个别员工适用的考核表种类(4)请假、奖惩结果能自动转入加扣考绩分数(5)能进行不同期间的考核结果比较或同年度内不同考核种类的成绩比较(6)能提供员工自我考核的功能(7)能依据考核人员权限的不同,设定不同考核权数(8)考绩资料的输入除了提供统一由考绩管理员集中登录功能外,也能提供由自行设定考核成绩的分类区间,予以分等统计10、退休(1)提供未来退休员工预估名单及退休金的报表,以供分析及财务调度参考(2)随时依据政府法令的修正,机动调整退休金基数的核算(3)能自动转入退休员工的基本资料,并提供方便的维护功能(4)未满一年的年资计算方式能符合各项规章的要求第二章系统分析图2.1UML图UML(统一建模语言)是一种对于软件密集型系统的制品进行可视化、详述、构造和文档化的图形语言。UML给出了一种描述系统蓝图的标准方法,其中即包括概念性的事物,如业务过程和系统功能,也包括了具体的事物,如用特定的编程语言编写的类、数据库模式和可复用的软件结构。UML图根据描述的功能不同可分为很多中类型,如系统类构造图是描述系统中类的构造和属性的图,用例图是描述系统中用例基本信息的图,交互图是描述系统中交互行为的图,活动图是描述系统活动的流程图。2.1.1用例图用例图主要是对系统、子系统或类的行为进行建模,如下图是系统的总体用例图,描述系统中的用户与功能模块之间的类。登录:基本资料维护与员工就职设定:人事异动作业与退休作业:教育作业与奖惩作业:考绩作业:2.1.2类图2.1.3活动图2.2系统架构经过了对系统的需求分析和UML的分析,基本上是完成了人事管理系统的系统框架的建立,但是已经做过了工作都是设计方面的,下面涉及到的就是实际的工作。下面介绍的就是人事管理系统的命名和编码的约定、文件结构、部署等方面的问题的总体规划。1、命名和编码的约定命名和编码的约定是软件工程中很重要的一部分内容,特别是多人进行协同工作的团队,我们的人事管理系统是由4个人组成的一个小团队。我们采用的命名规则是Pascal的大小写规则,该规则约定在变量中使用的所有的单词的第一个字符都是大写,并且不使用空格和符号。Microsoft公司推荐的另外一种大小写规则叫作camel,该规则约定在变量中使用的第一个单词的首字母小写,期于单词的首字母都是大写。在包括类、枚举类型、名称、属性、事件、方法、命名空间在内的大部分命名中使用Pascal规则。2、文件夹结构有组织的文件夹结构是一个成功的项目必不可少的,项目中代码文件需要有组织的放置,在人事管理系统中,文件夹的结构是显得十分有序的在人事管理系统中的主目录下有几个需要介绍的目录:BIN目录为项目编译之后的DLL文件,Components目录为项目中数据访问层的类库文件夹,database目录是存放数据库的文件夹,help是用来存放帮助功能里面的静态网页,Images目录为项目中图片存放的文件夹。在项目的主目录下存放页面文件,页面后台编码类文件以及页面资源文件。3、命名空间(namespace)命名空间是很重要的,一个命名空间能够包含多个程序集和模块。在人事管理系统中统一使用foxerp_fy作为应用程序的顶级命名空间。第三章主要关键技术ASP.NET是微软新推出的新型体系结构.NET框架的一部分,它为构造新一代动态网战和基于网络的分布式应用提高了强有力的支持。与以前的Web开发模型相比,ASP.NET提供了许多重要的优点,例如:简易性、安全性、可管理性等。而且与基于过程的ASP页面技术相比,面向对象技术在ASP.NET中得到了完全实现。用传统ASP技术建立的Web应用实例中,在页面中同时实现显示,业务逻辑和流程控制,这从工程化的角度考虑,它有许多不足之处。用户界面承担着向用户显示问题模型和与用户进行操作和I/O交互的作用。用户希望保持交互操作界面的相对稳定,但更希望根据需要改变和调整显示的内容和形式。在.NET框架下ASP.NET技术结合MVC设计模式很好地解决了上述问题。我认为在筹资管理模块中,其中的重要技术之一就是用了很多的DataGrid控件来读取数据,便于使用户查询、修改、更新资料的信息。3.1、关键技术之一用DataGrid对数据进行绑定,方便从数据库中提取、编辑、保存和删除数据信息。并对人事申请单进行分页处理,方便查看申请单信息。对人事申请单进行修改操作.下面就以员工就职>津贴/扣款维护讲解:DataGrid命名为jtkkG自动分页:publicvoidPageIndexChange(objectsource,System.Web.UI.WebControls.DataGridPageChangedEventArgse) { this.jtkkG.EditItemIndex=-1;//取消编辑 this.jtkkG.CurrentPageIndex=e.NewPageIndex; //指定当前页为新页 this.DataGridDataBind(); //重新绑定 }publicvoidDoItemEdit(objectsender,System.Web.UI.WebControls.DataGridCommandEventArgse) { if(Session["UserType"].ToString()!="2") //判断权限 { this.Response.Write("<scriptlanguage=javascript>alert('对不起,你的权限不够,不能使用修改。');</script>"); } else { this.jtkkG.EditItemIndex=e.Item.ItemIndex; //置相应列为编辑状态 this.DataGridDataBind(); //重新绑定数据源 } }更新:publicvoidDOItemUpdate(objectsender,System.Web.UI.WebControls.DataGridCommandEventArgse) { Class.JiuZhijiuzhiWH=newFoxERP_HRSA.Class.JiuZhi(); DataSetdataSet=newDataSet(); dataSet=jiuzhiWH.GetJinTieKouKuanList(yuangongZHT.Text.Trim()); intjintiekoukuanid=int.Parse(dataSet.Tables["JinTieKouKuanList"].Rows[e.Item.ItemIndex]["jintiekoukuanID"].ToString()); //从数据集中取出员工ID更新数据源:jiuzhiWH.UpdateJinTieKouKuan(jintiekoukuanid,((TextBox)e.Item.Cells[0].Controls[0]).Text,((TextBox)e.Item.Cells[1].Controls[0]).Text,Convert.ToDecimal(((TextBox)e.Item.Cells[2].Controls[0]).Text.Trim()), Convert.ToDateTime(((TextBox)e.Item.Cells[3].Controls[0]).Text.Trim()),Session["yuangongXM"].ToString().Trim(),Convert.ToDateTime(DateTime.Now.ToShortDateString())); this.jtkkG.EditItemIndex=-1; //重新绑定数据 this.DataGridDataBind(); }撤消:publicvoidDoItemCancel(objectsender,System.Web.UI.WebControls.DataGridCommandEventArgse) { this.jtkkG.EditItemIndex=-1; //对相应列撤消编辑状态 this.DataGridDataBind(); }publicvoidDeleteJinTieKouKuan(objectsender,System.Web.UI.WebControls.DataGridCommandEventArgse) { if(Session["UserType"].ToString()!="2" //判断权限) { this.Response.Write("<scriptlanguage=javascript>alert('对不起,你的权限不够,不能使用修改。');</script>"); } else { Class.JiuZhijiuzhiWH=newFoxERP_HRSA.Class.JiuZhi(); DataSetdataSet=newDataSet(); dataSet=jiuzhiWH.GetJinTieKouKuanList(yuangongZHT.Text.Trim()); intjintiekoukuanid=int.Parse(dataSet.Tables["JinTieKouKuanList"].Rows[e.Item.ItemIndex]["jintiekoukuanID"].ToString()); jiuzhiWH.DeleteJinTieKouKuan(jintiekoukuanid); this.DataGridDataBind(); } }3.2、关键技术之二通过验证控件来限制和判断文本框信息,对各个人事表单进行添加操作,方便维护人员对人事进行管理.检测员工一般属性是否添加过: publicintCheckYuangong(stringshenfenNO) { SqlConnectionmyConnection=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA110_CheckEmployee的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA110_CheckEmployee",myConnection); //定义myCommand为打开存储过程的数据库命令 myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameterShenfenNO SqlParameterparameterShenfenNO=newSqlParameter("@shenfenNO",SqlDbType.Char,18); parameterShenfenNO.Value=shenfenNO; myCommand.Parameters.Add(parameterShenfenNO); //为myCommand添加返回值parameterYuangongID SqlParameterparameterYuangongID=newSqlParameter("@yuangongID",SqlDbType.Int,9); parameterYuangongID.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterYuangongID); myConnection.Open();//数据库访问 myCommand.ExecuteNonQuery(); myConnection.Close(); intyuangongid=(int)(parameterYuangongID.Value); //获取返回值 returnyuangongid; }验证有效的邮箱地址:<asp:RegularExpressionValidatorid="RegularExpressionValidator1"style="Z-INDEX:126;LEFT:400px;POSITION:absolute;TOP:224px"runat="server"Font-Size="X-Small"ErrorMessage="输入有效E-mail"ControlToValidate="EmailT"EnableViewState="False"ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]+"></asp:RegularExpressionValidator>3.3、关键技术之三使用正则表达式来测试合法性,以确保合法的用户输入。1.正则表达式中的常用的符号及其含义:[]:用来定义可接收的字符{}:定义必须输入的字符数*:0或多哥字符{n}:正好n个字符{n,}:至少n个字符{n,m}:至少n个字符,但不多于m个字符2.正则表达式举例说明:.:匹配除\n之外的任何字符[指定字符集]:匹配指定字符集中包含的任何单个字符[^指定字符集]:不在指定字符集中的任何单个字符[0-9]:使用“-”允许指定连续字符范围。[0-9]该表达式表示0到9数字中的一个数字。例:[a-zA-Z]{5,9}:表示5-9个英文字母[0-9]{3}:表示至少3个数字[A-Za-z0-9]{8,}:表示至少8个字母数字{2,}@{3,}:表示@前至少有2个字符,@后至少有3个字符{0,}成都{0,}:表示必须包含“成都”两个字3.正则表达式控件的使用:.net中包含专门的正则表达式验证控件:RegularExpressionValidator,它在工具箱中可以找到。使用该控件时,应注意修改下面三个属性:ErrorMessage:设置你想要的提示信息ControlToValidate:设置需要验证的控件,如TextBox.ValidationExpress:填写用户自定义的正则表达式验证用户输入的日期格式的正则表达式:日期格式为:2006-05-04该日期对应的正则表达式为:20[0-9]{2}-[0-9]{1}-[0-9]{2}4.使用正则表达式的好处:.net编程门槛很低,新手很容易上路。而在安全性方面,新手最容易忽略的问题就是SQL注入攻击的问题。由于SQL语句存在自身的缺陷。因此,防范SQL注入攻击的一种有效的方法就是利用正则表达式对用户的输入进行验证。第四章数据库结构4.1数据库设计在分析了系统需求以及系统架构之后,现在开始分析系统的数据库整体设计,由于在需求分析中,已经很明确使用MicrosoftSQLServer作为系统的数据库,因此基于关系型的数据库的设计模式就是必需的,下图就是系统中数据库的设计图。1.表名:login用户表列号主键列名数据类型数据长度字段说明1YesloginIDnumeric9编号2NoyuangongZHchar10员工职号3Nousernamechar30用户名4Nopasswordchar10密码5Noquestionchar30问题6Noanswerchar10答案7Notypeint4用户类型2.表名:HRSA110员工就职维护表列号主键列名数据类型数据长度字段说明1YesyuangongIDnumeric9员工ID2NoyuangongZHchar10员工职号3Noxuexingchar2血型4Nosexchar2性别5Nohunfouchar4婚否6NoshenfenNOchar18身份证号7Nojiguanchar10籍贯8Nobirthdaydatetime8出生日期9Nobiyedatedatetime8毕业年月10Nokexichar20科系11Noschoolchar40毕业学校12Noxuelichar10学历13Notelephonechar12电话14NotongxunAddrchar40通讯地址15Noweihurenchar30维护人16Noweihudatedatetime8维护日期3.表名:HRSA111—员工就职单维护表列号主键列名数据类型数据长度字段说明1YesjiuzhiIDnumeric9就职ID2NojiuzhiDHVarchar50就职代号3NoyuangongXMchar30员工姓名4NoyuangongZHchar10员工职号5NozhiweiMCchar10职位名称6NobumenMCchar10部门名称7Nojiuzhidatedatetime8就职日期8NojiuzhiLBchar4就职类别9Noweihurenchar30维护人10Noweihudatedatetime8维护日期4.表名:HRSA112—薪资资料表列号主键列名数据类型数据长度字段说明1YesxinziIDnumeric9薪资ID2NoyuangongZHchar10员工职号3NoxinziLBchar10薪资类别4NojibenGZmoney8基本工资5Noshengxiaodatedatetime8生效日期6NoyinhangMCchar30银行名称7NoyinhangZHchar30银行帐号8Noweihurenchar30维护人9Noweihudatedatetime8维护日期5.表名:HRSA113—津贴/扣款资料维护表列号主键列名数据类型数据长度字段说明1YesjintiekoukuanIDnumeric9津贴/扣款ID2NoyuangongZHchar10员工职号3NojintiekoukuanMCchar10津贴/扣款名称4NojintiekoukuanLBchar10津贴/扣款类别5NojintiekoukuanJEmoney8津贴/扣款金额6Noshengxiaodatedatetime8生效日期7Noweihurenchar30维护人8Noweihudatedatetime8维护日期6.表名:HRSA120—员工证照资料维护表列号主键列名数据类型数据长度字段说明1YeszhengzhaoIDnumeric9证照ID2NoyuangongZHchar10员工职号3NozhengzhaoLBchar10证照类别4NozhengzhaoMCchar30证照名称5NozhengzhaoBHchar30证照编号6Noquzhaodatedatetime8取朝日期7Noyouxiaodatedatetime8有效期限8Noremarkvarchar50备注9Noweihurenchar30维护人10Noweihudatedatetime8维护日期7.表名:HRSA130员工眷属资料维护表列号主键列名数据类型数据长度字段说明1YesjianbaoIDnumeric9健保ID2NoyuangongZHchar10员工职号3NojuanshuXMchar30眷属姓名4Noguanxichar10关系5Nosexchar2性别6Nobirthdaydatetime8出生日期7Noremarkvarchar100备注8Nojianbaofeimoney8健保费9Nojiabaodatedatetime8加保日期10Notuibaodatedatetime8退保日期11NotuibaoYYvarchar50退保原因12Noweihurenchar30维护人13Noweihudatedatetime8维护日期8.表名:HRSA150—员工经历资料维护表列号主键列名数据类型数据长度字段说明1YesjingliIDnumeric9经历ID2NoyuangongZHchar10员工职号3Nofuwujigouchar30服务机构4NodanrenZWchar10担任职务5Nostartdatedatetime8起始日期6Noenddatedatetime8截止日期7NolizhiYYvarchar50离职原因8Noxinzimoney8薪资9Noweihurenchar30维护人10Noweihudatedatetime8维护日期9.表名:HRSA170—调职单维护表列号主键列名数据类型数据长度字段说明1YesdiaozhiIDnumeric9调职ID2NoyuangongZHchar10员工职号3NoyuanbumenMCchar10原部门名称4NoxinbumenMCchar10新部门名称5NoyuanzhiweiMCchar10原职位名称6NoxinzhiweiMCchar10新职位名称7Noshengxiaodatedatetime8生效日期8Noweihurenchar30维护人9Noweihudatedatetime8维护日期10.表名:HRSA180—离职单维护表列号主键列名数据类型数据长度字段说明1YeslizhiIDnumeric9离职ID2NoyuangongZHchar10员工职号3NoyuangongXMchar10员工姓名4NobumenMCchar10部门名称5NozhiweiMCchar10职位名称6NolizhiXZchar10离职性质7NolizhiYYchar30离职原因8Noliuzhidatechar10留职日期9Noshengxiaodatedatetime8生效日期10Noweihurenchar30维护人11Noweihudatedatetime8维护日期11.HRSA190—复职单维护表列号主键列名数据类型数据长度字段说明1YesfuzhiIDnumeric9复职ID2NoyuangongZHchar10员工职号3NoyuangongXMchar10员工姓名4Noyuanliutingdatedatetime8原留停日期5NoyuanbumenMCchar10原部门名称6NoxinbumenMCchar10新部门名称7NoyuanzhiweiMCchar10原职位名称8NoxinzhiweiMCchar10新职位名称9Noshengxiaodatedatetime8生效日期10Noweihurenchar30维护人11Noweihudatedatetime8维护日期12、表名:HRSA210—员工技能资料维护表列号主键列名数据类型数据长度字段说明1YesjinengIDnumeric9技能ID2NoyuangongZHchar10员工职号3NojinengMCchar30技能名称4NojinengDJchar10技能等级5Noremarkvarchar50等级说明6Noweihurenchar30维护人7Noweihudatedatetime8维护日期13.表名:HRSA320奖惩资料维护表列号主键列名数据类型数据长度字段说明1YesjiangchengIDnumeric9奖惩ID2NoyuangongZHchar10员工职号3NojiangchengDHchar10奖惩代号4NojiangchengMCchar10奖惩名称5Nozishuint4自述6Nojiangchengdatedatetime8奖惩日期7Nofashengdatedatetime8发生日期8NojiangchengYYvarchar50奖惩原因9Notianrenchar30提案人10Noweihurenchar30维护人11Noweihudatedatetime8维护日期14.表名:HRSA360—退休资料维护表列号主键列名数据类型数据长度字段说明1YestuixiuIDnumeric9退休ID2NoyuangongZHchar10员工职号3NobumenMCchar10人事管理系统名称4Notuixiudatedatetime8退休日期5Notuixiujinmoney8退休金6Noweihurenchar30维护人7Noweihudatedatetime8维护日期15.表名:HRSA410—教育训练课程档维护表列号主键列名数据类型数据长度字段说明1YeskechengIDnumeric9课程ID2NokechengDHchar10课程代号3NokechengMCchar30课程名称4NozhubanDWchar30主办单位5NoneiwaiXchar4内/外训6NoshoukeFSchar10授课方式7NoduixiangMCchar10授课对象名称8NoshoukeSSint4授课时数9NoxunlianFYmoney8训练人事10Noremarkvarchar50备注11Noweihurenchar30维护人12Noweihudatedatetime8维护日期16.表名:HRSA430—员工培训单维护表列号主键列名数据类型数据长度字段说明1YespeixunIDnumeric9培训ID2NoyuangongZHchar10员工职号3NokechengMCchar10课程名称4Nostartdatedatetime8日期(起)5Noenddatedatetime8日期(迄)6Noscorefloat8成绩7Noremarkvarchar500备注8Noweihurenchar30维护人9Noweihudatedatetime8维护日期17.HRSA190—复职单维护表列号主键列名数据类型数据长度字段说明1YeskaojiIDnumeric9考绩ID2NoyuangongZHfloat8员工职号3NolingdaoliFSfloat8领导力分数4NokongzhiliFSfloat8控制力分数5NozhixingliFSfloat8执行力分数6NoqihualiFSfloat8企划力分数7NoxietiaoliFSfloat8协调力分数8Nopingyuchar30评语9Nokaojidatedatetime8考绩日期10Nokaoherenchar30考核人11Noweihurenchar30维护人12Noweihudatedatetime8维护日期18、表名:HRSA_DHDWH—代号维护表列号主键列名数据类型数据长度字段说明1YesdaihaoIDnumeric9代号ID2Nodaihaovarchar30代号3NodaihaoMCvarchar30代号名称4NodaihaodangMCvarchar30代号档名称4.2人事管理系统的数据模型图第五章使用FoxERP人事管理系统说明书5.1FoxERP人事管理系统平台5.1.1硬件需求:最低配置:奔腾3CPU,128MB内存,20G硬盘推荐配置奔腾4CPU,256MB内存,40G硬盘或者以上硬盘软件需求:PowerDesigner10.0Windows2000/XP系统平台MicrosoftVisualStudio.NET2003SQLServer2000/2003IIS( 服务器)5.1.2安装:首先,需要在IISweb服务器下建立虚拟目录。单击“开始”→“程序”→“管理工具”→“internet服务管理器”,右键默认Web站点,选择“新建”→“虚拟目录”。弹出虚拟目录创建向导,输入“你想输的名称(foxerp_fy)”→“下一步”,选择你想发布的内容的系统文件所在的目录,单击“确定”按钮。再单击“下一步”→“完成”。其次,还要还原数据库,单击“开始”按钮→“程序”→“MicrosoftSQLServer”→“企业管理器”按钮,展开(localwindowsNT)右键数据库→附加数据库,打开“附加数据库“对话框,输入数据库名称“erp”,再将该数据库中的表集成到FoxERPDB2中,将存储过程也打扰到该数据库中。5.1.3第二期工程的后续工作:1:与人事管理系统中的数据库联系;2:人事异动后的管理工作。5.2FoxERP人事管理登录和进入系统5.2.1登录首先打开IE浏览器,输入http://localhost/FoxERP_HRSA/Login.aspx打开系统登录界面,如下图所示:如果不能正常打开看不见如下图所示的登录界面,那么有可能是虚拟目录没有正确设置。IE报HTTP错误403-禁止访问。输入用户名和密码,单击“确定”按钮进入系统(例如:输入用户名:admin,用户密码:admin),如果输入错误,系统为提示你,这时你可以重新输入。5.2.2进入FoxERP人事管理系统主界面进入系统之后可以看见系统的主页面,在界面上有一个菜单,你可以根据菜单的功能来进行操作。如下图所示:人事管理系统所包括的功能如下:员工就职:员工基本资料,就职资料,薪资资料维护,津贴/扣款维护,健保眷属资料维护,经历资料维护,证照资料维护,技能资料维护。人事异动:就职单维护,调职单维护,离职单维护,复职单维护。教育训练:教育训练课程文件维护,教育训练员工文件维护,教育训练课程名单,教育训练上课员工名单系统帮助:对系统进行操作的说明。考绩奖惩:考绩资料添加,考绩资料维护,奖惩资料添加,奖惩资料维护退休作业:退休员工就职文件维护,未来退休员工预估表用户注册:设置用户,用户注册系统注销:退出登录状态,回到登录界面5.2.3使用说明(1):员工就职使用说明员工就职说明:该模块用于对员工的一些相关信息进行填写、维护和获取。如果要对员工各种资料进行新增或修改等便可按如下步骤操作。进入代号档资料维护:㈠在主界面菜单中点击“员工就职”→“代号档资料维护”进入代号档资料维护界面,对所有技能代号档进行维护,在初始页面中输入想要查询的代号档名称,就可显示所有代号档的相关信息。下图为界面图:㈡使用者可进行“新增”操作,每一项都不能为空。如下为一“新增”操作。员工基本资料:㈠在主界面菜单中点击“员工就职”→“员工基本资料”进入员工基本资料界面,对员工基本资料进行维护,在初始页面中填写员工的相关信息,点[确定]就可把员工的基本资料添加进去。界面如下:㈡在使用过程中,使用者应该注意:使用者在填写员工的每一项资料的过程中,如果填写有误,则会有相应的提示给出。3、津贴/扣款维护㈠在主界面菜单中点击“员工就职”→“津贴/扣款维护”进入津贴/扣款维护界面,对员工的津贴/扣款资料进行维护,在初始页面中输入想查询的员工职号,如若此员工已有相应的津贴/扣款资料,点击[确定]按纽后,就可看到与此员工相关的所有津贴/扣款信息。界面如下:如果没看到与此员工相关的津贴/扣款资料,说明此员工还没添加津贴/扣款资料。点击[新增]按纽后,就可进入津贴/扣款维护的添加页面,对员工的津贴/扣款资料进行填写。“新增”界面如下:4、健保眷属资料维护:在主界面菜单中点击“员工就职”→“健保眷属资料维护”进入人事管理系统对应子目档维护界面,对人事管理系统对应子目档进行维护,在初始页面中输入想要查询的员工职号,如果此员工有相关的健保眷属,点[确定]按纽后,就可看到与该员工相联系的健保眷属资料界面如下:如果没看到与此员工相关的健保眷属资料,说明此员工没有与他相关联的健保眷属资料。如若想对他的健保眷属资料进行添加,可点击[新增]按纽,就可进入健保眷属资料维护的添加页面,对员工的健保眷属资料进行填写。“新增”界面如下:5、经历资料维护:在主界面菜单中点击“员工就职”→“经历资料维护”进入人事管理系统对应子目档维护界面,对人事管理系统对应子目档进行维护,在初始页面中输入想要查询的员工职号,如果此员工有相关的经历资料,点[确定]按纽后,就可看到与该员工相联系的经历资料。界面如下:如果没看到与此员工相关的经历资料,说明此员工还没有任何的经历资料。如若想对他的经历资料进行添加,可点击[新增]按纽,就可进入经历资料维护的添加页面,对员工的经历资料进行填写。“新增”界面如下:6、证照资料维护:在主界面菜单中点击“员工就职”→“证照资料维护”进入人事管理系统对应子目档维护界面,对人事管理系统对应子目档进行维护,在初始页面中输入想要查询的员工职号,如果有与此员工有相关的证照资料,点[确定]按纽后,就可看到该员工的所有证照资料。界面如下:如果没看到与此员工相关的证照资料,说明此员工暂时还无任何的证照。如若想对他的证照资料进行添加,可点击[新增]按纽,就可进入证照资料维护的添加页面,对员工的证照资料进行填写。“新增”界面如下:7、技能资料维护:在主界面菜单中点击“员工就职”→“技能资料维护”进入人事管理系统对应子目档维护界面,对人事管理系统对应子目档进行维护,在初始页面中输入想要查询的员工职号,如果此员工有相关的技能资料,点[确定]按纽后,就可看到与该员工相联系的技能资料。界面如下:如果没看到与此员工相关的技能资料,说明此员工暂时还无任何的特殊技能。如若想对他的技能资料进行添加,可点击[新增]按纽,就可进入技能资料维护的添加页面,对员工的技能资料进行填写。“新增”界面如下:(2):人事异动说明:人事异动说明:此功能模块的作用就是对员工的聘用情况进行记录,让我们可以随时查看每位员工的聘用、调职、离职和复职的情况。其中我们可以对员工的各种异动信息进行以关键字形式的寻找,并且寻找结果以报表的形式显示出来供我们使用(如打印出来)。1、进入“就职单维护”在主界面菜单中点击“人事异动”→“就职单维护”进入就职单界面。在初始页面中填写员工的就职信息,如若此员工的就职信息不曾添加过,点[确定]按纽后,就会提示:员工的就职信息添加成功;但若已经存在,就会提示:此员工的就职信息已经存在。界面如下:2、进入“调职单维护”在主界面菜单中点击“人事异动”→“调职单维护”进入调职单维护界面,对员工的调职信息进行填写。界面如下:进入“离职单维护”在主界面菜单中点击“人事异动”→“离职单维护”进入离职单维护界面。对员工的离职信息进行添加。如下图:4、进入“复职单维护”在主界面菜单中点击“人事异动”→“复职单维护”进入复职单维护界面,即可对员工的复职信息进行填写。界面如下:(3):教育训练:教育训练作业说明:在此模块中,我们可查询到公司为员工开设的各种训练课程,还可以看到各员工的受教育情况。进入“教育训练课程文件维护”在主界面菜单中点击“教育训练”→“教育训练课程文件维护”进入教育训练课程文件维护界面。在此界面中,可以对任何新的教育课程资料进行填写。界面如下:进入“教育训练员工文件维护”在主界面菜单中点击“教育训练”→“教育训练员工文件维护”进入教育训练员工文件维护界面。此界面主要是对各员工的对各课程的教育结果进行维护。如下图:进入“教育训练课程名单”在主界面菜单中点击“教育训练”→“教育训练课程名单”进入教育训练课程名单界面。在页面中输入想查询的员工职号,若此员工有相应的教育信息,点[确定]后就可看到与该员工相关的所有训练课程信息。如下图:进入“教育训练上课员工名单”在主界面菜单中点击“教育训练”→“教育训练上课员工名单”进入教育训练上课员工名单界面。在“课程名称”中输入想要查看的课程名称,若已存有相关信息,点[确定]后就可看到上该课程的所有员工名单。如下图:若上课员工里任何与上课相关的信息,可点击[新增],对上课员工的上课结果进行补充。界面如下:(4):考绩奖惩:考绩奖惩作业说明:此功能模块的作用,就是方便我们查看、了解、填写和修改各员工的考绩和奖惩情况。1、进入“考绩资料添加”在主界面菜单中点击“考绩奖惩”→“考绩资料添加”进入考绩资料添加界面。在此页面中,维护人可以对员工的考绩资料进行填写。界面如下:2、进入“考绩资料维护”在主界面菜单中点击“考绩奖惩”→“考绩资料维护”进入考绩资料维护界面。在界面中输入想要查看的考核年度,输入相应的考核码,如:Y表示年度考核,若存在此年度的考绩资料,点[确定]后就可看到相应的考绩资料维护名单。如下所示:若没有,也可对该年度的考绩资料进行添加,点[新增]后即可出现如下界面,方便修改、添加员工的相应考绩资料。如若想对员工的的考绩资料进行修改,选择此员工,点[修改]后即进入员工考绩资料的维护界面,就可直接对员工的考绩资料进行修改。如下图:如果是想对员工的请假、奖惩加扣考绩分数进行查询,选择该员工后点击相应的[请假]、[奖惩]按纽即可看到与该员工相关的请假、奖惩加扣考绩分数情况。效果如下所示:如果只是想查看员工的同年度或历年度的考绩资料,选择该员工后点[同年]或[历年]就可查看到该员工的同年度考绩资料或历年度考绩资料。如下图所示:3、进入“奖惩资料添加”在主界面菜单中点击“考绩奖惩”→“奖惩资料添加”进入奖惩资料添加界面。在此页面里,可对员工的奖惩情况进行添加。如下图:进入“奖惩资料维护”在主界面菜单中点击“考绩奖惩”→“奖惩资料维护”进入奖惩资料维护界面。如下所示,输入想要查看的员工的职号,如果此员工存在有相应的奖惩资料,点[确定]后就可以看到此员工的奖惩资料。(5):退休作业:教育训练作业说明:此功能模块的作业就是让我们对已退休员工的资料进行维护,通过该资料发放相应的退休金和抚恤金;同时还可对快退休的员工进行预估,以做好相应的人事准备等。1、进入“退休员工就职文件维护”在主界面菜单中点击“退休作业”→“退休员工就职文件维护”进入退休员工就职文件维护界面。在此页面里,用户可看到已退休的所有员工的相关退休资料。如下所示:如果是想对新退休的员工进行相应的退休资料填写,点[新增]后就可出现如下的添加界面,对新退休员工的资料进行填写。2、进入“未来退休员工预估表”在主界面菜单中点击“退休作业”→“未来退休员工预估表”进入未来退休员工预估表列印条件界面,在如下界面中,填写想要列印的未来退休员工的条件,点[确定]后就能出现未来退休员工的预估表的报表资料。如下两图所示:(6):用户注册:教育训练作业说明:此模块的功能就是方便管理者对系统用户进行管理和维护,以方便各员工的登录此系统了解各类信息。1、进入“设置用户”在主界面菜单中点击“用户注册”→“设置用户”进入设置用户界面。如下所示,此页面列出了所有用户的信息,在此页面中还可直接对用户的权限进行修改,或删除已不存在的用户。2、进入“用户注册”在主界面菜单中点击“用户注册”→“用户注册”进入用户注册界面。在此页面中,新注册的用户可以对自己的资料进行填写,还可以对自己的密码进行设置。如下图:第六章FOX-ERP人事管理主要源程序一、密码的修改和找回1:修改密码代码publicintMordifyPassword(stringusername,stringoldpassword,stringnewpassword,stringquestion,stringanswer) { SqlConnectionmyConnection=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA000_MordifyPassword的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA000_MordifyPassword",myConnection); myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameterUsername SqlParameterparameterUsername=newSqlParameter("@username",SqlDbType.Char,30); parameterUsername.Value=username; myCommand.Parameters.Add(parameterUsername); //为myCommand添加参数parameterOldpassword SqlParameterparameterOldpassword=newSqlParameter("@oldpassword",SqlDbType.Char,10); parameterOldpassword.Value=oldpassword; myCommand.Parameters.Add(parameterOldpassword); //为myCommand添加参数parameterNewpassword SqlParameterparameterNewpassword=newSqlParameter("@newpassword",SqlDbType.Char,10); parameterNewpassword.Value=newpassword; myCommand.Parameters.Add(parameterNewpassword); //为myCommand添加返回值parameterQuestion SqlParameterparameterQuestion=newSqlParameter("@question",SqlDbType.Char,30); parameterQuestion.Value=question; myCommand.Parameters.Add(parameterQuestion); //为myCommand添加返回值parameterAnswer SqlParameterparameterAnswer=newSqlParameter("@answer",SqlDbType.Char,10); parameterAnswer.Value=answer; myCommand.Parameters.Add(parameterAnswer); //为myCommand添加返回值parameterLoginID SqlParameterparameterLigonID=newSqlParameter("@loginID",SqlDbType.Int,9); parameterLigonID.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterLigonID); myConnection.Open();//打开数据库连接myConnection myCommand.ExecuteNonQuery(); //执行数据库命令myCommand myConnection.Close(); //关闭数据库连接myConnection //获取返回值 intloginid=(int)parameterLigonID.Value; returnloginid; }2:找回密码代码//根据该员工的职号返回该员工的用户名和找密码的问题 publicUserQuestionGetUsernameQuestion(stringyuangongZH) { SqlConnectionmyConnection=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA000_GetQuestionByYuangongZH的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA000_GetQuestionByYuangongZH",myConnection); myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameteryuangongZH SqlParameterparameteryuangongZH=newSqlParameter("@yuangongZH",SqlDbType.Char,10); parameteryuangongZH.Value=yuangongZH; myCommand.Parameters.Add(parameteryuangongZH); //为myCommand添加返回值parameterUsername SqlParameterparameterUsername=newSqlParameter("@username",SqlDbType.Char,30); parameterUsername.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterUsername); //为myCommand添加返回值parameterQuestion SqlParameterparameterQuestion=newSqlParameter("@question",SqlDbType.Char,30); parameterQuestion.Direction=ParameterDirection.Output;; myCommand.Parameters.Add(parameterQuestion); //为myCommand添加返回值parameterLoginID SqlParameterparameterLigonID=newSqlParameter("@loginID",SqlDbType.Int,9); parameterLigonID.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterLigonID); myConnection.Open(); //打开数据库连接myConnection myCommand.ExecuteNonQuery(); //执行数据库命令myCommand myConnection.Close(); //关闭数据库连接myConnectionintloginid=(int)parameterLigonID.Value; if(loginid<0) { returnnull; } else { UserQuestionuserQuestion=newUserQuestion(); userQuestion.question=(string)parameterQuestion.Value;userQuestion.username=(string)parameterUsername.Value; returnuserQuestion; } } //找回密码publicintGetPassword(stringyuangongZH,stringusername,stringanswer,stringnewpassword) {SqlConnectionmyConnection=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA000_GetPassword的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA000_GetPassword",myConnection); myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameteryuangongZH SqlParameterparameteryuangongZH=newSqlParameter("@yuangongZH",SqlDbType.Char,10); parameteryuangongZH.Value=yuangongZH; myCommand.Parameters.Add(parameteryuangongZH); //为myCommand添加返回值parameterUsername SqlParameterparameterUsername=newSqlParameter("@username",SqlDbType.Char,30); parameterUsername.Value=username; myCommand.Parameters.Add(parameterUsername); //为myCommand添加返回值parameteranswer SqlParameterparameterQuestion=newSqlParameter("@answer",SqlDbType.Char,10); parameterQuestion.Value=answer;; myCommand.Parameters.Add(parameterQuestion); //为myCommand添加返回值parameterNewpassword SqlParameterparameterNewpassword=newSqlParameter("@newpassword",SqlDbType.Char,10); parameterNewpassword.Value=newpassword;; myCommand.Parameters.Add(parameterNewpassword); //为myCommand添加返回值parameterLoginID SqlParameterparameterLigonID=newSqlParameter("@loginID",SqlDbType.Int,9); parameterLigonID.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterLigonID); myConnection.Open(); //打开数据库连接myConnection myCommand.ExecuteNonQuery(); //执行数据库命令myCommand myConnection.Close(); //关闭数据库连接myConnection intloginid=(int)parameterLigonID.Value; returnloginid; }二、员工就职1:代号档资料维护界面代码//添加代号 publicintAddDaihao(stringdaihao,stringdaihaoMC,stringdaihaodangMC) {SqlConnectionmyConnection=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA_DHDWH_AddDaihao的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA_DHDWH_AddDaihao",myConnection); myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameterdaihao SqlParameterparameterdaihao=newSqlParameter("@daihao",SqlDbType.VarChar,30); parameterdaihao.Value=daihao; myCommand.Parameters.Add(parameterdaihao); //为myCommand添加参数parameterdaihaodangMC SqlParameterparameterdaihaodangMC=newSqlParameter("@daihaodangMC",SqlDbType.VarChar,30); parameterdaihaodangMC.Value=daihaodangMC; myCommand.Parameters.Add(parameterdaihaodangMC); //为myCommand添加返回值parameterDaihaoMC SqlParameterparameterDaihaoMC=newSqlParameter("@daihaoMC",SqlDbType.VarChar,30); parameterDaihaoMC.Value=daihaoMC; myCommand.Parameters.Add(parameterDaihaoMC); //为myCommand添加返回值parameterdaihaoID SqlParameterparameterdaihaoID=newSqlParameter("@daihaoID",SqlDbType.Int,9); parameterdaihaoID.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterdaihaoID); myConnection.Open(); //打开数据库连接myConnection myCommand.ExecuteNonQuery(); //执行数据库命令myCommand myConnection.Close(); //关闭数据库连接myConnection intf_daihaoID=(int)parameterdaihaoID.Value; if(f_daihaoID>0) { returnf_daihaoID; } else { return0; } } //取得代号名称 publicstringGetDaihaoMC(stringdaihao,stringdaihaodangMC) {SqlConnectionmyConnection=newSqlConnection (ConfigurationSettings.AppSettings["ConnectionString"]);//实例化一个数据库连接对象myConnection //实例化一个使用myConnection打开存储过程HRSA_DHDWH_GetDaihaoMC的命令myCommand SqlCommandmyCommand=newSqlCommand("HRSA_DHDWH_GetDaihaoMC",myConnection); myCommand.CommandType=CommandType.StoredProcedure; //为myCommand添加参数parameterdaihao SqlParameterparameterdaihao=newSqlParameter("@daihao",SqlDbType.VarChar,30); parameterdaihao.Value=daihao; myCommand.Parameters.Add(parameterdaihao); //为myCommand添加参数parameterdaihaodangMC SqlParameterparameterdaihaodangMC=newSqlParameter("@daihaodangMC",SqlDbType.VarChar,30); parameterdaihaodangMC.Value=daihaodangMC; myCommand.Parameters.Add(parameterdaihaodangMC); //为myCommand添加返回值parameterDaihaoMC SqlParameterparameterDaihaoMC=newSqlParameter("@daihaoMC",SqlDbType.VarChar,30); parameterDaihaoMC.Direction=ParameterDirection.Output; myCommand.Parameters.Add(parameterDaihaoMC); myConnection.Open(); //打开数据库连接myConnection myCommand.ExecuteNonQuery(); //执行数据库命令myCommand myConnection.Close(); //关闭数据库连接myConnection stringf_daihaoMC=(string)parameterDaihaoMC.Value; if(f_daihaoMC!=null) { returnf_daihaoMC; }
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度物流运输履约担保合同模板2篇
- 2024年度大数据分析企业员工劳动合同范本3篇
- 2024年兽用疫苗研发、生产、销售与仓储一体化采购合同3篇
- 2024安置房购置合同样本:城市基础设施建设居民搬迁协议2篇
- 2024年度商品混凝土加工安全生产责任合同
- 2024年腻子产品定制研发与技术转移合同3篇
- 2024年度二人合伙开设餐厅经营合同2篇
- 2024年版夫妻和平分手合同模板版B版
- 2024年度校园小卖部广告投放合同3篇
- 2024年度宿舍租赁合同:含家具家电的员工宿舍租赁6篇
- 人工智能与生命科学融合
- 小学生愤怒情绪管理策略
- 医务科管理制度培训的效果评估与持续改进
- 手术器械采购投标方案(技术标)
- MSOP(测量标准作业规范)测量SOP
- 中考物理复习交流
- 拉运污水泄漏应急预案
- 八年级历史上册论述题汇总
- 资产评估学教程(第八版)习题及答案 乔志敏
- 体质健康成绩测试全自动化计算模板
- 机械制图习题集-附带答案
评论
0/150
提交评论