vfp课程设计报告人力资源管理系统_第1页
vfp课程设计报告人力资源管理系统_第2页
vfp课程设计报告人力资源管理系统_第3页
vfp课程设计报告人力资源管理系统_第4页
vfp课程设计报告人力资源管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

Vfp课程设计报告人力资源管理系统姓 名 张瑾、杨舒仪 学 院 人文与社会科学学院 专业班级 公共事业管理 学 号 、指导老师 陈芬 Vfp人力资源管理系统设计报告一、系统总体规划 1、系统任务人力资源管理是所有公司、企事业单位所必需的,功能完善及操作方便的人力资源管理系统,可以大大提高管理员的工作效率,及时准确的反映员工的基本信息及薪酬情况,本系统是根据某高等学校的人力资源进行设计的,主要将人力资源的统计从人工直接统计解放出来,利用计算机来统计,直接获得准确信息,使职员管理工作系统化、规范化、自动化。具有较强的针对性和功能性。2、系统功能本系统采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,主要完成以下功能:(1)档案更新l 人事记录的增加;l 人事记录的修改;l 人事记录的删除;l 人事记录的浏览;(2)档案统计l 统计职工年龄情况l 统计职工政治面目l 统计职工婚姻状况l 统计职工技术职务l 统计职工文化程度l 统计职工民族情况l 统计职工工资情况(3)档案输出a.浏览查询l 查询输出个人简历l 查询输出家庭成员l 查询输出人事卡片l 查询输出社会关系b. 精确查询l 精确查询个人简历,家庭成员,人事卡片,社会关系(4)修改密码(5)报表打印l 档案统计报表打印l 档案输出报表打印3、开发和运行环境开发工具:Visual FoxPro 6.0运行环境:Windows 9x 、Windows 2000、Windows XP二、需求分析人力资源管理系统的设计最重要的是各项功能健全,使用方便简洁,界面友好。本套系统可以满足管理员对职工信息的浏览、修改、查询、打印、统计等多项功能,操作简易。三、系统框架统计职工年龄统计文化程度统计政治面目统计职工工资统计技术职务统计职工民族统计婚姻状况欢迎界面登陆主菜单档案统计档案更新档案输出修改密码退出人事记录更新人事记录添加人事记录删除查询输出社会关系查询输出个人简历查询输出人事卡片查询输出家庭成员退出界面精确查询四、小组成员分工数据库的创建杨舒仪表和视图的创建杨舒仪各表之间关系的建立杨舒仪欢迎界面张瑾登录设置杨舒仪修改密码杨舒仪数据输出张瑾数据更新杨舒仪数据统计张瑾精确查询张瑾报表设计张瑾结束界面杨舒仪表单整合张瑾Bug修正张瑾杨舒仪菜单的创建张瑾主程序的编写张瑾系统美化张瑾杨舒仪五、系统功能模块设计1、登录模块管理员通过输入正确的用户名、密码、等级方可进入到主菜单,进入人事档案的浏览、更新、统计、打印报表以及修改密码等表单。2、档案更新模块(1)增加人事记录。可直接添加人事记录,根据提示输入新的人事数据,点击确定按钮保存至rskp表,代号重复时会有提示,退出返回主菜单;(2)修改人事记录。浏览人事记录的过程中,随时可以通过点击编辑按钮进行修改,点击保存可保存修改后的记录,退出返回主菜单;(3)删除人事记录。浏览人事记录的过程中,随时可以通过点击删除按钮删除这一条记录,退出返回主菜单。3、档案输出模块四张查询表单分别用于浏览输出职工个人简历、社会关系、家庭成员和人事基本信息,并可进行报表打印。一张表单精确查询,输出任一代号的人员的相关信息。4、档案统计模块 根据职工的年龄、文化程度、技术职务、政治面貌、婚姻状况、民族、工资以及进行统计。5、修改密码模块密码修改功能,该功能方便了用户对于自身密码的定期修改的要求,保证了信息的安全。六、数据库设计1、数据库表结构设计本系统建立数据库后,数据库中主要包括五个数据表:人事基本信息表、个人简历表、家庭成员信息表、社会关系信息表、管理人员表,其字段属性如下:人事基本信息表rskp字段名标题字段类型宽度小数位数dh代号字符型4bm部门字符型8xm姓名字符型8xb性别字符型2xrzw现任职务字符型10csny出生年月日期型8mz民族字符型8jg籍贯字符型10zzmm政治面目字符型8zc职称字符型6whcd文化程度字符型4jkzk健康状况字符型4jtcs家庭出身字符型10brcf本人成分字符型4hyzk婚姻状况字符型4cjgzsj参加工作时间日期型8jbdwsj进本单位时间日期型8gz工资数值型62gzbt工资补贴数值型62jtzz家庭住址字符型20nl年龄数值型4bz备注字符型40bh编号数值型1zh职号数值型3dm代码数值型1家庭成员表jtcy字段名标题字段类型宽度小数位数dh代号字符型4ybrgx与本人关系字符型4csny出生年月日期型8hyzk婚姻状况字符型8whcd文化程度字符型8zzmm政治面目字符型8gzdw工作单位字符型10zwgz职务工种字符型10gz工资数值型62jjly经济来源字符型10社会关系表shgx字段名标题字段类型宽度小数位数dh代号字符型4gxxm关系姓名字符型6ybrgx与本人关系字符型4zzmm政治面目字符型4gzdw工作单位字符型20zwgz职务工种字符型6bz备注字符型20个人简历表grjl字段名标题字段类型宽度小数位数dh代号字符型4kssj开始时间日期型8xm结束时间日期型8gzdw工作单位字符型20drzw担任职务字符型10管理人员表glry字段名标题字段类型宽度小数位数xm姓名字符型8mm密码字符型6dj等级字符型22、关系设计七、表单介绍及关键的程序代码本系统有24张表单,根据修要对每张表单的autocenter、caption、fontsize、titlebar等的属性,并对表单进行了界面的修饰与美化。主要表单有如下1、 欢迎界面运行“人力资源管理系统”可执行文件,首先会显示一个动态的很漂亮的欢迎界面。通过设置计时器,其标签“欢迎登录人力资源管理系统”从左上角缓缓移动至右下角,登录界面出现。timer1事件代码:if thisform.label1.left=150 thisform.label1.left=thisform.label1.left+4 thisform.label1.top=thisform.label1.top+10else thisform.release do form 欢迎登录endif2、 登录界面输入正确的管理员姓名、密码和等级显示“登录成功”,进入主菜单。如果不输入则会显示“姓名或密码不能为空,请重新输入”,如果输入错误,则会显示“用户不存在或密码等级错误”。“登录”按钮click事件代码:USE glryIF EMPTY(THISFORM.TEXT1.VALUE).or.empty(THISFORM.TEXT2.VALUE)MESSAGEBOX(用户名或密码不能为空,请重新输入,48,系统提示)thisform.text2.SetFocusELSElocate for alltrim(glry.xm)=alltrim(thisform.text1.value) and alltrim(glry.mm)=alltrim(thisform.text2.value) and alltrim(glry.dj)=alltrim(thisform.text3.value) IF FOUND()MESSAGEBOX(成功)do form 菜单thisform.releaseELSEMESSAGEBOX(用户不存在或密码等级错误,46,系统提示)thisform.text1.Value=thisform.text2.Value=thisform.text3.value=thisform.text2.SetFocusENDIFENDIF3、 主菜单主菜单是用户进入系统后主要接触的界面,由它可以进入各个功能模块。分别单击按钮“档案更新”、“档案更新”、“档案输出”、“修改密码”可进入与之相对应的功能模块,单击“退出”按钮退出本系统。为使界面不至于单调,给主界面加入图片作为背景。4、档案更新档案更新模块包含了“人事记录增加”、“人事记录修改”、“人事记录删除”几个功能模块,单击进入使用并且左侧会出现主菜单的简洁版(见下图)。单击“退出”即出现结束界面,退出本系统。(1)人事记录增加人事记录表单“确定”按钮的click事件代码:set exclusive onselect rskpif empty(alltrim(thisform.text1.value) messagebox(代号不能为空,48,错误) thisform.text1.setfocuselse dh1=alltrim(thisform.text1.value) xm1=alltrim(thisform.text2.value) xrzw1=alltrim(thisform.text3.value) mz1=alltrim(thisform.text4.value) zzmm1=alltrim(thisform.text5.value) whcd1=alltrim(thisform.text6.value) jtcs1=alltrim(thisform.text7.value) bm1=alltrim(thisform.text8.value) xb1=alltrim(thisform.text9.value) csny1=ctod(allt(thisform.text10.value) jg1=alltrim(thisform.text11.value) zc1=alltrim(thisform.text12.value) jkzk1=alltrim(thisform.text13.value) brcf1=alltrim(thisform.text14.value) gzbt1=val(allt(thisform.text15.value) gz1=val(allt(thisform.text16.value) zh1=val(allt(thisform.text17.value) hyzk1=alltrim(thisform.text18.value) jtzz1=alltrim(thisform.text19.value) bh1=val(allt(thisform.text20.value) dm1=val(allt(thisform.text21.value) bz1=allt(thisform.text22.value) jbdwsj1=ctod(allt(thisform.text23.value) cjgzsj1=ctod(thisform.text24.value) nl1=val(allt(thisform.text25.value) set order to dh seek dh1 if !found() insert into rskp (dh,xm,xrzw,mz,zzmm,whcd,jtcs,bm,xb,csny,jg,zc,jkzk,brcf,gzbt,gz,zh,hyzk,jtzz,bh,dm,bz,jbdwsj,cjgzsj,nl)value(dh1,xm1,xrzw1,mz1,zzmm1,whcd1,jtcs1,bm1,xb1,csny1,jg1,zc1,jkzk1,brcf1,gzbt1,gz1,zh1,hyzk1,jtzz1,bh1,dm1,bz1,jbdwsj1,cjgzsj1,nl1) messagebox(添加成功!,48,信息) thisform.text1.value= thisform.text2.value= thisform.text3.value= thisform.text4.value= thisform.text5.value= thisform.text6.value= thisform.text7.value= thisform.text8.value= thisform.text9.value= thisform.text10.value= thisform.text11.value= thisform.text12.value= thisform.text13.value= thisform.text14.value= thisform.text15.value= thisform.text16.value= thisform.text17.value= thisform.text18.value= thisform.text19.value= thisform.text20.value= thisform.text21.value= thisform.text22.value= thisform.text23.value= thisform.text24.value= thisform.text25.value= else messagebox(此代号已存在,请另输一个,48,错误) thisform.text1.value= thisform.text1.setfocus endifendif“取消”按钮click事件代码:thisform.text1.value= thisform.text2.value= thisform.text3.value= thisform.text4.value= thisform.text5.value= thisform.text6.value= thisform.text7.value= thisform.text8.value= thisform.text9.value= thisform.text10.value= thisform.text11.value= thisform.text12.value= thisform.text13.value= thisform.text14.value= thisform.text15.value= thisform.text16.value= thisform.text17.value= thisform.text18.value= thisform.text19.value= thisform.text20.value= thisform.text21.value= thisform.text22.value= thisform.text23.value= thisform.text24.value= thisform.text25.value=thisform.text1.setfocus“退出”按钮click事件代码:thisform.releasedo form 档案更新(2)人事记录修改Init事件代码:thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.text6.readonly=.t.thisform.text16.readonly=.t.thisform.text17.readonly=.t.thisform.text18.readonly=.t.thisform.text19.readonly=.t.thisform.text20.readonly=.t.thisform.text21.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.text9.readonly=.t.thisform.text10.readonly=.t.thisform.text11.readonly=.t.thisform.text12.readonly=.t.thisform.text13.readonly=.t.thisform.text14.readonly=.t.thisform.text15.readonly=.t.thisform.text22.readonly=.t.thisform.text23.readonly=.t.thisform.text24.readonly=.t.thisform.text25.readonly=.t.“第一个”按钮click事件代码:goto mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.t.thisform.refresh“前一个”按钮click事件代码:mand3.enabled=.mand4.enabled=.t.if not bof()skip-1if recno()=1 mand1.enabled=.f. mand2.enabled=.f. messagebox(已经到第一条记录了!,64,提示) endifendifthisform.refresh“下一个”按钮click事件代码:mand1.enabled=.mand2.enabled=.t.if not eof()skip 1if recno()=reccount()mand3.enabled=.mand4.enabled=.f. messagebox(已经到最后一条记录了!,64,提示)endifendifthisform.refresh“最后一个”按钮click事件代码:goto mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.f.thisform.refresh“编辑”按钮click事件代码:thisform.text2.readonly=.f.thisform.text3.readonly=.f.thisform.text4.readonly=.f.thisform.text5.readonly=.f.thisform.text6.readonly=.f.thisform.text16.readonly=.f.thisform.text17.readonly=.f.thisform.text18.readonly=.f.thisform.text19.readonly=.f.thisform.text20.readonly=.f.thisform.text21.readonly=.f.thisform.text7.readonly=.f.thisform.text8.readonly=.f.thisform.text9.readonly=.f.thisform.text10.readonly=.f.thisform.text11.readonly=.f.thisform.text12.readonly=.f.thisform.text13.readonly=.f.thisform.text14.readonly=.f.thisform.text15.readonly=.f.thisform.text22.readonly=.f.thisform.text23.readonly=.f.thisform.text24.readonly=.f.thisform.text25.readonly=.f.“保存”按钮click事件代码:sele rskplocate for dh=allt(thisform.text1.value) repl xm with allt(thisform.text2.value) repl xrzw with allt(thisform.text3.value) repl mz with allt(thisform.text4.value) repl zzmm with allt(thisform.text5.value) repl whcd with allt(thisform.text6.value) repl jtcs with allt(thisform.text7.value) repl bm with allt(thisform.text8.value) repl xb with allt(thisform.text9.value) repl csny with thisform.text10.value repl jg with allt(thisform.text11.value) repl zc with allt(thisform.text12.value) repl jkzk with allt(thisform.text13.value) repl brcf with allt(thisform.text14.value) repl gzbt with thisform.text15.value repl gz with thisform.text16.value repl zh with thisform.text17.value repl hyzk with allt(thisform.text18.value) repl jtzz with allt(thisform.text19.value) repl bh with thisform.text20.value repl dm with thisform.text21.value repl bz with thisform.text22.value repl jbdwsj with thisform.text23.value repl cjgzsj with thisform.text24.value repl nl with thisform.text25.valuethisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.text6.readonly=.t.thisform.text16.readonly=.t.thisform.text17.readonly=.t.thisform.text18.readonly=.t.thisform.text19.readonly=.t.thisform.text20.readonly=.t.thisform.text21.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.text9.readonly=.t.thisform.text10.readonly=.t.thisform.text11.readonly=.t.thisform.text12.readonly=.t.thisform.text13.readonly=.t.thisform.text14.readonly=.t.thisform.text15.readonly=.t.thisform.text22.readonly=.t.thisform.text23.readonly=.t.thisform.text24.readonly=.t.thisform.text25.readonly=.t.(3)人事记录删除Init事件代码同“人事记录编辑”表单“第一个”、“前一个”、“下一个”、“最后一个”按钮click事件代码同“人事记录修改表单”。“删除”按钮click事件代码:use rskp exclusivemb=messagebox(确定要删除吗?,1+64,提示)if mb=1 delete from rskp where dh=thisform.text1.value pack messagebox(删除成功,64,提示)endifgo topthisform.refresh5、档案统计点击相应命令按钮进入相应的统计表单。例如:“统计技术职务”按钮click事件代码:thisform.releasedo form 技术职务统计点击进入如下界面:此表数据环境为:rskp“统计”代码为:select rskpdo case case empty(thisform.text1.value) and empty(bo1.value) select bm as 部门,zc as 职称,count(*) as 人数 from rskp group by bm,zc order by bm into cursor tj2 case !empty(bo1.value) and empty(thisform.text1.value) select bm as 部门,zc as 职称,count(*) as 人数 from rskp where zc=bo1.value group by bm order by bm into cursor tj2 case !empty(thisform.text1.value) and empty(bo1.value) select bm as 部门,zc as 职称,count(*) as 人数 from rskp where bm=thisform.text1.value group by zc order by bm into cursor tj2 case !empty(thisform.text1.value) and !empty(bo1.value) select bm as 部门,zc as 职称,count(*) as 人数 from rskp where bm=thisform.text1.value and zc=bo1.value group by zc order by bm into cursor tj2 endcasethisform.grid1.visible=.t.thisform.grid1.recordsourcetype=1thisform.grid1.recordsource=tj2thisform.grid1.column1.width=75thisform.grid1.column2.width=75thisform.grid1.column3.width=75thisform.refresh表格的recordsourcetype属性为4SQL说明,下拉组合框的rowsourcetype属性设置为3SQL语句,rowsource为select distinct zc from rskp into cursor zc在text1中输入“英语”,职称中选择“中级”,点击“统计”,结果如下:其他统计报表原理与此相同。6、档案输出点击相应命令按钮进入相应的统计表单。例如:“查询输出社会关系”按钮click事件代码:thisform.releasedo form 查询输出社会关系点击进入下面的表单:此表数据环境为shgx以及rskpText1的controlsource为rskp.dh,Text2的controlsource为rskp.bm,Text3的controlsource为rskp.xm,Grid1的recordsource为temp1Recordsourcetype为1-别名Commandgroup1的click事件代码为:select rskpdo case case this.value=1 go top mand1.enabled=.f. mand2.enabled=.f. mand3.enabled=.t. mand4.enabled=.t. thisform.refresh case this.value=2 mand3.enabled=.t. mand4.enabled=.t. skip -1 if recno()=1 mand1.enabled=.f. mand2.enabled=.f. endif thisform.refresh case this.value=3 mand1.enabled=.t. mand2.enabled=.t. skip if recno()=reccount() mand3.enabled=.f. mand4.enabled=.f. endif thisform.refresh case this.value=4 goto bottom mand1.enabled=.t. mand2.enabled=.t. mand3.enabled=.f. mand4.enabled=.f. thisform.refresh case this.value=5 report form 社会关系.frx for alltrim(shgx.dh)=ALLTRIM(ThisForm.text1.value) preview case this.value=6 thisform.release do form 档案输出 case this.value=7 select shgx x=thisform.text1.value thisform.grid1.recordsourcetype=4 thisform.grid1.recordsource=select * from shgx where alltrim(shgx.dh)=alltrim(x) and rskp.dh=shgx.dh into cursor tempt1 thisform.refresh endcase报表预览截图如下:同样,点击进入人事卡片:设置好文本框的controlsource属性以及buttongroup1的click事件代码即可运行。精确查询界面可随意查询任意代号人员信息:“查询”click事件代码:x=this.parent.text1.valuethis.parent.grid1.recordsourcetype=4this.parent.grid1.recordsource=select dh as 代号,ybrgx as 与本人关系,csny as 出生年月,hyzk as 婚姻状况,whcd as 文化程度,zzmm as 政治面目,gzdw as 工作单位,zwgz as 职务工种,gz as 工资,jjly as 经济来源 from jtcy where alltrim(dh)=alltrim(x) into

温馨提示

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

评论

0/150

提交评论