时间行进到21世纪,以计算机技术为主体的高新技术群体已经将触角深入到国发经济的方方面面。在市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行名类管理,交流的便捷。基中最实出的是要算在厂矿企事业单位的人事档案的计算机管理了。 人事档案数系统是一个为适应当前各个行业对人事信息管理的迫志需求而设计开发的软件系统。该系统的前台采用的是VB6.0软件开发系统,后台数据库采用的是Acce2000数据库。 整个系统有数据库文件和数据库管理系统两大部他构成。后台的Acce2000数据库文件是集中存储并管理分类人事档案信息的大本营,而前台的数据库管理系统是用来为数据库中的各种资料进行各种基本操作和管理。 一、总体结构和主要功能 人事档案管理系统主要包含职工个人自然情况,工作情况,简历,政治情况等各方面信息,内容比较庞大复杂。同时还综合考虑档案管理工作的性质,总结归纳出所需实现的功能。主要是为人事档案进行服务,对人事的变动、人事资料、以及人事资料的查询,统计等功能。总体上说具有编辑,查询,用户管理,图表统计等功能。 (一)灵活的数据记录编辑功能,可以随时对记录进行增加,修改,更新,删除,浏览等编辑操作。并将查询方式有机溶入编辑界面,可以实现对某项记录定位,再进行编辑,修改,更新。 (二)多个数据库表的任意组合条件的查询。便于在实际档案管理操作中呆对保种情况,多种条件下的人员情况进行统计查看。(三)具备分级用户权限管理设置,以确保档案的保密性和安全性。 (四)具有分类统计,使用图表显示的功能,该统计图表可根据数据库中记录情况的变化而变化。 (五)具有比较友好的人机界面,各种操作可以在直观的界面上通过人机交互式进行。 (六)具有辅助表管理功能,主要是对“学历”表中的字段“学历”,“部门表”中的字段“部门”,“政治面貌”表中的字段“政治面貌”,“职称”表中的字段“职称”,进行添加,修改,删除操作。 人事档案管理系统模型如下: 启动窗体 口令检验 主窗体 二、各模块功能 1、用户管理 (1)设置用户 功能:设置使用人事管理系统的用户及其使用权限。 整个人事管理系统由多个功能模块组成,不同的模块完成不同的功能,所以可以为不同的职工分配不同的功能,使其具有不同的权限,完成其权限所对应的功能,从而很好地管理好整个系统。 操作:选择该功能后,屏幕上显示出所有人事管理系统员工的用户名称。这时,可进行如下的操作: 1:增加:增加一用户。按该按钮后,就可输入新用户的内容,如:用户名称,密码和权限。所输入得登录名一定不能重复。 2:修改:修改用户设置。按该按钮后,就可修改选中用户的用户名,密码和权限,每一权限对应系统菜单上的一项功能,可为该用户选择任意的权限。用户在使用本系统时,要求输入用户的口令,为了安全,用户需建立一个只有自己才知道的特殊口令, 通常,系统的权限分为三大部分,即: 管理权限:设置用户和系统参数。 输入权限:档案卡片生成、个人简历输入和家庭成员输入。 查询权限:档案查询、档案统计。 根据需要,可以把这些功能分配给不同的员工。 3:删除:删除用户。按该按钮后,经确认,则选中的用户被删除 (2)用户登录 功能:用户登录进入人事管理系统。系统启动后,首先要做的就是用户登录。若不登录系统,所有功能都无法使用。用户只有登录系统后,根据其具有的权限,才能执行一定的操作。 操作:进入该功能后,要求输入用户的登录名及其口令,只有其登录名和口令完全正确,才能进入工资管理系统。系统会根据为用户分配的权限,设置其对应的功能为有效,用户就可操作该功能。 2、辅助表管理 辅助表管理功能是高级管理员及中级管理员拥有的权限,它的功能是对数据库进行新表的添加。主要是对“学历”表中的字段“学历”,“部门表”中的字段“部门”,“政治面貌”表中的字段“政治面貌”,“职称”表中的字段“职称”,进行添加,修改,删除操作。通过它的这个功能可以有效的对本单位人事部门的扩充进行及时的计算机管理。只要管理员进行简单的数据字段添加即可。 3、档案编辑 档案编辑模块中有4个子模块。他们是档案卡片、个人简历、家庭成员、历史档案等功能。这些功能因管理员的权限不同所表示出的功能使用也不同,普通管理员没有数据修改及删除的权利。在这些功能里详细的记录了所有单位员工的资料。 (1)档案卡片管理 功能:对全部员工的信息进行浏览;添加记录;对员工的详细资料进行修改;删除员工记录;按编号进行查找,快速查找该员工的
详细资料;按某一字段的内容进行筛选,筛选最后的结果是将和所选内容相同的全部找到。 (2)个人简历管理 功能:该模块与档案卡片管理类似,但是在界面设计上有一些不同,可以对员工个人简历进行全局浏览。除了浏览信息的功能外,还有一些基本操作的功能:添加记录;对已有员工的个人简历信息进行修改;删除员工个人简历的记录;可以按编号进
行查找,快速查找该员工个人简历的资料。 (3)家庭成员管理 功能:对全部员工的家庭成员信息进行编辑,浏览;实现方法同个人简历功能实现的方法一样。 (4)历史档案管理 功能:对于一些从档案卡片中删除的员工信息记录,需要存下来以供将来进行统计。此模块的主要功能就是完成对从档案卡片中删除的员工信息记录的保存工作。 4、档案查询 功能:对档案卡片的查询功能,包括唯一条件查询和模糊条件查询。 该模块的主要分为两部分:一是完成选择要查询的字段、条件操作符等功能;二是用来显示用户进行查询的完整条件及查询、退出按钮。当查询的条件选择完毕,点击确定按钮,在显示部分显示出来后,点击查询按钮才正式完成该模块的查询功能。会调出另外一个窗口来显示用户所要查询的符合条件的所有员工的资料。根据档案卡片中的各字段,选择相应的条件操作符输入相应的值即可进行档案查询。查出的记录可按两种形式浏览:只有该员工档案卡片中的资料;综合该员工档案卡片、个人简历、家庭成员中的所有资料。查询用户可以按自己的需要选择两种浏览方式。在这里可以查到符合程序要求的任何信息。再这里的选项中输入规定的范围即可查到相关的人事信息。 5、档案统计 功能:综合统计、单项统计和图表统计。单项统计是输入规定的要求后进行的统计它可以较详细直观的统计出要求的结果。图表统计可以详细的按性别、按政治面貌、按职称级别、按学历以直方图和饼型图进行表示。档案统计模块,分三个小模块: (1)综合统计:综合统计中将单位内所有的人事信息进行全面的统计。该模块主要是综合各方面的人数统计;对各部门的人数、符合档案卡片中各字段条件的员工人数、各年龄段人数以及工龄段人数等的统计。并且本查块提供重新统计功能,方便在一定时间段内对各项人数的进行更新,保持数据库中数据的即时性。 (2)单项统计:是按各单项条件对人数的统计功能。分为四部分:在选择分组统计的字段,一次只可选择一个字段;可选择统计条件,包括条件操作符及条件值;可选择统计是否包括平均工资汇总及工资总额汇总;可显示要统计的完整条件,包括上述的分组字段、完整的统计条件及是否包括各类工资汇总。每完成一项选择,要点击确定按钮,各条件才能在右下角显示出来以供统计。可同时选择分组统计、条件统计、工资汇总,也可只选择一项来进行统计。。 (3)图表统计:将各类统计图表化。用户可以选择按性别、政治面貌、职称级别或学历进行人数统计。用户还可以选择直方图或饼形图的图表显示方式. 三、功能的实现方法及实现的代码 1、本系统中VB6与数据库是如何连接的?写出简要代码? 本系统采用的数据库是Acce2000数据库,使用是ADO(ActiveDataObject)代码访问方式,它通过在程序中的一段代码与数据库建立连接。 代码如下: PrivatecAewADODB.Coection DimStrSqlAtring c.Provider="Microsoft.Jet.OLEDB.4.0" c.Coectiotring="d:\VB\Acce2000\rs.mdb" c.Open 注:在进行ADO方式数据库的连接时,要先进行类型库引用: MicrosoftActivexDataObject2.6library 2、浏览、恢复、添加、保存、修改、查找、筛选、解除筛选、排序、恢复排序、退出各功能是如何实现的?写出简要代码。 浏览:先将数据库打开,然后选择所需的表进行操作。 代码如下: Publicrs1AewADODB.Recordset DimStrSqlAtring StrSql="select*from档案卡片orderby职工编号" rs1.ActiveCoection=c rs1.CursorType=adOpenKeyset rs1.CursorLocation=adUseClient rs1.LockType=adLockOptimistic rs1.OpetrSql 移动记录指针有四种方法:(1)记录首:rs1.MoveFirst(2)前一个:rs1.MovePrevious(3)后一个:rs1.MoveNext(4)记录尾rs1.MoveLast 恢复:恢复功能是在用户选择添加或修改后出现的,是为了使用户在进行误操作后能够恢复数据的一个功能。 代码为:rs1.CancelUpdate 添加:在编辑窗口中,先将文本框清空,然后进行添加。并且要判断所输入的信息与所建的表的格式符合。最后添加到库中。 代码为:rs1.AddNew 保存:rs1.Update 修改:修改的的功能是与添加类似的,但是他会更新数据库中被要求修改的记录。先将各个字段所对应的控件置为可用,然后进行修改。修改之后保存。 IfAddNewOrModify="Modify"Then RsMain.rs2.Update temp=RsMain.rs2.Fields("序号") RsMain.rs2.Requery RsMain.rs2.Find"[序号]=’"&amtemam"’",,,adBookmarkFirst EndIf 查询:代码为, StrSql="select*from个人简历orderby职工编号" RsMain.rs2.ActiveCoection=RsMain.c RsMain.rs2.CursorType=adOpenKeyset RsMain.rs2.CursorLocation=adUseClient RsMain.rs2.LockType=adLockOptimistic RsMain.rs2.OpetrSql SetDataGrid1.DataSource=RsMain.rs2 筛选:代码为, Fieldame=RsMain.lrs1.Fields("职工编号").Name IfLen(Trim(Label1.Caption))=0Then FilterStr=Fieldame&am"=Null" Else FilterStr=Fieldame&am"="&am"’"&amLabel1.Captioam"’" EndIf RsMain.lrs1.Filter=FilterStr 排序:代码为, RsMain.lrs1.Sort=Fieldame’ASCENDINGDESCENDING 删除:代码为, RsMain.rs2.Delete 退出:关闭记录集操作,代码为, RsMain.rs2.close UnLoadMe 3.本系统浏览和修改是两个界面,是如何实现的?写出基本思想。 系统中浏览和修改的界面不同是因为在点击相应的按钮时通过布尔型变量控制不同控件的Enabled属性为True或False来实现的。 在浏览时信息的显示窗口采用的是Lable控件不能进行修改,并且将他们Enabled设置为True,而将和他们放在一起的其他控件Enabled设置为False,而在进行修改时浏览时显示信息的lable控件的Enabled属性变为False而和他们重合的其他控件的Enabled属性变为True,这样就实现了浏览与修改的不同的两个界面。 4.照片是如何使用的?写出基本思想。 照片在系统文件的PICTURE文件夹下,照片的文件名与系统中职工编号相对应,当选择某个职工时,程序读取他的职工编号与照片文件名一致时就会显示照片。如果将照片文件名更改,则系统就不能正确的读取照片的信息了。 代码为: DimiAsInteger DimboolAoolean DimfnameAtring DimpicturepathAtring fname=Trim(Label1.Caption)&am".bmp" IfDir("f:\VB\Lpicture\"&amfname)=""Then bool=False Else bool=True EndIf Ifbool=TrueThen picturepath="f:\VB\Lpicture\"&amfname Else picturepath="" EndIf Image1.Picture=LoadPicture(picturepath) 5.单击照片可以显示该记录的个人简历和家庭成员,该功能是如何实现的?写出基本思想。 单击照片时激发了Image控件的click事件,程序会按调用同样职工编号的职工资料显示窗体(Rs1Rs2Edit)。这样就实现了单击照片显示个人简历和家庭成员。 代码为, PrivateSubImage1_Click() IfRs1Edit.Text1.VisibleAndLen(Trim(Rs1Edit.Text1.Text))=0Then ExitSub Else LoadRs1AndRs2Edit Rs1AndRs2Edit.Show1 EndIf EndSub 6.本系统中的三个表,档案卡片表、个人简历表和家庭成员表是如何实现数据参数完整性的(连续更新、连锁删除)? 在数据库的关系中右键单击表之间的连线可以弹出编辑关系,选中实施参照完成性,在选中级连更新相关字段、级连删除相关记录就可以实现数据的连续更新和连锁删除了。 四、在查询模块中,下述功能是如何实现的? 1.《请选择字段》列表框中的内容是从表中取出的字段名,简述基本方法并写出简要代码。 DimiAsInteger List1.Clear Fori=0ToRsMain.rs1.Fields.Count-1 List1.AddItemRsMain.rs1.Fields(i).Name Nexti List2.Clear List2.AddItem"等于" List2.AddItem"不等" List2.AddItem"小于" List2.AddItem"小于等于" List2.AddItem"大于" List2.AddItem"大于等于" List2.AddItem"在...之间" List2.AddItem"不在...之间" List2.AddItem"Like操作符" 2.多个条件的组合查询代码如下: PublicQcAewADODB.Coection PublicQrsAewADODB.Recordset s1="["&amList1.List(List1.ListIndex)&am"]" s2=List2.List(List2.ListIndex) s3=Text1.Text s=s1&am2&am3 DimStrSqlAtring Qc.Provider="MSDataShape.1" Qc.Coectiotring="DataSource=f:\VB\Acce2000\rs.mdb"_ &am";DataProvider=Microsoft.Jet.OLEDB.4.0" Qc.Open StrSql="SHAPE{select*from档案卡片where"&amam"orderby职工编号}"&am"AEND({select*from个人简历}RELATE[职工编号]to[职工编号]),"&am"({select*from家庭成员}RELATE[职工编号]to[职工编号])" Qrs.ActiveCoection=Qc Qrs.CursorType=adOpenKeyset Qrs.CursorLocation=adUseClient Qrs.LockType=adLockOptimistic Qrs.OpetrSql 五、统计模块中的综合统计中,可实现部门的动态变化,简述实现的基本思想。 在综合统计的窗体中有重新统计按钮,该按钮的功能就是实现数据的动态统计功能。在重新统计的功能中有实现重新统计的代码。由于添加数据后数据提交到数据库,这事重新统计按钮在打开这个表,所以数据就是新的了。通过设置一个循环变量I,在表里进行循环统计,每经过一个字段,i的值加1,最后在对应响应的项目提交到数据库中,通过DataGrid控件输出显示出来。 RsMain.c.Execute("DELETEFROM综合统计") Trs.Requery SetDat立的不完善,在输入同一编号,不同姓名时也不出现错误,它只对编号有限制,这样不合理也不严密。在档案查询模块中,当前面的查询条件是含有上下界的或是查询次数超过4次时,查询功能就无法正常工作了。此时,无论输入任何查询条件,查询到的记录数都为0。在此模块中,当用户要查询一些相关记录时,必须在选择完查询条件及条件值,点击确定按钮后才可以点击查询按钮得到自己想查询的记录。在每次选择一个条件后,必须点击相应的确定按钮才能够进行按用户所要求的统计。当进行一次统计后,如果用户想重新开始一次新的单项统计,必须将原来用户所选择单项统计的各个条件清除或者退出重进才可以。在点击统计按钮后便清除所有的统计条件,方便用户重新统计。选择统计条件及相应的条件值时,系统对相同的条件及相应的值不进行检验,并允许这样的情况存在。在统计条件上应该对此进行约束,不允许前后选择相同的条件。以上是我对人事管理系统的一些意见。
|