人事管理系统分析与概述_第1页
人事管理系统分析与概述_第2页
人事管理系统分析与概述_第3页
人事管理系统分析与概述_第4页
人事管理系统分析与概述_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE人事管理系统分析与概述【摘要】信息技术为企业的发展提供了机遇,也带来了挑战。如何改良企业内部经营机制,公正、客观、全面、快捷地评估员工的业绩,实现以人为本的经营战略,提高人事管理工作的效率,使人事管理员有更多的精力去做人力资源分析、研究和开发工作,是企业立足发展,开拓未来,领先同行业的关键。本文叙述了一个人事管理系统形成的全过程,包括部分演示。【关键词】RAD、OLE、powerbulid8.0、sqlserver20001引言随着计算机技术、网络技术和信息技术的发展,越来越多地改善着现代人的观念。网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共享,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出来。现在我国的许多的机关单位的人事管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。基于这种情况,我研究开发了这套人事管理系统,希望这套系统能为学校的人事管理带来更多的方便。2系统需求分析及可行性研究2.1系统需求分析人事管理系统可以实现功能包括"人事信息维护"、"数据查询"、"统计报表"、"系统维护"。该系统应该提供人事信息的录入(修改)、删除、统计;人事常用的数据查询(包括各种复杂查询);各类人事统计报表的设计、生成、表式的导入和导出、打印;用户账号权限的设置、管理。2.2可行性研究人事管理一般是对人事基本信息的管理,所以在数据库模式定义中可以将人事基本信息定义在一个表中,这样对数据的增加、修改、删除、查询、统计操作处理起来都相对简单。统计报表的导出可以利用OLE(对象的连接与嵌入)这项成熟的技术来实现。打印功能完全可以根据开发工具自带的属性灵活的实现。用户账号权限的设置、管理可以在数据库中建立一张独立的表来实现,人事系统将根据用户不同的权限设置不同的操作功能。对于开发工具我选择powerbuild8.0+sqlsever2000。因为PowerBilder作为一种可视化的、面向对象的快速应用开发(RAD)工具,内置了包括数据窗口在内的多种对象类,可方便的访问数据库,它与SqlServer结合,使开发应用程序这项艰辛的工作就象堆积木那样简单方便。另外,PowerBilder有多个版本以支持多平台,其在某一平台下开发的代码,可容易的移植到另一平台上,只需重新编译即可。因此人事管理系统运行于Windows系统是没有问题的。同时SQLServer2000使用了工业界最先进的数据结构,能够为要求最苛刻的Web应用和企业应用提供高度的可扩展性和高可靠性。微软提供了许多技术和工具,作为数据库系统的标准集成组件。而且,通过巧妙的设计以及自动调整,自动管理特性,SQLServer2000使客户可以更快,更容易的享受所用这些最先进的Web和分析技术所带来的好处,能够快速提交应用,从而赢得竞争上的优势。SQLServer2000提供了重要的安全性方面的增强,保护防火墙内和和防火墙外的数据,支持强有力的,灵活的,基于角色的安全,拥有安全审计工具,并提供高级的文件加密和网络加密。SQLServer2000在TPC-C测试中在所有平台下都创立了新的世界纪录。3系统规划3.1项目规划人事管理系统是一个典型的数据库应用程序,它分为数据的录入、数据的删除、数据的修改、数据的查询、数据的统计分析、账号的管理、日志的管理八部分组成。具体可分为数据录入模块、修改删除模块、查询模块、统计模块、报表打印模块、账号管理模块、日志的管理模块组成,另外还有一特殊系统模块。现规划功能模块如下:3.1.1数据输入模块该模块的主要功能是负责输入数据,所以该模块的设计出发点应从方便用户操作的角度出发,如:非法数据输入出现错误提示等,另外一些较固定数据可让用户从下拉框种选择,不必自己输入。3.1.2数据查询模块用户可以直接快速地查阅和打印系统中的员工个人信息(如人员情况、部门情况、科室情况、职称评定、在职情况和决策支持等信息);也可以做出各种复杂的查询,用户可根据任意字段进行查询,包括多条件的与和或运算,为领导作出准确判断提供数据的支持。3.1.3数据删除修改模块修改删除模块通常也是数据库中必须有的一个模块,因为在输入数据过程中难免会有出错的时候。当修改删除涉及到多个表时,本系统将做出判断并给出提示及相应处理,以保证数据的完整性及一致性。3.1.4数据统计分析模块该模块将对数据进行统计,包括分组统计,二维表统计及饼图统计。各种统计结果都应该能够打印。3.1.5报表打印模块数据的打印也是系统不可或缺的模块,打印页面的大小及上下左右的边距应由用户自己自由设置。也可以将报表导入到word或者excel中,由用户自己设定打印方式。3.1.6账号管理模块实现了对用户分组管理,并且可对用户的数据访问权限、功能操作权限进行设置,大地保证了操作的安全性、严谨性及保密性。3.1.7日志管理模块系统将用户名,操作时间,操作内容都记录下来,然后写到数据库中。这样可以知道那个用户什么时间作了什么操作,更好的维护了系统的安全性。3.2系统流程图保存用户对数据库所作的操作,并且写入日志表中保存用户对数据库所作的操作,并且写入日志表中退出系统数据查询基本信息模块部门信息模块科室信息模块登陆系统人事管理系统编制信息模块日志信息模块数据增加数据删除数据修改数据统计日志管理账号信息模块基本信息录入账号管理数据录入3.3规划数据库数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的记录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。根据系统规划和上面的理论:可将该数据库信息分为人事基本信息,职称变动信息,职务变动信息,职别变动信息,学习情况信息,工作变动信息,学习情况信息,科室名称,部门名称九个主题,也就是说至少要九个表,另外还有部分系统编码表。4系统设计和实现4.1数据分析与编码设计数据分析主要是分析各种数据的用途及相互之间的关联,分析数据的类型、数量发生频度和使用频度,并具体弄清楚每个数据所需的范围和位数及来源的时间性,为数据库、文件设计及输出、输入设计提供依据,也为制定合理的数据处理方法提供依据。编码是一项基础工作,编码必须唯一,编码设计的目的是为了便于数据的存储和检索,提高处理的效率和精度,节省处理时间和减少存储空间且方便使用。

4.2数据库设计本系统新建一个数据库(rsgl.dbf),加强完善对人事系统的管理。4.2.1理论依据一般来说,一个应用程序的数据结构是实现该程序的关键因素,SqlServer关系数据库模型,是以关系集合理论中重要的数学原理为基础的,通过定义创建该集合的很少一些规则,即可方便地处理一些数据,这种技术被称为数据规范化。.第一范式(1NF):消除重复字段和非原子的值。.第二范式(2NF):要求每一个字段都依赖于主关键字段的每一部分。.第三范式(3NF):要求所有非主关键字都只依赖于主关键字段。确定字段原则: 根据表中存储信息的不同,表中所需的字段也不一样,在确定所需字段时有下列方法可供使用:.描述不同主题的字段应属于不同的表,通过定义之间的关系,可以将多个表中的字段进行数据组合,生成各种表单或报表。.不要在表中存储通过推导或计算可以得到的数据。.收集所需的全部信息。应全面检查书面的表单和报表,确定所需的数据都已包括在所设计的表中或可由这些表计算出来。.以最小的逻辑单位存储信息。应尽量把信息分解成比较小的逻辑单位。.对于主关键字段,SqlServer不允许其有重复值或NULL值。确定字段数据类型规则:在实际选择数据类型时,应结合字段的自身情况并考虑以下几点:.该字段用于存储什么类型的值.要对字段中的值执行什么类型的运算.是否要用字段进行排序或筛选.是否用字段对记录进行分组4.2.2数据库模式定义根据需求分析本系统一共定义了12个表,分别为人员基本信息表(T_Rsxx)、部门表(T_Bmxx)、科室表(T_Ksxx)、职称变动表(T_Zcbd)、职务变动表(T_Zwbd)、职别变动表(T_Zbbd)、学习情况表(T_Xxqk)、工作变动情况表(T_Gzbd)、教学经历表(T_Jxjl)、编制信息表(T_Bzxx)、人事管理日志表(T_Rsrz)账号管理表(T_Zhgl)。其中人员基本信息表与职称变动表、职务变动表、职别变动表、学习情况表、工作变动情况表、教学经历表通过字段rybh相关联,构成了人事的全部信息。人事管理日志表保存每次用户登陆系统后所作的一切操作。账号管理表保存所有用户的信息,包括用户名,口令。编制信息表保存了12个表中的汇总信息,包括部门编号、政工人数、行政人数、会统人数、教学人数、科研人数、出版人数、开发人数、资料人数、实验人数、技术人数、卫技人数、中幼教人数等等。部门表包括了本系统的所有部门,科室表包括了本系统的所有科室。以下是数据库表结构的图形表示。4.3模块设计4.3.1数据录入模块的设计通过数据窗口的insertrow(0)函数,先插入一条空记录,然往空记录中输入数据,保存到数据库中即可。对于不同的表,保存方式不同。人员基本信息表的新记录保存使用数据窗口的update()函数完成。在保存之前做安全性检测,以防不合理数据入库。其它表的输入与基本信息表类似。其中科室表的新记录保存使用数据窗口的update()函数完成。剩余的表由于它们的主键都是行号(int类型的),在数据库中把它们的Identity属性都设为了yes,所以这些表的新记录保存只能用insertinto表名()values()语句来完成。4.3.2数据删除模块的设计通过数据窗口的deleterow(currentrow)函数,删除一条当前记录,保存到数据库中即可.人员基本信息表中的一条记录被删除,与其关联的其他表中的信息也将被删除,这一目的是为了保证数据的一致性和完整性,此表的记录保存使用数据窗口的update()函数完成。其他表中的相关信息被删除是通过”deletefrom表名where条件”sql语句完成的。4.3.3数据修改模块的设计如果修改一条当前记录,先检查一下数据是否合法,然后通过数据窗口的update()函数保存到数据库中即可。如果人员信息的人员编号被修改,其他关联表中的人员编号也作相应的修改,其目的是为了保证数据的一致性和完整性。人员信息的修改的格式式freeform其他的表的修改与其操作类似,只是显示风格不同而已4.3.4数据查询模块的设计数据的查询是通过sql语句实现的,系统使用一个数据窗口显示查询条件,包括“名称”“匹配”“数值”“条件”。单击“增加”可以在条件框中增加一个空条件,然后按照用户的要求添加合适的条件,其中“名称”字段可选择,包括了基本信息表中的所有字段,“匹配”字段可选择,包括“>,<,=,>=,<=,<>”,“数值”字段可根据“名称”字段添加不同的值,“条件”字段是为了做多条件查询设置的,包括“AndOr”。当用户做了一次查询之后,可以修改“数值”字段的值做下一次查询,也可以单击上面的“删除”一个查询条件,以适应不同的查询,或者单击“全删”删除所有的查询条件重新安排查询。当查询条件输入完毕以后,单击“确定”就可按照相应的条件进行查询了,查询的结果显示在右上方的基本信息框中。基本信息框中显示了基本信息表中的所有字段,可以根据用户的要求选择要显示的字段。4.3.5报表打印模块的设计数据的打印包括:页面设置,打印预览,打印三部分,其中打印的参数是通过结构体来传递的。结构体的定义如下:struc_printinfofromstructure integer i_marginleft//到左边沿的距离 integer i_marginright//到右边沿的距离 integer i_margintop//到上边沿的距离 integer i_marginbottom//到下边沿的距离 integer i_orientation//横打还是纵打 integer i_papersize//纸张大小 integer i_papersource//纸张来源 boolean b_OK//是否单击了“确定”页面设置:页面设置的参数是通过结构体穿传送的,界面见下图打印:页面设置完成以后就可以打印了,打印的窗口如下图:打印预览的基本思想:打开预览窗口时,先把要预览的数据窗口中的数据传送到到预览窗口,然后设置预览窗口属性完成预览。预览界面见下图:4.3.6账号管理模块的设计账号管理是按照用户的权限设定的,高级用户可以分配用户、修改其他用户的权限。中级用户和普通用户只能修改自的口令。这些操作可以利用数据窗口的基本属性就可以实现。具体界面如下图:4.3.7日志管理模块的设计在每次退出系统的时候,查找一下数据窗口的缓冲区就可以获得用户对数据库的操作,包括数据的增加、删除、修改。然后系统将用户名,操作时间,操作内容都记录下来,写到数据库中。4.4关键技术4.1导入word函数导入word函数基本思想:建立ole对象连接word,获得要导入数据窗口的行数和列数根据数据窗口的行数和列数获得数据窗口中的数据,然后一个数据一个数据的写入到word中,最后断开ole对象连接。具体代码://==========================================================//Function-f_exportto_word////Description:将数据窗口中的数据导出到word文件中////Arguments: // datawindowdatawindow// <description>要保存的数据窗口////Returns: (none)//==========================================================OLEObjectole_objectole_object=CREATEOLEObject//连接wordIFole_object.ConnectToNewObject("Word.Application")<>0THEN MessageBox('OLE错误','OLE无法连接!') returnENDIFole_object.Visible=Truelongll_colnum,ll_rownumconstantlongwdWord9TableBehavior=1constantlongwdAutoFitFixed=0constantlongwdCell=12stringls_value//得到数据窗口数据的列数与行数(行数应该是数据行数+1)ll_colnum=Long(datawindow.object.datawindow.column.count)ll_rownum=datawindow.rowcount()+1ole_object.Documents.Add()ole_object.ActiveDocument.Tables.Add(ole_object.Selection.Range,ll_rownum,ll_colnum)stringls_colnameintegeri,jfori=1toll_colnum//得到标题头的名字ls_colname=datawindow.describe('#'+string(i)+".name")+"_t"ls_value=datawindow.describe(ls_colname+".text") ole_object.Selection.TypeText(trim(ls_value)) ole_object.Selection.MoveRight(wdCell)nextdatawindow.setredraw(false)ole_object.Selection.MoveLeft(wdCell)fori=2toll_rownum forj=1toll_colnum datawindow.scrolltorow(i-1) datawindow.setcolumn(j) ls_value=datawindow.gettext() ole_object.Selection.MoveRight(wdCell) ole_object.Selection.TypeText(ls_value) nextnextdatawindow.setredraw(true)constantlongwdFormatDocument=0//保存新建的文档ole_object.ActiveDocument.SaveAs("sample.doc",0,False,"",True,"",False,False,False,False,False)//断开OLE连接Ole_Object.DisConnectObject()DestroyOle_Object4.2导入excel函数导入excel函数基本思想:建立ole对象连接excel,获得要导入数据窗口的行数和列数,根据数据窗口的行数和列数获得数据窗口中的数据,然后一个数据一个数据的写入到excel中,最后断开ole对象连接.具体代码://==========================================================//Function-f_exportto_excel////Description:将数据窗口中的数据导出到excel文件中////Arguments: // datawindowdatawindow// <description>要保存的数据窗口////Returns: (none)//==========================================================OLEObjectole_excel,xlsubole_excel=CREATEOLEObjectintli_retli_ret=ole_excel.ConnectToObject('Excel.Application')ifli_ret<>0then li_ret=ole_excel.ConnectToNewObject('Excel.Application') ifli_ret<>0then MessageBox('OLE错误','OLE无法连接,请返回重试!') endif ole_excel.Visible=falseendifole_excel.Application.Workbooks.add()ole_excel.Application.Visible=truelongi,j,ll_cols,ll_TargetRow,kstringls_colname,ls_title//列名,列标题stringls_data,ls_syntax//数组记录各显示列的值,取各列stringarray_title[],array_col[]//以数组记录非隐藏列的列标题stringls_xzb //X坐标stringls_x[]ll_cols=Long(datawindow.Describe("DataWindow.Column.Count"))//记录总列数xlsub=ole_excel.Application.ActiveWorkbook.Worksheets[1]//得到显示字段的列标题和坐标fori=1toll_colsls_xzb=datawindow.Describe("#"+String(i)+".x") ifls_xzb<>'!'andls_xzb<>'?'then ls_colname=datawindow.Describe("#"+String(i)+".name")+"_t" ls_title=datawindow.Describe(ls_colname+".text") k++ array_title[k]=ls_title//记录其列标题 array_col[k]=datawindow.Describe("#"+String(i)+".name") ls_x[k]=ls_xzb endifnext//按坐标值从小到大进行冒泡排序stringls_tempfori=1toupperbound(ls_x)-1 forj=i+1toupperbound(ls_x) iflong(ls_x[i])>long(ls_x[j])then //列标题 ls_temp=array_title[i] array_title[i]=array_title[j] array_title[j]=ls_temp //列名 ls_temp=array_col[i] array_col[i]=array_col[j] array_col[j]=ls_temp //X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论