《2022年4人力资源管理系统.doc》由会员分享,可在线阅读,更多相关《2022年4人力资源管理系统.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、工程4-人力资源治理系统工程湖南科创信息技术股份随着市场竞争的日趋剧烈,人才已成为实现企业本身战略目的的一个特别关键的要素。企业中人心向背和员工对工作的投入程度在特别大程度上决定了该企业的兴衰与成败。如何能保持本企业对员工的工作责任感,鼓舞他们的工作热情,减少人才的流失,已成为困扰企业主管和人力资源经理的一个日益锋利的征询题,能够说企业治理从根本上来讲确实是对人的治理。如今“公平、公正、合理”的企业治理原则已为不少企业所采纳。但是要实现“公平、公正、合理”绝非易事,它不是仅靠规章制度和政策就能够处理的。通过建立透明、相容、一致、易查和全面的人力资源信息系统,将与人相关的信息统一地治理起来,才有
2、可能为“公平、公正、合理”原则的实现,以及企业在运作和劳资纠纷等方面的风险躲避等建立一套科学的保障体系。本章将向读者全面剖析人力资源治理的内容,由此得出人力资源治理系统需求分析和数据建模,并最终演示如何利用Visual Basic.NET完成系统的制造。1 人力资源治理的任务与作用1.1 人力资源治理的任务人力资源治理工作的主要任务有:进展人力资源规划和分析贯彻平等就业时机原则聘任员工从事人力资源开发确定酬劳和福利处理员工与劳资关系人力资源规划和分析包括几方面的任务。在进展人力资源规划的过程中,经理人员将估计今后妨碍劳动力供求的有关要素。人力资源分析要求具备各种相关的信息材料、通讯系统和评价系
3、统,它们是从事协调人力资源工作所不可或缺的部分。政府在服从平等就业时机法规方面的要求,无疑将对所有其别人力资源治理工作产生严重妨碍。例如,企业在进展战略性人力资源规划时,为贯彻在雇佣少数种族成员和妇女方面的赞助性行为的要求,就必须为雇佣各种各样的雇员留有充分的余地。另外在招聘选拔和培训人员时,所有经理人员都必须恪守平等就业时机法规的要求。聘任员工指选择合适标准要求的相应数量的人员,来填补企业的岗位空缺。职务分析是聘任工作的根底。依照职务分析所得结论,就能够预备工作说明书和职务要求细则,这两项都是在招聘中所需使用的材料。在人员选拔过程中,应特别留意选择最符合要求的员工来填补企业的岗位空缺。员工培
4、训与人力资源开发工作包括想新雇员介绍企业的各种情况、对现有员工进展职业技能培训、鼓舞和协助员工在多方面提高和开展等内容。在职务不断演化和改变的环境下,为了习惯技术的变化,企业就必须对员工进展培训和再培训。此外,为迎接今后的挑战,还必须鼓舞各级负责人、治理者和所有员工不断有所开展和提高。为此企业一般制定了员工职业开展计划,这种计划的目的,是为那些在企业内寻求自我开展的员工设计出开展的途径,并安排为此所需要的有关活动。为了提高员工的工作成效,企业还应对员工的工作表现进展考核,以确定员工的本职工作终究做的如何样。酬劳确实是通过薪金、奖励和福利等方式来报答为企业工作的员工。企业必须认真设计和不断完善根
5、本工资和薪酬制度。除了工薪以外,越来越多的企业好指定了某些奖励计划,例如利润分享和工作奖励等。但是另一方面,快速增长的福利费用,特别是扶摇直上的医疗的保健费用,仍将接着是一个值得考虑和认真对待的严重征询题。假如员工和企业双方都想联手共创繁荣,那么治理着和员工就必须行之有效地处理双方的关系。不管员工是否由工会来代表,企业都必须注重与员工健康、人身平安和财物保障有关的各项工作。为促成企业与员工的良好关系,企业还必须保障员工的各种权利。另外为了使员工好像治理者那样精确地理解企业对员工的期望。企业还必须制定、传达和不断更新人力资源政策和规则。在有工会的企业中,企业还应注重和处理好资方和工会的关系。1.
6、2 人力资源治理系统的作用人力资源治理系统是以先进的软件和高速、大容量的硬件为根底的,新的人力资源治理形式,通过集中式的信息库、自动处理信息、员工自助效劳、外协以及效劳共享,到达降低本钱、提高效率、改良员工效劳形式的目的。它通过与企业现有的网络技术相联络,保证人力资源与日新月异的技术环境同步开展。一般来说,能够分为四个部分来理解人力资源治理系统。1. 治理人员角色和目的的改变传统的人力资源治理中,治理人员的绝大部分精力将消耗在繁琐的日常行政事务处理上,而作为企业治理层的参谋角色应该做的征询和策略制定的工作相对缺乏。通过人力资源治理系统治理人员将决大部分精力放在治理层提供征询、建议上,而在行政事
7、务上的工作能够由电子化系统完成,只需占用HR人员极少的精力和时间。2 提供更好的效劳人力资源治理系统能够迅速、有效地搜集各种信息,加强内部的信息沟通。各种用户能够直截了当从系统中获得本人所需要的各种信息,并依照相关信息做出决策和相应的行动方案。3. 降低本钱人力资源治理系统通过减少人力资源治理工作的操作本钱、降低员工流淌率、减少通讯费用等途径到达降低企业运作本钱的目的。4. 革新治理理念人力资源治理系统的最终目的是到达革新企业的治理理念而不仅仅是改良治理方式、优化人力资源治理。先进技术应用与人力资源治理时,并不仅仅是为了将现有的人力资源工作做的更好,更重要的是,做些关于企业来讲更有效率的事情,
8、成为治理层的决策支持者,为决策提供信息和处理方案。2 功能分析与系统流程图由于篇幅有限,本实例详细介绍如图1所示的功能开发过程,并简化其中各功能所包含的属性,其他功能读者完全能够参照这些功能的开发方法实现。人力资源治理系统图1详细介绍的功能模块历史工资奖励记录历史工资惩处记录当月工资治理修正明细并计算从历史导入导入到历史图2系统流程图3数据库设计一个根本的人力资源治理系统数据库中包括多张数据表,分别存放相应子功能的数据信息,其中组织机构编码表和职员根本信息表是起关键作用的表,用于存放根底的数据信息。其他涉及组织机构信息和职员信息的数据表,都只记录机构或职员的编号,依照作为外键的编号字段和组织机
9、构编码表或职员根本信息表相对应。因而这2张表和其他数据表间的关系是1:N的关系。本程序共需8张表,用处分别如表1所示。表1 系统数据表及其用处数据表名称数据表用处用户清单保存系统使用者的信息职员根本信息表用于保存企业组织机构的详细信息,包括机构间的层次编码等组织机构编码表用于保存企业员工的根本信息月工资统计表用于保存、计算当月的员工工资个人所得税表用于保存个人所得税的税率数据工资发放历史表用于保存所有月份工资发放的历史职员奖励表用于保存员工的奖励情况职员惩处表用于保存员工的惩处情况以下为数据表之间的关系图图3 数据表关系图3.1创立数据库打开SQL Server企业治理器,新建一个数据库,将其
10、命名为hrmbook。后面几小节我们将列出几个重点的数据表的建库脚本。3.2创立“组织机构编码表”CREATE TABLE dbo.组织机构编码表 (内部编号 int IDENTITY (1, 1) NOT NULL ,类别 varchar (100) NULL ,AbsIndex int NULL ,ItemIndex int NULL ,ItemLevel int NULL ,ParentIndex int NULL ,类别号 char (10) NULL ,单位编号 varchar (20) NOT NULL PRIMARY KEY,单位名称 varchar (100) NULL ,拼音
11、编码 varchar (50) NULL ,单位地址 varchar (100) NULL ,单位号码 varchar (50) NULL ,开户银行 varchar (100) NULL ,帐号 varchar (50) NULL ,开户全称 varchar (100) NULL) ON PRIMARYGO3.3创立“职员根本信息表”CREATE TABLE dbo.职员根本信息表 (内部编号 int IDENTITY (1, 1) NOT NULL ,职员编号 varchar (30) NOT NULL PRIMARY KEY,姓名 varchar (20) NOT NULL ,姓名简码
12、varchar (10) NULL ,性别 varchar (2) NULL ,出生日期 int NULL ,年龄 int NULL ,籍贯 varchar (50) NULL ,民族 varchar (20) NULL ,文化程度 char (50) NULL ,毕业学校 char (100) NULL ,健康情况 varchar (50) NULL ,婚姻情况 varchar (10) NULL ,身份证号码 varchar (18) NULL ,家庭 varchar (50) NULL ,办公 varchar (50) NULL , varchar (50) NULL ,电子邮件地址 v
13、archar (50) NULL ,职工账号 varchar (20) NULL ,单位编号 varchar (20) NULL, 备注 varchar (100) NULL ) ON PRIMARYGO3.4创立其他数据表CREATE TABLE dbo.用户清单 (用户编号 char (6) NOT NULL ,部门 char (20) NOT NULL ,姓名 char (10) NOT NULL ,性别 char (2) NOT NULL ,密码 char (10) NULL ) ON PRIMARYGOCREATE TABLE dbo.月工资统计表 (日期 int NULL ,职员编
14、号 varchar (30) Not NULL PRIMARY KEY,根本工资 float NULL DEFAULT (0) ,浮开工资 decimal(26, 2) NULL DEFAULT (0) ,合同补 decimal(26, 2) NULL DEFAULT (0) ,粮副补 decimal(26, 2) NULL DEFAULT (0) ,房补 decimal(26, 2) NULL DEFAULT (0) ,临时补 decimal(26, 2) NULL DEFAULT (0) ,职务工资 decimal(26, 2) NULL DEFAULT (0) ,工龄工资 decimal
15、(26, 2) NULL DEFAULT (0) ,考核工资 decimal(26, 2) NULL DEFAULT (0) ,奖金 decimal(26, 2) NULL DEFAULT (0) ,应发金额合计 decimal(26, 2) NULL DEFAULT (0) ,房租 decimal(26, 2) NULL DEFAULT (0) ,水电费 decimal(26, 2) NULL DEFAULT (0) ,请假扣除 decimal(26, 2) NULL DEFAULT (0) ,考勤扣除 decimal(26, 2) NULL DEFAULT (0) ,罚款 decimal(
16、26, 2) NULL DEFAULT (0) ,住房公积金 decimal(26, 2) NULL DEFAULT (0) ,医疗保险 decimal(26, 2) NULL DEFAULT (0) ,养老保险 decimal(26, 2) NULL DEFAULT (0) ,失业保险 decimal(26, 2) NULL DEFAULT (0) ,生育保险 decimal(26, 2) NULL DEFAULT (0) ,工伤保险 decimal(26, 2) NULL DEFAULT (0) ,应扣金额合计 decimal(26, 2) NULL DEFAULT (0) ,工资合计 d
17、ecimal(26, 2) NULL DEFAULT (0) ,个人所得税 decimal(26, 2) NULL DEFAULT (0) ,实发金额 decimal(26, 2) NULL DEFAULT (0) ,发放否 char (10) NULL ,月份 int NULL) ON PRIMARYGOCREATE TABLE dbo.个人所得税表 (编号 int NOT NULL PRIMARY KEY,级数 char (2) NOT NULL ,不计税工资 decimal(26, 2) NOT NULL DEFAULT (800),工资下限 decimal(26, 2) NOT NUL
18、L DEFAULT (0),工资上限 decimal(26, 2) NOT NULL DEFAULT (0),个人所得税率 decimal(26, 2) NOT NULL DEFAULT (0),速算扣除数 decimal(26, 2) NOT NULL DEFAULT (0),备注 varchar (50) NULL) ON PRIMARYGOCREATE TABLE dbo.工资发放历史表 (日期 int NULL ,职员编号 varchar (30) NULL ,根本工资 float NULL ,浮开工资 decimal(26, 2) NULL ,合同补 decimal(26, 2) N
19、ULL ,粮副补 decimal(26, 2) NULL ,房补 decimal(26, 2) NULL ,临时补 decimal(26, 2) NULL ,职务工资 decimal(26, 2) NULL ,工龄工资 decimal(26, 2) NULL ,考核工资 decimal(26, 2) NULL ,奖金 decimal(26, 2) NULL ,应发金额合计 decimal(26, 2) NULL ,房租 decimal(26, 2) NULL ,水电费 decimal(26, 2) NULL ,请假扣除 decimal(26, 2) NULL ,考勤扣除 decimal(26,
20、 2) NULL ,罚款 decimal(26, 2) NULL ,住房公积金 decimal(26, 2) NULL ,医疗保险 decimal(26, 2) NULL ,养老保险 decimal(26, 2) NULL ,失业保险 decimal(26, 2) NULL ,生育保险 decimal(26, 2) NULL ,工伤保险 decimal(26, 2) NULL ,应扣金额合计 decimal(26, 2) NULL ,工资合计 decimal(26, 2) NULL ,个人所得税 decimal(26, 2) NULL ,实发金额 decimal(26, 2) NULL ,发放
21、否 char (10) NULL ,月份 int NULL) ON PRIMARYGOCREATE TABLE dbo.职员奖励表 (序号 int IDENTITY (1, 1) NOT NULL PRIMARY KEY,职员编号 varchar (30) NOT NULL ,奖励类型 varchar (20) NULL ,奖励金额 float NULL DEFAULT (0),是否计入工资 char (10) NULL DEFAULT (否),奖励缘故 varchar (50) NULL ,部门意见 varchar (100) NULL ,奖励日期 int NULL) ON PRIMARYG
22、OCREATE TABLE dbo.职员惩处表 (序号 int IDENTITY (1, 1) NOT NULL PRIMARY KEY,职员编号 varchar (30) NOT NULL ,惩处类型 varchar (20) NULL ,惩处金额 float NULL DEFAULT (0) ,是否计入工资 char (10) NULL DEFAULT (否),惩处缘故 varchar (50) NULL ,部门意见 varchar (100) NULL ,惩处日期 int NULL) ON PRIMARYGO3.5创立外部关键字ALTER TABLE dbo.月工资统计表 ADD CON
23、STRAINT FK_月工资统计表_职员根本信息表 FOREIGN KEY (职员编号) REFERENCES dbo.职员根本信息表 (职员编号)GOALTER TABLE dbo.工资发放历史表 ADD CONSTRAINT FK_工资发放历史表_职员根本信息表 FOREIGN KEY (职员编号) REFERENCES dbo.职员根本信息表 (职员编号)GOALTER TABLE dbo.职员奖励表 ADD CONSTRAINT FK_职员奖励表_职员根本信息表 FOREIGN KEY (职员编号) REFERENCES dbo.职员根本信息表 (职员编号)GOALTER TABLE
24、dbo.职员惩处表 ADD CONSTRAINT FK_职员惩处表_职员根本信息表 FOREIGN KEY (职员编号) REFERENCES dbo.职员根本信息表 (职员编号)GO3.6创立存储过程系统使用了四个存储过程,分别实现从历史导入工资明细、计算当月工资和工资发放的功能。这些存储过程都在“当月工资治理”模块中使用,能够通过以下的脚本代码创立。 if exists (select * from dbo.sysobjects where id = object_id(Ndbo.sf_空数据置0) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop
25、 procedure dbo.sf_空数据置0GOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.sf_构成月工资统计表) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo.sf_构成月工资统计表GOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.sf_当月工资统计) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop
26、procedure dbo.sf_当月工资统计GOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.sf_当月工资发放) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo.sf_当月工资发放GO-create procedure sf_空数据置0asbegin transactionupdate 月工资统计表 set 根本工资=0 where 根本工资 is nullupdate 月工资统计表 set 职务工资=0 where 职务工资 is
27、nullupdate 月工资统计表 set 工龄工资=0 where 工龄工资 is nullupdate 月工资统计表 set 考核工资=0 where 考核工资 is nullupdate 月工资统计表 set 奖金=0 where 奖金 is nullupdate 月工资统计表 set 应发金额合计=0 where 应发金额合计 is nullupdate 月工资统计表 set 房租=0 where 房租 is nullupdate 月工资统计表 set 水电费=0 where 水电费 is nullupdate 月工资统计表 set 请假扣除=0 where 请假扣除 is nullu
28、pdate 月工资统计表 set 罚款=0 where 罚款 is nullupdate 月工资统计表 set 考勤扣除=0 where 考勤扣除 is nullupdate 月工资统计表 set 住房公积金=0 where 住房公积金 is nullupdate 月工资统计表 set 医疗保险=0 where 医疗保险 is nullupdate 月工资统计表 set 养老保险=0 where 养老保险 is nullupdate 月工资统计表 set 应扣金额合计=0 where 应扣金额合计 is nullupdate 月工资统计表 set 失业保险=0 where 失业保险 is nu
29、llupdate 月工资统计表 set 个人所得税=0 where 个人所得税 is nullupdate 月工资统计表 set 工资合计=0 where 工资合计 is nullupdate 月工资统计表 set 实发金额=0 where 实发金额 is nullupdate 个人所得税表 set 个人所得税率=0 where 个人所得税率 is nullcommitGO-create procedure sf_当月工资统计asbegin transactiondeclare month intselect month = 日期 from 月工资统计表- 计算奖金update 月工资统计表
30、set 奖金 = (select sum(奖励金额) from 职员奖励表 as i where i.是否计入工资=是 and i.奖励日期month*100 and i.奖励日期month*100 and i.惩处日期1 then 个人所得税率/100 else 个人所得税率 end from 个人所得税表 where 工资上限 1 then 个人所得税率/100 else 个人所得税率 end , gzxx = 工资下限 from 个人所得税表 where 工资下限=gzsxselect grsds = grsds + (gzhj-gzxx)*slupdate 月工资统计表 set 个人所
31、得税 = grsds where current of mycurfetch next from mycur into zybh,gzhjENDclose mycurdeallocate mycur- 计算实发工资update 月工资统计表 set 实发金额 = 工资合计-个人所得税commitGO-create procedure sf_构成月工资统计表 导入工资月份 int, 统计工资月份 intasbegin transactiondelete from 月工资统计表 - 删除已有数据if exists (select * from 工资发放历史表 where 日期=导入工资月份)beg
32、in- 从历史倒入insert into 月工资统计表(日期, 职员编号, 根本工资, 浮开工资, 合同补, 粮副补, 房补, 临时补, 职务工资, 工龄工资, 考核工资, 奖金, 应发金额合计, 房租, 水电费,请假扣除, 考勤扣除, 罚款, 住房公积金, 医疗保险, 养老保险, 失业保险, 生育保险, 工伤保险, 应扣金额合计, 工资合计, 个人所得税, 实发金额,发放否, 月份)select 统计工资月份, 职员编号, 根本工资, 浮开工资, 合同补, 粮副补, 房补, 临时补, 职务工资, 工龄工资, 考核工资, 奖金, 应发金额合计, 房租, 水电费, 请假扣除, 考勤扣除, 罚款,
33、住房公积金, 医疗保险, 养老保险, 失业保险, 生育保险, 工伤保险, 应扣金额合计, 工资合计, 个人所得税, 实发金额,发放否, 月份from 工资发放历史表 as h where h.日期=导入工资月份 end- 新的员工,历史没有记录,生成记录insert into 月工资统计表(职员编号,日期) select 职员编号,统计工资月份 from 职员根本信息表 as h where h.职员编号 not in (select 职员编号 from 月工资统计表)- 将空数据置0exec sf_空数据置0- 自动计算工资exec sf_当月工资统计commitGO- 发放指定职员的工资c
34、reate procedure sf_当月工资发放 职员编号 char(10)asbegin transactionupdate 月工资统计表 set 发放否=是 from 月工资统计表 where 职员编号=职员编号insert into 工资发放历史表select * from 月工资统计表 where 职员编号=职员编号delete 月工资统计表 where 职员编号=职员编号commitGO4代码与界面设计本系统采纳多文档窗体程序,每一功能对应一个子窗体。4.1程序运转结果本实例的运转结果如图4所示。选择主菜单中的各菜单项即可进入相应的功能。例如能够选择【薪资福利治理】|【当月工资治理
35、】菜单命令,调出如图5所示的工资治理功能窗体,在其中输入各个工资项明细,单击【计算当月工资】按钮能够计算出工资;其中的工资项明细也能够通过【导入工资历史】按钮从历史数据中导入,从而减轻输入工作的强度;单击工资发放按钮,能够发放选定职员的工资,打印出工资条并将工资发放的记录放入历史。图4 实例运转结果图5 当月工资治理功能窗体4.2创立工程启动Microsoft Visual Studio.NET2003,在主菜单中选择【文件】|【新建】|【工程】命令,弹出【新建工程】对话框没,在【工程类型】列表框中选择【Visual Basic 工程】,然后在【模板】列表框中选择【Window 应用程序】。在
36、【名称】文本框中输入一个适宜的方案文件名,选取要存放的位置,然后单击【确定】按钮完成新工程的创立。6.3创立系统主窗体(1) 利用系统默认生成的窗体作为主窗体,并将其对应的文件改名为“frmMain.vb”,为其添加主菜单控件以及StatusBar控件,规划如图6所示。图6系统主窗体(2)窗体的属性设置如表2所示。表2 主窗体属性设置对象(控件)名属性取值(说明)frmMainNamefrmMainfrmMainText人力资源治理系统frmMainIsMdiContainerTrueStatusBarText人力资源治理系统(3)窗体的主菜单属性设置如表5所示。表3 窗体主菜单属性设置菜单栏
37、菜单项属性取值(说明)MenuItemDepText机构编制治理MenuItemDepManageText机构设置及编码MenuItemDepInfoText机构详细信息MenuItemPeopleText职员信息治理MenuItemDepPeopleManageText职员信息维护MenuItemPeopleQueryText职员信息查询MenuItemSalaryText薪资福利治理MenuItemPeopleSalaryManageText当月工资计算MenuItemTaxInfoText个人所得税率MenuItemPrizeText工资发放历史MenuItemPunishText职员奖
38、励治理MenuItemSalaryhisText职员惩处治理(4)添加推断子窗体实例状态的函数GetInstanceState,此函数主要作用是用来实现单击主窗体的某菜单项,如【计算当月工资】只是出现一个计算当月工资窗体。Private Function GetInstanceState(ByVal name As String) As Boolean 获得frmMain窗体的子窗体的数量 Dim i As Integer = Me.MdiChildren.Length 循环推断是否有名为name的子窗体实例 For i = 0 To Me.MdiChildren.Length - 1 If Me.MdiChildren(i).Name = name Then 存在名为name的子窗体,是子窗体获得焦点并返回True Me.MdiChildren(i).Focus() Retur