《2812.A VFP6.0+工资管理系统 论文.doc》由会员分享,可在线阅读,更多相关《2812.A VFP6.0+工资管理系统 论文.doc(35页珍藏版)》请在三一文库上搜索。
1、XXXXXX技术学院毕业设计题目: 工资管理系统 本文源码索取,请联系qq:68661508系 别: 计算机工程系 专 业: 计算机应用技术 学 号: XXXXXXXX 姓 名: 指导教师: XXXX 2010年4月20日前言II摘要III第一章 开发应用程序的过程0第二章 工资管理系统主要模块介绍12.1本系统主要文件组成12.2 功能模块菜单2第三章 项目与数据库的建立3第四章 工资管理系统模块设计44.1系统主菜单设计44.2 系统主控表单模块设计54.3 工资录入模块表单74.4 工资查找模块表单设计114.5 修改记录模块表单设计134.6工资浏览模块表单设计154.7 统计模块表单
2、设计174.8 打印模块表单设计184.9系统封面模块表单设计194.10报表表单设计20第五章 程序的连编225.1 将全部的应用程序添加到项目管理器中225.2 工资系统的主程序设计235.3 程序的调试245.4 程序的连编25系统评价26总结与展望27参考文献28前言随着时光的流逝,人类社会已悄然进入21世纪。21世纪是知识经济时代,是信息技术时代,是数字化时代。单位管理的现代化办公自动化和决策科学化,是现代化办公管理发展的必然趋势。也是衡量一个单位信息化的重要标志。通过对VFP一个学期的学习,我对VFP有了一个较完整的认识。Visual FoxPro数据库是一个关系型数据库,它是微软
3、公司根据FoxBASE发展起来的,主要用于Windows环境。由于VFP不需要用户编程就可以建立一个面向对象数据库应用程序,所以在众多的数据库软件中,VFP脱颖而出,成为一种通用的数据库软件。利用VFP6.0可以设计出丰富多彩的用户界面,在用户界面中可以放置各种控制部件,如命令按钮、图形图片、图表等,从而设计出完全图形化的界面,便于用户操作和使用。自己的这份毕业设计就是借助VFP6.0以上的这些功能,完成了对适合中小型企业的工资管理系统软件,主要包含有菜单、数据库(表)、各种输入、输出、浏览、修改、统计、打印等功能。摘要根据我对周边一些小企业的调查人事工资管理现状非常落后:企业的工资管理还停留
4、在手工和文本账目的管理模式上。这种管理已经不能适应现代企事业单位管理的需要,所以需要一套科学的人事工资管理软件,提高人事工资管理效率。从而提到企事业在市场中的竞争力。 工资管理系统是针对企业的工资管理业务进行计算机处理而开发的应用软件。该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。本论文包括需求分析、系统功能、系统设计、程序设计、系统测试及存在问题等方面,较为系统地介绍了“工资管理信息系统”课题开发的整个过程。 本系统采用小型数据库管理系统中优秀的软件“Visual FoxPro 6.0” 作为系统开发工具,在对被调研单位工资管理体系进行充
5、分分析和系统论证的基础上开发研制的,它不但能够完成工资管理的基本业务要求,而且具有程序设计合理、操作简单、运行可靠、保密性强等特点。 支持运行的环境:Microsoft Window98/2000/XP【关键词】工资管理信息系统 数据库 30第一章 开发应用程序的过程要开发一个软件项目,从软件工程学的角度讲,软件开发一般分为六个阶段:第一步,需要需求分析第二步,概要设计阶段如图为该软件的流程图:工资管理系统记录管理记录打印退出记 录 录 入记 录 浏 览记 录 统 计记 录 查 询打 印 记 录系 统 退 出记 录 统 计图1.1 软件设计模块流程图第三步,详细设计阶段第四步,编码阶段第五步,
6、测试阶段第六步,安装和维护阶段第二章 工资管理系统主要模块介绍2.1本系统主要文件组成1.表单功能模块 工资主控模块(调用表单 gzgl.scx) 工资录入模块(调用表单 gzlr.scx) 工资浏览模块(调用表单 gzll.scx) 工资统计模块(调用表单 gztj.scx) 工资查找模块(调用表单 gzfind.scx)工资修改模块(调用表单gzmodi.scx) 工资打印模块(调用表单 Dayin.scx) 工资封面模块(调用表单 fm.scx) 2.菜单与报表文件 系统功能菜单(xtcd.mnx) 工资表报表(gzb.fx) 工资条报表(gzt.fx) 3.数据库文件 数据库名称:gz
7、.dbc 数据表名称:gzb.dbf字段名称字段类型字段宽度小数点默认值字段名称字段类型字段宽度小数点默认值职工号C80外租房N720日期D80Data()未纳奖N720姓名C80职务补贴N820职务工资N720补发工资N820书报费N720应发工资N820构成津贴N720养老保险N720合同15%N720扣会费N720家属价格N720公积金N720综合补贴N720承包30%N720出勤补N720合计扣款N720岗位津贴N720实发工资N820洗理费N720所得税N720交通补N720其他扣款N720儿保补N720实发现金N820提租补贴N720图2.1 数据表的结构2.2 功能模块菜单系统的
8、功能模块菜单如图所示,从此菜单中可以比较完整的认识整个系统,对整个系统的设计思路可以有一个比较完整的认识,便于理解。图2.2 功能模块菜单执行屏幕 第三章 项目与数据库的建立1 项目的建立 :在硬盘上建立一个目录; 启动VFP系统,在“项目管理器”中,建立一个项目,项目名称为:“工资管理系统”。保存到所建目录中,如图所示: 图3.1 新建的项目2 数据库的建立:建立数据库,数据库名称为:gz.dbc,数据表名为:gzb.dbf。第四章 工资管理系统模块设计4.1系统主菜单设计图4.1 设计主菜单建立“工资记录管理”子菜单,单击“工资记录管理”的“子菜单”下拉列表的“创建”按钮,注意,此时“菜单
9、级”中显示的是“工资记录管理”,打开“菜单级”选择框,可看到“工资记录管理”上面有一个“菜单栏”,表示此时编辑的是顶层菜单下的“工资记录管理”子菜单;按照系统分析的内容,编辑第一个菜单项,在“菜单名称”中,输入“工资记录录入”,在“结果”中,选择“命令”,在“选项”中,输入“Do form gzlr”命令。之后,按同样的方法编辑其他菜单项。其中,“退出系统”是一个过程,其代码是:Byebye=messagebox(“真的要退出吗?”,64+1,“提示信息”)If byebye=1 Close all Clear events QuitEndif7 在“菜单级”中,选择“菜单栏”,返回主菜单。4
10、.2 系统主控表单模块设计 主控表单用来调用系统菜单(xtcd.mpr),以形成对整个工资管理系统的控制和管理。 1 表单的执行屏幕:主控表单执行屏幕如图图4.2 主控表单执行屏幕 2 表单与控件属性设置 在此表单中,为了使背景图片容易控制,为形成对整个工资管理系统的控制和管理。 下面说明具体的引用过程: Form表单的属性设置。 Caption=“工资管理系统” Showwindow=2-作为顶层表单 Windowstate=2-最大化 Showtips=.t. Image控件的属性设置: Picture=图片所在地的路径 Stretch=2-变比例填充 3 事件代码 Form表单的load
11、事件代码: Do xtcd.mpr with this,.t.这样我们就可以在表单中调用菜单中。4.3 工资录入模块表单工资录入模块是用来录入工资记录的,在具体操作时有些数据需要动生成。具体设计时各字段是通过数据环境拖曳到表单中,在利用“布局”工具栏进行调整。执行屏幕如图:图4.3 工资录入模块执行屏幕3 事件代码文本框控件(1)“txt应发工资”控件的事件代码: Click和gotfocus的代码with this.parentthis.value =.txt职工工资.value +.txt书报费.value +.txt构成津贴.value +.txt合同15.value +.txt家属价格
12、.value +.txt综合补贴.value +;.txt出勤补.value +.txt岗位津贴.value +;.txt洗理费.value +.txt交通补.value +;.txt儿保费.value +.txt提租补贴.value +;.txt外租房补.value +.txt未纳奖.value +;.txt职务补贴.value +.txt补发工资.value endwith该代码是在“txt应发工资”控件获得焦点时,自动计算应发工资。(2)“txt合计扣款”控件的事件: Click和gotfocus的代码with this.parentthis.value = .txt养老保险.value
13、 + .txt扣会费.value+; .txt公积金.value+.txt承包30.valueEndwith该代码是在“txt合计扣款”控件获得焦点时,自动计算合计扣款的总数。(3)“txt实发工资”控件的事件: Click和gotfocus的代码with this.parentthis.value = .txt应发工资.value - .txt合计扣款.valueendwith该代码是在“txt实发工资”控件获得焦点时,自动计算实发工资的总数。 (4)“txt所得税”控件的事件: Click和gotfocus的代码if this.parent.txt实发工资.value800this.val
14、ue = (this.parent.txt实发工资.value-800)*0.05endifthisform.refresh该代码是在“txt所得税”控件获得焦点时,自动计算所得税。 (5)“txt实发现金”控件的事件: Click和gotfocus的代码with this.parentthis.value = .txt实发工资.value-.txt所得税.value-.txt其他扣款.valueendwiththisform.refresh该代码是在“txt实发现金”控件获得焦点时,自动计算实发现金的总数。 命令按钮控件(1)“第一个”命令按钮command1的click事件代码: go t
15、opthisform.refresh(2)“上一个”命令按钮command2的click事件代码:skip -1if bof()go top= messagebox(已经是第一个记录了!,64,提示信息)endifthisform.refresh(3)“下一个”命令按钮command3的click事件代码:skip 1if eof()go bottom= messagebox(已经到了最后一个记录了!,64,提示信息)endifthisform.refresh(4)“最后一个”命令按钮command4的click事件代码:go bottomthisform.refresh(5)“添加”命令按钮
16、command5的click事件代码:append blankgo bottomthisform.refresh(6)“退出”命令按钮command6的click事件代码: thisform.release在执行屏幕上两条立体横线是用line控件实现的,具体操作是:先画一条横线,然后再复制,再生成一条线,并将其中的一条变成白色,borderstyle设置成白色,移动到适当的位置,就呈现出立体的感觉。4.4 工资查找模块表单设计该模块主要功能是实现对工资信息的查找工作。在该模块中我们采用了实时过滤方法,使用户通过简单的输入就能查到相应的记录。表单的主体部分由一个页框控件组成。1 设计第一页查找表
17、单的执行屏幕如图图4.4 查找记录执行屏幕 注意:对表单上面的页框这样的容器类控件进行操作时,先要选择对该控件的整体编辑,然后才能编辑其中的子控件。操作方法是,右击该控件,弹出一个如图所示的快捷菜单,选择“编辑”命令,然后就可以对该控件上的子控件进行操作了。 图4.4 编辑快捷菜单2 设计第二页 在该页中有三个标签控件,其标题:职工号、日期、姓名,以及三个文本框控件:txt职工号、txt姓名、txt日期。以上操作部分代码如下:getzgh1=alltrim(thisform.pageframe1.page1.text1.value)getxm1=alltrim(thisform.pagefra
18、me1.page1.text2.value)getrq1=thisform.pageframe1.page1.text3.values = if len(getzgh1)0s= s+职工号= getzgh1endifif len (getxm1)0s= s+.and.+ 姓名= getxm1endifif getrq1 /s= s+.and.+ Dtoc(日期)=Dtoc(getrq1)endifdo while left(s,5)=.and.or.left(s,5)=.and.s=subst(s,6)enddoif len (alltrim(s)= 0set filter to elsese
19、t filter to &sendifgo topthisform.pageframe1.page2.caption=姓名+的详细内容thisform.pageframe1.page1.refreshthisform.pageframe1.page2.refresh4.5 修改记录模块表单设计 该表单用来实现数据库记录进行各种满足实际需要的修改功能,所以应用的界面比较多,修改记录表单模块的设计主界面用的是页框控件,共有两个页面:第一个页面:按查找满足条件的记录进行修改;第二个页面:按已查找的记录显示在屏幕上,并进行修改,即单个记录的修改;图4.5 修改满足条件记录表单的执行屏幕1 设计第一页表
20、单的执行屏幕如上图,需要对“查找记录”、“删除记录”、“恢复记录”、“打印”、“退出”命令按钮进行代码的编辑,对text1,text2,text3的interactivechange事件代码也要进行输入编辑,此代码雷同与查询记录。代码附后。2 设计第二页第二页主要的设计代码是自动计算那一部分,即commond1的click事件代码。with this.parent.txt应发工资.value =.txt职工工资.value + .txt书报费 .value + .txt构成津贴.value +.txt合同15.value +.txt家属价格.value +.txt综合补贴.value +.tx
21、t出勤补.value +.txt岗位律贴.value +.txt洗理费.value +.txt交通补.value +.txt儿保费.value +.txt提租补贴.value +.txt外租房.value +.txt未纳奖.value +.txt职务补贴.value +.txt补发工资.value.txt合计扣款.value=.txt养老保险.value + .txt扣会费.value +.txt公积费.value +.txt承包30.value.txt实发工资.value=.txt应发工资.value -.txt合计扣款.valueif this.parent.txt实发工资.value80
22、0.txt所得税.value=(this.parent.txt实发工资 .value-800)*0.05endif.txt实发现金.value=.txt实发工资.value-.txt所得税.value-.txt其他扣款.valueEndwith4.6工资浏览模块表单设计1 该表单用来对多个记录进行浏览。执行屏幕如图:图4.6 浏览记录表单的执行屏幕2 属性与事件部分事件代码:set exact offgetzgh1=alltrim(thisform.text1.value)getxm1=alltrim(thisform.text2.value)getrq1=thisform.text3.val
23、ues = if len(getzgh1)0s= s+职工号= getzgh1endifif len (getxm1)0s= s+.and.+ 姓名= getxm1endifif getrq1/s= s+.and.+ Dtoc(日期)=Dtoc(getrq1)endifdo while left(s,5)=.and.or.left(s,5)=.and.s=subst(s,6)enddoif len (alltrim(s)= 0set filter to elseset filter to &sendifgo topthisform.refresh4.7 统计模块表单设计 本表单用来统计各项工资
24、的综合,以及总的人数。事件代码有:“开始统计”,表单的执行屏幕如图:图4.7 统计模块表单执行屏幕4.8 打印模块表单设计 本表单是用来实现对记录的打印,共有两种打印模式:打印工资条和打印工资表。这里涉及到表单的参数传递问题。对于表单的参数传递,一般放在init事件中,对于此处的表单,可以调用以前的打印命令按钮的事件代码,调用“打印”命令按钮commond1的click事件代码:if thisform.optiongroup2.value=1report form gzt.frx elsereport form gzb.frx endif4.9系统封面模块表单设计本模块是系统封面模块表单,运行
25、时将通过此表单调用主控模块,进而管理整个工资管理系统。1 表单的执行与设计:表单的执行屏幕如图:图4.9 系统封面表单执行屏幕简单的一个封面,其实在其中有好几个控件:timer控件、combo1组合框控件、text1控件、command1 command2命令按钮控件。其中命令按钮登入系统(即command1)的click事件代码附后,timer控件的interval属性要设置为500,它表示每500毫秒发生一次timer事件,timer控件的timer事件代码:thisform.label4.caption=日期+alltrim(str(year(date()+年+alltrim(str(m
26、onth(date()+月+alltrim(str(day(date()+日+chr(13)+时间+time()4.10报表表单设计 本系统一共使用了三个报表,即工资表报表(gzb.frx)、工资条报表(gzt.frx)和工资汇总表(gzhz.frx),生成这三个报表比较简便的方法是用报表生成器先生成报表,然后再在上面修改,添加表线。 工资表报表的设计与执行 1.工资表报表设计屏幕图4.10工资表报表设计屏幕 在设计此报表时,打开生成器,自动生成的报表,使用“格式”菜单中的命令来完成布局,然后可以用画线和画框等调节布局。 2 .工资表报表的执行工资条报表的设计与执行 工资条报表的设计与工资表报
27、表的设计方法相同。汇总统计 对于工资管理系统,汇总统计是必须做的工作,并且要将结果输出。为了实现这个功能,可以使用total命令,进行分类统计。具体代码如下:If .not.file(“zggzlb.idx”) Index on 类别 to zggzlbElseSet index to zggzlbEndif If .not.file(“zgfl.dbf”) Total on 类别 to zgflElse Delete file zgfl.dbf Total on 类别 to zgflEndifSelect 0Use zgflGo topReplace all 姓名 with “合计”If .
28、not.file(“gzhz.frx”) Create report gzhz from zgflElse Delete file gzhz.dbf Create report gzhz from zgflEndifUseReport form gzhz to printer noconsoleSet index to通过上面的代码,就可以把统计的结果输出。也可以在“统计”模块中添加一个打印统计结果的按钮,将上面的代码添加到该按钮的click事件中。第五章 程序的连编连编必须进行的以下四个步骤: 1 将所有的应用程序加入到项目管理器中; 2 主程序的建立; 3 程序的调试; 4 应用程序的连编
29、5.1 将全部的应用程序添加到项目管理器中 步骤: 1 打开已建立的项目 2 选择相应的选项卡,依次把自由表、数据表、表单文件、报表文件、菜单文件以及类库添加到项目中 3 为了避免在程序编译后会出现一个VFP窗口,可以在项目管理器的“其他”选项的“文本文件”中添加一个config.fpw文件,其内容为:screen=off即可。5.2 工资系统的主程序设计 为了连遍,必须确定连遍的顺序,并确定应用程序的接口,为此,必须编写主程序main.prg,确定运行顺序。每个系统都必须有一个主程序,当在程序项目管理器中开始遍第一个程序时,管理器会默认将其作为主程序,但有时可能第一个遍的程序不是主程序,这时
30、就要重新设置主程序,创建一个独立运行的windows程序,这就必须建立一个程序文件main.prg作为主文件,步骤: 1 在“项目管理器”中单击“代码”选项卡,选择“程序”,并单击“新建”按钮,即可创建程序文件。工资主程序的代码内容: do form fmread events 2 在另存为对话框中,以“main”为文件名保存。 3 用鼠标右键单击文件名,在弹出的快捷菜单中,选择“设置主文件”,如图所示:图5.1 项目管理器5.3 程序的调试 如果在程序中有语法性的错误,当程序运行到错误的语句时,系统会停下,并提示程序有错,往往还会说是什么错误,如“命令中含有不能识别的短语或关键字”,并给出选
31、择“取消”、“挂起”、“忽略”、“帮助”四个选项,意思分别是: 取消:中止程序运行,回到命令窗口,相当于执行了cancel命令,这时在程序中创建的所有变量被释放(除公共变量),但数据库及数据表一般保持当时的状态,可以用browse命令查看数据表的内容即记录指针所在的位置等等。 挂起:暂停程序,这时程序中的变量保持原值,可以用?命令查看变量的值,当然也可以查看数据表的情况。 忽略:忽略所出现的错误,即跳过出错的语句继续执行后面的语句。 帮助:显示有关出错的帮助信息,对于错误做更详细的说明。 如果能看到问题出在哪,选择“取消”,然后进到程序中,找出错误所在的位置将其改正。如果不知道问题出在哪,选择
32、“挂起”,系统会弹出一个调试器窗口,显示出错的语句,在跟踪窗口的黄色箭头多指的语句就是可能出错的语句。5.4 程序的连编 程序全部编好后就可以编译软件了,操作步骤如下: 1 单击“项目管理器”中的“连编”命令,屏幕出现“连编选项”对话框,如下图: 2 在“操作”框中,选择“连编可执行文件”,单击“确定”按钮。3 输入编译后的exe文件名,然后保存在已建的应用程序所在的目录中。 图5.4“连编选项”对话框 4 接着系统进入编译过程,这一过程是电脑自动完成的。 5 编译完成后,用户就可以将自己的系统拷贝到其他的机器上运行了。但值得注意的是,系统要将相应版本的VFP支持文件拷进去。系统评价(一)系统
33、的特点1流程符合企业内部工资管理的要求。2界面友好,输入信息方便(好多信息,系统自动生成)。3查询比较全面,对任何情况或字段都可以查询,从而对管理进行监督。4系统扩充容易。由于资料有限,有很多地方还需要更好的完善。5即面向开发人员,又面向用户。(二)系统的缺点1由于时间的原因。输出报表不完善。2容错性不高。系统的抗错,容错性不高。这方面有待加强。4由于资料有限,有很多地方还设计的不够详细,如考勤制度与工资奖金,福利,公积金,应付合计,扣除合计,应发合计的关系等,还需要更好的完善。5没有良好的用户权限和密码限制以防止人为的破坏与盗窃数据资源。(三)将来可能提出的要求1网络化。系统能支持网络数据传
34、输,数据共享;数据远程访问能自动采取一定的加锁策略;远程报表处理。2多媒体化。系统能够支持语音输入。总结与展望通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了VISUAL FOXPRO命令和编程技巧,为今后走上工作岗位打下了专业基础。 在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的
35、事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。参考文献 1.Visal FoxPro6.0程序设计 作者:李淑华 出版社:高等教育出版社2.数据库通用模块及典型系统开发实例导航 作者:张立科 出版社:人民邮电出版社3 中文版Microsoft Office 2000 自学通作者:Ned Snell出版社:机械工业出版社4 Visual Foxpro 6使用详解作者:张磊出版社:机械工业出版社 5Visual Foxpro 6.0数据库设计作者:康耀红 黄建青出版社:北京大学出版社 6Visual Foxpro 6.0实效编程百例 作者:郑刚出版社:人民邮电出版社 7 Visual Foxpro 6中文版与上机指导 作者:周兰文 出版社:清华大学出版社 8Visual Foxpro 6.0中文版入门与提高作者:李加福出版社:清华大学出版社 9Visual Foxpro 6.0程序设计作者:陈明出版社:清华大学出版社 10Visual Foxpro 6.0全攻略宝典 作者:刘鹏 李冬梅 高燕出版社:水利水电出版社
链接地址:https://www.31doc.com/p-3900194.html