电气自动化论文 :电力企业工资管理系统软件设计_第1页
电气自动化论文 :电力企业工资管理系统软件设计_第2页
电气自动化论文 :电力企业工资管理系统软件设计_第3页
电气自动化论文 :电力企业工资管理系统软件设计_第4页
电气自动化论文 :电力企业工资管理系统软件设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

电力企业工资管理系统软件设计The electric power enterprise salary management system design学生姓名: 指导老师: 所在院系: 所学专业:电气工程及其自动化研究方向:企业工资管理系统软件研究东北农业大学中国哈尔滨2011年05月电力企业工资管理系统软件设计摘 要本系统是一个面向电力企业的工资管理系统,该系统在成功连编之后,可独立的在windows环境下操作,本模块共分为12个独立的模块,可以完成一些基本的工资管理操作,如基本的数据查找、修改、输入输出、打印以及数据统计的功能,可通过职工的基本信息表与工资表之间的联系来完成对职工工资的各种操作。本系统包括项目的建立、数据库的建立、表的有关操作、数据库管理的操作、程序设计常用控件的使用、数据表的表单的程序设计、菜单的设计方法、SQL语言的使用等。关键词:电力企业 工资管理系统 SQL语言AbstractThis system is a face the electric power enterprises salary management system, In this system, even after successfully made, But independent in Windows environment operation ,This module is divided into 12 independent modules ,Do some basic salary management operation, As the basic data search, modify, input/output, print and statistics function ,But the basic information table by worker with payroll to accomplish the connection between the various operating worker pay.This system including project, the establishment of the database establishment and the relevant operation, watch of database management, operation, use of program design common control of form, data sheets of program design, menu design method, the SQL language use, etc. Key words: The electric power enterprise salary management system SQL language 目 录摘要Abstract1工资管理系统需求分析与设计11.1系统功能需求简介11.2工资结构设置模块21.3目标系统要求31.4系统平台设计32工资管理系统信息概要设计32.1工资数据流程图32.2工资管理系统主要模块简介52.2.1工资管理系统主要文件组成(数据词典分析)52.2.2功能模块菜单72.3项目与数据库的建立72.3.1项目地建立72.3.2数据库及数据库表的建立82.3.3数据表间关系的建立:103工资管理系统模块设计103.1系统主菜单设计103.2系统主控表单模块设计123.2.1系统主控表单的执行屏幕133.2.2系统主控表单与控件属性设置:133.2.3 Form表单的laod事件代码:133.3数据库初始化及备份模块表单设计133.3.1数据库初始化及备份表单的执行与设计133.3.2数据库初始化及备份表单的控件属性设置143.3.3数据库初始化及备份表单的事件代码153.4工资录入模块表单设计163.4.1录入模单的执行与设计163.4.2录入表单与控件的属性设置173.4.3录入表单的事件代码173.5工资查找模块表单设计193.5.1查找表单设计一193.5.2查找表单设计二213.6.工资浏览模块表单设计233.7.修改记录模块表单设计253.7.1修改记录表单设计一253.7.2修改记录表单设计二293.7.3修改记录表单设计三303.7.4.修改记录表单设计四323.8.统计模块表单设计343.8.1统计表单设计与实现343.8.2统计表单的事件代码353.9.打印模块表单设计363.9.1打印表单执行与设计363.9.2打印表单的事件代码363.10系统封面模块表单设计383.10.1系统封面表单的执行与设计383.10.2系统封面表单的属性与事件代码393.11系统时间模块表单设计413.11.1系统时间表单的执行与设计413.11.2系统时间控件属性域代码413.12系统帮助表单模块设计423.12.1系统帮助表单的设计与执行423.12.2系统帮助表单控件的属性与事件代码:423.13报表表单的设计434程序的连遍与系统维护454.1 将应用程序添加到项目管理器中464.2工资系统的主程序设计464.3.程序的调试474.4程序的连编485结论48参考文献50致谢51V1工资管理系统需求分析与设计1.1系统功能需求简介工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的企业来说,它的设计内容非常复杂,拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,如工资管理模块,工资统计模块,报表设计模块,打印输出模块,数据查询模块等等。因此,针对该要求而言,确定了工资管理系统的设计方案。该工资管理系统的主要功能如图1-1所示:设置用户受制登陆系统界面系统帮助记录打印编辑菜单工资记录管理退出工资统计(工资表)个人工资(工资条)工资记录查询模块工资记录统计模块工资记录修改模块工资录入模块数据备份及初始化系统时间模块系统帮助模块图1-1系统功能模块组成1.2工资结构设置模块该工资管理系统主要实现一些基本的数据管理,主要表单模块,由各种输入、输出、浏览、修改、统计、打印、查询、帮助及退出等功能组成。“工资管理查询系统”要求进行设计,并工资的工作流程,该系统包括12大模块:系统登录模块、系统主菜单模块、工资录入模块、工资记录修改模块、工资记录统计模块、工资记录查询模块、数据备份及初始化、工资浏览模块、工资记录打印、系统帮助、系统退出、系统时间模块组成。系统登录模块的功能要求如下:() 用户权限设置,不同级别的用设有有不同的权限密码。() 综合初始系统设置。数据录入模块功能要求如下:() 职工信息的录入。() 数据存储。数据查询模块功能要求如下:() 根据职工姓名查询职工的工资情况。() 根据职工号查询职工的工资情况。() 根据职工工作时间查询情况。数据修改模块功能要求如下:() 追加职工信息。() 删除职工信息。() 修改职工信息。(包括个人信息及集体更改)() 自动计算职工工资信息。报表浏览及打印模块功能要求如下:() 打印工资信息。() 打印工资条(个人信息)。() 打印工资表(统计信息)。员工信息包含以下内容:() 职工号。() 姓名。() 日期。数据备份及初始化功能要求如下:() 上月工资的备份存储。() 新信息存储初始化。() 退出。系统帮助模块功能要求如下:() 显示系统时间。() 提示系统基本信息(注释版权出处)。系统退出模块功能要求如下:用户可直接退出系统。1.3目标系统要求目标系统应该达到以下要求: 1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。2、可靠性。能连续准确的处理业务,有较强的容错能力。3、可理解性。用户容易理解和使用该系统。4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。5、可用性。目标系统功能齐全,能够完全满足业务需求。6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。1.4系统平台设计选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。操作系统:Windows xp/2000/98开发工具与语言: Visual FoxPro 6.0中文版2工资管理系统信息概要设计 2.1工资数据流程图1).由需求分析可知,主导流程应用封面(设置受制权限)的表单进入系统菜单,再由各个表单模块做成系统菜单项。主要表单模块,由各种输入、输出、浏览、修改、统计、打印、查询、帮助及退出等功能。分别如图2-1、2-2所示定题采集分析资料查询开发环境熟悉研究关键技术数据库的结构设计功能模块开发功能模块测试系统调试系统试运行和修改 图2-1工资数据流程图主控表单(设计受职权限)表单工资记录管理菜单项系统菜单模块进入系统数据管理 图2-2 主表单模块系统2.2工资管理系统主要模块简介2.2.1工资管理系统主要文件组成 (数据词典分析)一般的工资管理系统主要功能包括:记录的录入、浏览、修改、统计、查找和打印等,下面为该系统主要功能模块。1) 表单功能模块工资主控模块(调用表单gzgl.scx)工资初始化及备份模块(调用表单gzinit.scx)工资录入模块(调用表单gzlr.scx)工资浏览模块(调用表单gzll.scx)工资修改模块(调用表单gzmodi.scx)工资统计模块(调用表单gzcount.scx)工资查找模块(调用表单gzfind.scx)工资打印模块(调用表单dayin.scx)系统封面模块(调用表单fm.scx)系统帮助模块(调用表单xthelp.scx)系统时间模块(调用表单xttime.scx)2) 菜单与报表文件系统功能菜单(xtcd.mnx)工资表报表(gzb.frx)工资条报表(gzt.frx)3) 数据库文件数据库名称:gz.dbc数据表名称:gzb.dbf数据表名称:XXb.dbf表2-1 Gzb表结构如下图所示:字段名称字段类型字段宽度小数点默认值职工号C80职称C80姓名C80出勤情况L职务工资N720旷工扣款N720职务补贴N820应发工资N820养老保险N720合计扣款N720实发工资N820所得税N720实发现金N820其中合同%15与承包30%两字段在建立数据库表时写成其他形式。表2-2 XXB表结构如下图所示:字段名称字段类型字段宽度小数点默认值职工号C80职称C80姓名C80性别C20年龄N20学历C802.2.2功能模块菜单工资管理系统的菜单功能如下图3-1所示:图3-1工资管理系统的菜单功能2.3项目与数据库的建立2.3.1项目地建立 在硬盘上建立一个目录C:Documents and SettingsAdministrator桌面vf作业llgzgl。 启动VFP系统,在“项目管理器窗口”中,建立一个项目,项目的名称为“工资管理系统”,并保存到所建立的C:Documents and SettingsAdministrator桌面vf作业llgzgl目录下。图4-1新建的项目2.3.2数据库及数据库表的建立建立一个GZ数据库和一个GZB表如下图5-1、6-1所示:图5-1建立数据库图6-1数据库表的内容再在GZ数据库下建立一个xxb表如下图5-2、6-2所示:图5-2图6-22.3.3数据表间关系的建立:为gzb建立主索引和xxb建立候选索引图5-3 建立主索引和候选索引3工资管理系统模块设计3.1系统主菜单设计 在“项目管理器”窗口中,选择“其他”选项卡。 在其“他选”项卡中选择“菜单”。 单击新建按钮,屏幕出现“新建菜单对话框”。 在“新建菜单对话框”中,单击“菜单”命令,系统进入“菜单设计器”窗口。分别建立“主菜单”及“工资记录管理子菜单”,主菜单包括工资记录管理、编辑菜单、记录打印、系统帮助、退出,工资记录子菜单中项目包括数据库初始化及备份、工资记录录入、工资记录浏览、工资记录修改、工资记录统计、工资记录查询、退出系统。 退出系统设计为过程:代码为byebye=messagebox(真的要退出吗?,64+1,提示信息)if byebye=1 close allclear eventsquitendif 在“菜单级”中选择“菜单栏”,返回主菜单。 重复步,编辑其他子菜单图7-1这些子菜单分别是调用系统的内部分量完成相应功能,其具体操作如下:选单项目内部命令(图8-1所示)撤销 _MED_UNDO 重做 _MED_REDO 剪切 _MED_CUT复制 _MED_COPY粘贴 _MED_PASTE清除 _MED_CLEAR 输入上述菜单项所对应的系统菜单内部命令生成菜单,其他菜单项调用程序如下所示:(图7-1)所示:记录打印菜单:打印记录:do form dayin with s 记录浏览:do form gzll系统帮助菜单:do form xttime 关于系统:do form xthelp退出菜单: 退出系统:byebye=messagebox(真的要退出吗?,64+1,提示信息)if byebye=1 close allclear eventsquit endif系统帮助:do form xthelp 设置顶层表单,保存菜单,菜单名为xtcd,扩展名.mnx,最后再生成.mpr文件。 退出菜单设计器窗口,将会在“项目管理器”窗口中看到菜单文件,在对其行修改,直到运行无误为止。图8-1单项目内部命令3.2系统主控表单模块设计主控表单用来调用系统菜单,用来控制整个系统的控制与管理。3.2.1系统主控表单的执行屏幕主控表单执行屏幕如图9-1所示。3.2.2系统主控表单与控件属性设置:Form表单的属性设置:Caption=”工资管理系统” showwindow=2-作为顶层表单( 指定该表单位顶层表单)Windowstate=2-最大化(指定表单在运行使最大化)Showtips=.T.(指定表单对象显示“工具提示”)3.2.3 Form表单的laod事件代码:Do xtcd.mpr with this,.t. 运行结果如下图所示:图9-1 运行结果图3.3数据库初始化及备份模块表单设计3.3.1数据库初始化及备份模块表单的执行与设计下图为该表单的执行屏幕及设计屏幕,分别为:图10-1、图11-1图10-1 执行屏幕图11-1 设计屏幕3.3.2数据库初始化及备份控件属性设置Label1标签的属性设置。 Caption改为:“数据库初始化” FontName改为:“华文行楷” FontSize改为:26 Fontunderline改为:.T.真Shape1和Shape2的属性: BackStyle改为:0透明SpecialEffect改为:03维3.3.3数据库初始化及备份事件代码表单form1的activate事件代码thisform.label1.caption=数据初始化thisform.label2.caption=使用说明thisform.label3.caption=使用本模块要注意,备份文件的时候一般要给出一个具体的文件名(不需扩展名);名字由工资、年份、月份、日期组成,其意义为明确备份的日期及备份是那个月的工资.thisform.label4.caption=当前数据库的信息thisform.label5.caption=当前数据库名称:+dbf()+chr(13)+当前日期+dtoc(date()+; chr(13)+需要备份到:+工资+ alltrim(str(year(date()+-+; alltrim(str(month(date()+-+alltrim(str(day(date()+.dbfthisform.label6.caption=备份数据库到下面文件中thisform.label7.caption=下面是初始化+alltrim(str(month(date()+;月份的工资表:thisform.text1.value=C:Documents and SettingsAdministrator桌面vf作业gzgzb+alltrim(str(year(date()+;alltrim(str(month(date()+-+alltrim(str(day(date()+.dbf“备份”command1按钮的click事件代码:ff=alltrim(thisform.text1.value)copy to ff“初始化”command2按钮的click 事件代码:set path to a=下面要进行初始化,将对原来的数据进行改变,所以一定要先进行备份,否则原来的数据将丢失。;+chr(13)+进行备份吗?inotice=messagebox(a,65,提示信息)if inotice=1if file(temptemp.vfp)delete file temptemp.vfpendifcopy to temptemp.vfpthisform.refreshendifCommand3“退出”按钮的Click事件代码:Thisform.Release3.4工资录入模块表单设计3.4.1工资录入表单的执行与设计工资录入模块是用来录入工资记录的,在具体操作时有些数据需要自动生成,参见代码。具体设计时各字段是通过数据环境拖拽到表单中的,再利用“布局”工具栏进行调整。表单的执行屏幕如图12-1、13-1所示: 图12-1 录入模块图13-1 录入模块3.4.2工资录入表单与控件的属性设置Form1表单的属性:Autocenter改为:.T.真(运行时表单居中)ShowWindow改为:1在顶层表单中(使得该表单能够在顶层表单中运行)Titlebar改为:0关闭(使该表单的标题栏不可见)Image1控件的属性:Stretch改为:2变比例填充Label1控件的属性:Caption改为:”工资录入模块”FontName改为:”华文行楷”FontSize改为:36Shape1 控件的属性(“职工情况”的方框):BackStyle改为:0透明(背景透明,另外在选择时注意选择“格式”中的置后,以免使该控件遮盖其他控件)SpecialEffect改为:03维(指明该控件是三维立体效果)3.4.3工资录入表单设计事件代码(1) 文本框控件“Txt应发工资”控件的事件。Click和GotFocus(获得焦点事件)的代码:with this.parentthis.value =.TXT职务工资.VALUE+.TXT书报费.VALUE+.TXT构成津贴.VALUE+.TXT合同15.VALUE+.TXT家属价格.VALUE+.TXT综合补贴.VALUE;+.TXT出勤补.VALUE+.TXT岗位津贴.VALUE+.TXT洗理费.VALUE+.TXT交通补.VALUE+.TXT儿保费.VALUE;+.TXT提租补贴.VALUE+.TXT外租房补.VALUE+.TXT未纳奖.VALUE+.TXT职务补贴.VALUE+.TXT补发工资.VALUEendwith “Txt合计扣款”控件的事件。Click和GotFocus(获得焦点事件)的代码:with this.parentthis.value=.txt养老保险.value+.txt扣会费.value+.txt公积金.value+.txt承包30.valueendwith“txt所得税”控件的事件。Click和GotFocus的代码:if this.parent.txt实发工资.value800this.value=(this.parent.txt实发工资.value-800)*0.05endifthisform.refresh“实发现金”控件的事件Click和GotFocus(获得焦点事件)的代码:with this.parentthis.value =.txt实发工资.value-.txt所得税.value-.txt其他扣款.valueendwiththisform.refresh该代码是在“txt实发现金”控件获得焦点时,自动计算实发现金的总数。(2) 命令按钮的控件“第一个”命令按钮Command1的Click事件代码:go top thisform.refresh“上一个”命令按钮Command2的Click事件代码:skip-1if bof()go top=messagebox(已经是第一个记录了!,64,提示信息)endifthisform.refresh“上一个”命令按钮Command3的Click事件代码:skip+1I f eof()go bottom=messagebox(已经是最后一个记录了!,64,提示信息)endifthisform.refresh“最后一个”命令按钮Command4的Click事件代码:go bottomthisform.refresh“添加”命令按钮Command5和Click事件代码:append blankgo bottomthisform.refresh“退出”命令按钮Command6的Click事件代码:thisform.release3.5工资查找模块表单设计3.5.1查找表单设计一Form1表单的load事件public getzgh1,getxm1,getrq1,sgetzgh1=getxm1=text1控件的interactivechange事件代码:set exact offGETzgh1=ALLTRIM(thisform.pageframe1.page1.TEXT1.VALUE)GETxm1=ALLTRIM(thisform.pageframe1.page1.TEXT2.VALUE)GETrq1=thisform.pageframe1.page1.TEXT3.VALUEs=if len(getzgh1)0s=s+职工号=GETZGH1endifif len(getxm1)0s=s+.and.+姓名=GETXM1endifdo while left(s,5)=.and.OR.LEFT(S,5)=.AND.s=subst(s,6)enddoIF LEN(ALLTRIM(S)=0SET FILTER TO ELSEset filter to &s ENDIFGO TOPTHISFORM.PAGEFRAME1.PAGE1.REFRESHTHISFORM.PAGEFRAME1.PAGE2.REFRESH添加页框控件,以工资表作为数据源其执行及设计表单屏幕如下图14-1、15-1所示: 图14-1设计屏幕Text2控件的interactivechange事件代码:set filter to 在职称=this.parent.text2.valuethisform.refreshText3控件的interactivechange事件代码:set filter to 姓名=alltrim(this.parent.text3.value)thisform.refresh“查看详细内容”命令按钮command1的click事件thisform.pageframe1.page2.setfocusthisform.refresh“打印”命令按钮command2的click事件do form dayin with s“退出”命令按钮command2的click事件Thisform.release图15-1执行屏幕3.5.2查找表单设计二以上是查询表单的第一页的控件,下面对页框第二页进行编辑,表单的执行屏幕如图17-1所示,表单的设计屏幕如图16-1所示。在该页中,有三个标签控件,其标题为职工号、日期、姓名,坑害有三个文本框控件txt职工号、txt日期、txt姓名,其ForeColor属性值为(0,0,255),即前景为蓝色。“返回上页”命令按钮Command1的Click事件代码为:thisform.pageframe1.page1.setfocusthisform.pageframe1.page1.refresh“打印”命令按钮Command2和”退出”命令按钮Command3的Click事件和页框第一页相图16-1设计屏幕图16-2添加数据源屏幕 图17-1执行屏幕3.6工资浏览模块表单设计表单form的load事件代码如下:public getzgh1,getxm1,getrq1,sgetzgh=getxm1=图18-1记录浏览执行屏幕18-2记录浏览设计屏幕Text1,text2,text3控件的interactivechange事件代码:set exact offGETzgh1=ALLTRIM(thisform.TEXT1.VALUE)GETxm1=ALLTRIM(thisform.TEXT2.VALUE)s=if len(getzgh1)0s=s+职工号=GETZGH1endifif len(getxm1)0s=s+.and.+姓名=GETXM1endifdo while left(s,5)=.and.OR.LEFT(S,5)=.AND.s=subst(s,6)enddoIF LEN(ALLTRIM(S)=0SET FILTER TO ELSEset filter to &s ENDIFGO TOPTHISFORM.REFRESHTHISFORM.REFRESH3.7修改记录模块表单设计插入一个为页框数4的个页框控件,对各个页框设计3.7.1修改记录表单设计一 (表单执行如图19-1)所示图19-1第一页执行屏幕Text1,text2,text3控件的interactivechange事件代码:set exact offGETzgh1=ALLTRIM(thisform.pageframe1.page1.TEXT1.VALUE)GETxm1=ALLTRIM(thisform.pageframe1.page1.TEXT2.VALUE)s=if len(getzgh1)0s=s+职工号=GETZGH1endifif len(getxm1)0s=s+.and.+姓名=GETXM1endifif left(s,5)=.and.OR.LEFT(S,5)=.AND.s=subst(s,6)endifIF LEN(ALLTRIM(S)=0SET FILTER TO ELSEset filter to &s ENDIFGO TOPTHISFORM.PAGEFRAME1.PAGE2.CAPTION=姓名+的详细内容THISFORM.PAGEFRAME1.PAGE1.REFRESHTHISFORM.PAGEFRAME1.PAGE2.REFRESH“查找记录”command1按钮的click事件代码:if not empty(thisform.pageframe1.page1.text4.value)n=val(alltrim(thisform.pageframe1.page1.text4.value)go nthisform.pageframe1.page2.setfocusthisform.pageframe1.page2.caption=姓名+ 的记录内容thisform.refreshelseset exact offGETzgh1=ALLTRIM(thisform.pageframe1.page1.TEXT1.VALUE)GETxm1=ALLTRIM(thisform.pageframe1.page1.TEXT2.VALUE)s=if len(getzgh1)0s=s+职工号=GETZGH1endifif len(getxm1)0s=s+.and.+姓名=GETXM1endifif left(s,5)=.and.OR.LEFT(S,5)=.AND.s=subst(s,6)endifIF LEN(ALLTRIM(S)=0SET FILTER TO ELSEset filter to &s ENDIFGO TOPendifTHISFORM.PAGEFRAME1.PAGE2.CAPTION=姓名+的详细内容THISFORM.PAGEFRAME1.PAGE1.REFRESHTHISFORM.PAGEFRAME1.PAGE2.REFRESH“删除记录”command2按钮的click事件代码:INOTICE=MESSAGEBOX(确定删除指定的记录吗?,65,重要提示)IF INOTICE=1DELETE RECORD RECNO()ANOTICE=MESSAGEBOX(确定物理删除指定的记录吗?+CHR(13)+一经删除,不能恢复!,65,重要提示)IF ANOTICE=1useuse gzb PACKusethisform.releaseENDIFTHISFORM.REFRESHENDIF“恢复删除”command3按钮的click事件代码:INOTICE=MESSAGEBOX(恢复所有逻辑删除的记录吗?,65,提示信息)IF INOTICE=1RECALL ALLENDIF“打印记录”command3按钮的click事件代码:DO FORM DAYIN WITH S“退出”command3按钮的click事件代码:THISFORM.RELEASE3.7.2修改记录表单设计二表单的执行与设计表单设计所需控件如图20-1所示,以gzb为数据源表,执行结果如图21所示图20-1 表单设计控件图21-1修改单个记录执行屏幕事件代码“自动计算”command1按钮的click事件代码:With This.Parent.Txt应发工资.Value=.Txt职务工资.Value同15.Value;+.Txt职务补贴.Value.Txt合计扣款.Value=.Txt养老保险.Value.Txt实发工资.Value=.Txt应发工资.Value-.Txt合计扣款.ValueIf This.Parent.Txt实发工资.Value800 &果工资高于800则有所得税,费率为m 5% .Txt所得税.Value= (This.Parent.Txt实发工资.Value-800)*0.05EndIf.Txt实发现金.Value=.Txt实发工资.Value-.Txt所得税.ValueEndWith“返回上页”command2按钮的click事件代码:THISFORM.PAGEFRAME1.PAGE1.SETFOCUSTHISFORM.PAGEFRAME1.PAGE1.REFRESHCommand3, command4的代码与上页相同。3.7.3修改记录表单设计三表单的设计与执行第三页是用来实现批量修改满足条件的记录,可以对指定的多个记录进行修改。表单的设计屏幕如图22-1所示:图22-1批量修改满足条件的记录事件代码“确认修改”command1按钮的click事件代码:A=MESSAGEBOX(确定更改指定的项目吗?,65,提示信息)IF A=1 &选择确定按钮时执行replace all 职务工资 WITH 职务工资+THIS.PARENT.TEXT4.VALUEreplace all 应发工资 WITH 应发工资+THIS.PARENT.TEXT4.VALUEreplace all 实发工资 WITH 实发工资+THIS.PARENT.TEXT4.VALUEreplace all 应发工资 WITH 应发工资+THIS.PARENT.TEXT5.VALUEreplace all 实发工资 WITH 实发工资+THIS.PARENT.TEXT5.VALUEreplace all 应发工资 WITH 应发工资+THIS.PARENT.TEXT6.VALUEreplace all 实发工资 WITH 实发工资+THIS.PARENT.TEXT6.VALUEreplace all 所得税 with iif(实发工资-8000,(实发工资-800)*0.05 ,0) replace all 实发现金 with 实发工资- 所得税THIS.PARENT.TEXT4.VALUE=0THIS.PARENT.TEXT5.VALUE=0THIS.PARENT.TEXT6.VALUE=0THISFORM.REFRESHENDIF图23-1批量修改满足条件的记录设计“自动计算”命令按钮的click事件代码如第二页及第四页代码相同3.7.4修改记录表单设计四表单的执行与设计第四个页面主要是实现浏览时修改,设计与执行屏幕如下24-1、25-1所示控件属性与事件代码Rowsource改为 gzb.职工号,姓名 rowsourcetype改为-字段 columncount改为2List1列表框的click事件代码:THISFORM.PAGEFRAME1.PAGE4.LABEL1.CAPTION=ALLTRIM(姓名)+的记录内容THISFORM.REFRESH图24-1浏览时修改设计模块图25-1浏览式修改记录模块执行屏幕Spinner1的属性和事件代码:Spinnerhighvalue=12Spinnerlowvalue=1Keyboardhighvalue=12Keyboardlowvalue=1Increment=1Spinner1的gotfocus事件代码:PUBLIC X,XMXM=姓名X=THIS.VALUESpinner1的upclick事件代码:LOCATE ALL FOR MONTH(日期)=THIS.VALUE .AND. 姓名=XM*?THIS.VALUE,X,XMIF FOUND() THISFORM.REFRESHELSE =MESSAGEBOX(该记录没找到!,64,提示信息) THIS.VALUE=X THISFORM.REFRESHENDIFSpinner1的downclick事件代码:*XM=姓名*X=THIS.VALUEIF FOUND() THISFORM.REFRESHELSE =MESSAGEBOX(该记录没找到!,64,提示信息) LOCATE ALL FOR MONTH(日期)=THIS.VALUE .AND. 姓名=XM THIS.VALUE=X THISFORM.REFRESHENDIF3.8统计模块表单设计3.8.1统计表单设计与实现表单的设计与执行模块设计分别如下图26-1,27-1图26-1数据统计表单的设计屏幕图27-1执行模块3.8.2统计表单事件代码“开始统计”command1按钮的click事件代码:SET talk offSET FILTER TO COUNT TO XYZSUM TO A1,A15,A16,A17,A181,A22,A23, THISFORM.TXT职务工资.VALUE=A1THISFORM.TXT职务补贴.VALUE=A15THISFORM.TXT补发工资.VALUE=A16THISFORM.TXT应发工资.VALUE=A17THISFORM.TXT养老保险.VALUE=A18THISFORM.TXT合计扣款.VALUE=A22THISFORM.TXT实发工资.VALUE=A23THISFORM.TXT实发现金.VALUE=A26THISFORM.TEXT7.VALUE=XYZTHISFORM.REFRESH3.9打印模块表单设计本表单用来实现对记录的打印,共有两种打印形式:打印工资条和打印工资表。3.9.1打印表单执行与设计表单的设计与执行模块如下图28-1所示图28-1打印模块执行图3.9.2打印表单事件代码表单form1的init事件代码:parameters tjpublic tiaojiantiaojian=tj选项按钮组optiongroup1 的click事件代码:if thisform.optiongroup1.value=3thisform.optiongroup2.value=2thisform.optiongroup2.refreshendif“打印”command1按钮的click事件代码:xyz=recno()do casecase thisform.optiongroup1.value=1if thisform.optiongroup2.value=1report form gzt.frx for recno()=xyz to printer noconsoleelsereport form gzb.frx for recno()=xyz to printer noconsoleendifcase thisform.optiongroup1.value=2if thisform.optiongroup2.value=1report form gzt.frx for &tiaojian to printer noconsoleelsereport form gzb.frx for &tiaojian to printer noconsoleendifcase thisform.optiongroup1.value=3if thisform.optiongroup2.value=1

温馨提示

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

评论

0/150

提交评论