《利用VF设计人事管理数据库系统(共15页).doc》由会员分享,可在线阅读,更多相关《利用VF设计人事管理数据库系统(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上中国矿业大学矿业工程学院实验报告课程名称 数据库与运输信息系统姓名 周轲雯 班级 交通运输10-1班学号 日期 2013年6月成绩 教师 王振军超市管理系统设计一、 准备工作1、建立文件夹在系统的E盘建立一个文件夹用以存放此次设计的各种格式的数据、文件、程序等,文件命名为:超市管理系统。文件夹地址为:E:超市管理系统2、需求分析在此系统中的数据库要包含:员工表,部门职位表,工资表,缺勤表,以及自由表操作员表。数据库表:员工表:员工编号,员工姓名,性别,出生日期,工作日期,学历,婚否,部门,职称,备注说明部门职位表:部门名称,部门代号,职位名称,职位代号工资表:员工编号
2、,员工姓名,基本工资,津贴,奖金,应发工资,缺勤扣款,医疗保险,住房基金,所得税,实发工资,发出日期缺勤表:员工编号,员工姓名,缺勤日期,缺勤类别自由表:操作员表:序号,操作员编号,操作员密码,操作员级别二、 数据库与表的创建建立一个项目文件,文件名称为:超市管理系统,在此项目下建立“超市管理的人事管理系统”,在工具-选项中将默认目录设置为:e:超市管理系统,将日期格式设置为年月日,24小时制,选择“年份”选项,选择“星期开始于”为“星期一”,设置为默认值。在此数据库下建立各表。员工表:注一:依次设置标题为:员工编号,员工姓名,性别,出生日期,工作日期,学历,婚否,部门,职称,备注注二:字段有
3、效性规则设置为:xb字段为:xb=”男” or xb=”女”部门职位表:注一:字段标题依次设置为:部门名称,部门代号,职位名称,职位代号注一:字段的标题依次设置为:员工编号,员工姓名,基本工资,津贴,奖金,应发工资,缺勤扣款,医疗保险,住房基金,所得税,实发工资,发出日期缺勤登记表:注一:字段的标题依次设置为:员工编号,员工姓名,缺勤日期,缺勤类别操作员表:三、 查询与视图在本程序中没有利用查询设计器来建设查询,而是利用表单来设立查询。由于数据环境不是特别复杂,所以也并没有建立视图。四、 表单(1) 操作员管理数据环境为操作员表,文本框text2,text3的PasswordChar属性为“*
4、”命令按钮“确认”代码:public czybh,czymm,zcsrmm,czyjbczybh=thisform.text1.valueczymm=thisform.text2.valuezcsrmm=thisform.text3.valueczyjb=thisform.text4.valuelocate for allt(操作员编号)=allt(czybh) if !eof() =messagebox(此编号已经存在,请重新输入!) thisform.text1.value= thisform.text1.setfocus else if czymmzcsrmm =messagebox(密
5、码输入不一致,请确认!) thisform.text2.value= thisform.text3.value= thisform.text2.setfocus else insert into 操作员表(操作员编号,操作员密码,操作员级别) values (czybh,czymm,czyjb) =messagebox(输入成功!) endif endifthisform.text1.value=thisform.text2.value= thisform.text3.value= thisform.text4.value=命令按钮“退出”代码:thisform.release(2) 修改操作
6、员密码数据环境为“操作员表”,文本框text1,text2,text3的PasswordChar属性为“*”。命令按钮“确定”代码为:locate for 操作员编号=czybh if not allt(czymm)=allt(thisform.text1.value) =messagebox(原密码输入错误,请重新输入!) thisform.text1.value= thisform.text2.value= thisform.text3.value= thisform.text1.setfocus else if not allt(thisform.text2)=allt(thisform
7、.text3) =messagebox(两次输入密码不一致,请重新输入!) thisform.text2.value= thisform.text3.value= thisform.text2.setfocus else replace czymm with thisform.text2.value =messagebox(密码修改成功!) thisform.release endif endif(3) 员工录入登记 数据环境为“员工表”和“部门职位表”,选项按钮组的ButtonCount属性为“2”,组合框combo1的RowsourceType属性为3,Rowsource属性为“selec
8、t distinct 部门职位表.bmmc from 部门职位表 into cursor temp2”,组合框Combo1的InteractiveChange过程为:bo2.rowsource=select distinct 部门职位表.zwmc ;from 部门职位表 where 部门职位表.bmmc=bo1.value into cursor temp3命令按钮的“保存”的Click过程为:public ygbh1,ygxm1,xb1,hf1,csrq1,gzrq1,bm1,zw1,xl1,bz1ygbh1=thisform.text1.valueygxm1=thisform.text2.
9、valuecsrq1=ctod(thisform.text3.value)gzrq1=ctod(thisform.text4.value)bm1=bo1.valuezw1=bo2.valuexl1=thisform.text5.valuebz1=thisform.text7.valuelocate for allt(员工表.ygbh)=allt(thisform.text1.value)if !eof() =messagebox(编号输入重复!)else ygbh=thisform.text1.valueendifdo case case thisform.optiongroup1.optio
10、n1.value=1 xb1=男 case thisform.optiongroup1.option2.value=1 xb1=女endcase if thisform.check1.value=0 hf1=.f. else hf1=.t.endifinsert into 员工表(ygbh,ygxm,xb,hf,csrq,gzrq,bm,; zw,xl,bz) values(ygbh1,ygxm1,xb1,; hf1,csrq1,gzrq1,bm1,zw1,xl1,bz1)=messagebox(员工录入成功!)thisform.text1.value=thisform.text2.value
11、=thisform.text3.value=thisform.text4.value=thisform.text5.value=thisform.text7.value=bo1.value=bo2.value=thisform.optiongroup1.value=0thisform.check1.value=0thisform.text1.setfocus命令按钮的“退出”的Click过程为:thisform.release(4) 员工调动及删除数据环境为:员工表(5) 缺勤登记数据环境“缺勤登记表”命令按钮“确定”的Click过程为:public qqlb1,qqrq1ygbh1=this
12、form.text1.valueygxm1=thisform.text2.valueqqlb1=thisform.text3.valueqqrq1=ctod(thisform.text4.value)locate for allt(员工表.ygbh)=allt(thisform.text1.value)locate for allt(员工表.ygxm)=allt(thisform.text2.value)if !eof() insert into 缺勤登记表(ygbh,ygxm,qqlb,qqrq) values (ygbh1,ygxm1,qqlb1,qqrq1)else =messagebo
13、x(未找到此员工!)endifthisform.text1.value=thisform.text2.value=thisform.text3.value=thisform.text4.value=命令按钮“退出”的Click过程为:thisform.release(6) 工资核算表数据环境为“工资表”命令按钮“计算”的Click过程为:public jbgz1,jt1,jj1,yfgz1,qqkk1,ylbx1,zfjj1,sds1,sfgz1jbgz1=val(thisform.text3.value)jt1=val(thisform.text4.value)jj1=val(thisfor
14、m.text5.value)qqkk1=val(thisform.text7.value)ylbx1=val(thisform.text8.value)zfjj1=val(thisform.text9.value)thisform.text6.value=str(jbgz1+jt1+jj1)yfgz1=val(thisform.text6.value)if jbgz13000 thisform.text10.value=str(jbgz1*0.17) sds1=val(thisform.text10.value)else thisform.text10.value=0 sds1=0endift
15、hisform.text11.value=str(yfgz1-qqkk1-ylbx1-zfjj1-sds1)sfgz1=val(thisform.text11.value)命令按钮“输入工资表”的Click过程为:ygbh1=thisform.text1.valueygxm1=thisform.text2.valuelocate for allt(员工表.ygbh)=allt(thisform.text1.value)locate for allt(员工表.ygxm)=allt(thisform.text2.value)if !eof() insert into 工资表(ygbh,ygxm,j
16、bgz,jt,jj,yfgz,qqkk,ylbx,zfjj,sds,sfgz) values;(ygbh1,ygxm1,jbgz1,jt1,jj1,yfgz1,qqkk1,ylbx1,zfjj1,sds1,sfgz1)=messagebox(录入成功!)else =messagebox(未找到此员工!)Endifthisform.text1.value=thisform.text2.value=thisform.text3.value=thisform.text4.value=thisform.text5.value=thisform.text6.value=thisform.text7.va
17、lue=thisform.text8.value=thisform.text9.value=thisform.text10.value=thisform.text11.value=thisform.text1.setfocus命令按钮“退出”的Click过程为:thisform.release(7) 按部门查询数据环境为“员工表”和“部门职位表”,组合框Combo1的RowSourceType属性为“3”,RowSource属性为“select distinct bmmc from 部门职位表 into cursor temp1”命令按钮“确定”的Click过程为:set filter to
18、bm=bo1.valuethisform.refresh命令按钮“返回”的Click过程为:set filter tothisform.refresh命令按钮“退出”的Click过程为:thisform.release五、 报表设计报表“打印工资清单报表”,设计界面为:数据环境为“工资表”和“部门职位表”,两者以“zgbh”(职工编号)进行内部联接。浏览界面为:六、 菜单菜单设计界面如图:系统管理的子菜单为:注:其中跳过条件为:czyjb系统管理员员工管理的子菜单为:工资管理的子菜单为:统计管理的子菜单为:退出系统的子菜单为:其中“过程”代码为:close allquit七、 主程序和登陆界面
19、设置一个setup的prg文件,代码为:set talk onset default to E:超市管理系统set date to ymdset clock on设置一个main的prg文件,将其设置为主程序,代码为:do setup.prgdo form 系统登录.scxread events登录界面为:系统登录表单数据环境为“操作员表”,文本框text2控件的passwordchar属性为“*”命令按钮“登入系统”代码:public czybh,czyjbczybh= thisform.text1.valuelocate for allt(操作员编号)=allt(czybh)if not
20、found() =messagebox(该操作员不存在,请重新输入!) thisform.text1.value= thisform.text1.setfocuselse if allt(操作员密码)=allt(thisform.text2.value) czybh=操作员编号 czyjb=操作员级别 thisform.release do main.mpr else =messagebox(密码输入错误,请重新输入!) thisform.text2.value= thisform.text2.setfocus endifendif命令按钮“退出系统”代码:thisform.releasecl
21、ear events八、 实验小结通过本次的系统设计,使我对这学期所学的VF知识有了更深入的认识和掌握,知易行难,只有通过实践知识才能真正的被掌握。在平常的学习中,我感觉VF编程并不复杂,而在实际的操作中,各个表之间简单的联系似乎也会变得复杂起来,写程序时也会出现各种各样意想不到的错误,比如程序名称输入错误,“登录”和“登陆”的输入差错,这些看起来很小的错误却是编程中不容易找到的错误,给编程过程造成了一定困扰。然而,在这次课程设计中更大的感慨是只有经过不断的练习才能熟练的使用VF进行编程。我觉得编程最大意义不是编出一个程序,而是如何使用最简单有效的控件、代码、属性设置来实现我们所需要的功能,这种能力是来源于大量的思考和实践。总之,在这次课程设计中,虽然遇到了很多麻烦,但是在老师的指导下也一一得到了解决,对于如何运用VF编写一个完整的数据库及应用程序有了深入的理解。能力源于实践,在今后的学习中要加强练习。专心-专注-专业