资源描述:
《企业工资管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
随着计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强,因此编写管理信息系统应用程序也显得尤为重要,在强调管理,强调信息的现代社会中它变得越来越普及。工资管理是任何企事业单位都需要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义,同时人事管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,具有典范的数据库系统的特性。工资管理系统主要用于企业内部员工的工资、考勤、评价的管理,便于公司领导掌握人员的动向,及时调整人才的分配,同时也减少了手工操作带来的一些繁琐与不便,使员工情况的记录和统计变得十分简单.这些优点可以极大的提高企业对工资管理的效率.因此,工资管理系统是企事业信息化、智能化、科学化和正规化不可缺少的管理软件。1.系统需求分析需求分析是软件定义的最后一个阶段,它的基本任务是回答“系统必须做什么“这个问题。需求分析的任务不是确定系统怎样完成他的工作,而仅仅是确定系统完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。可行性研究阶段产生的文档,特别是数据流成图,是需求分析的出发点。数据流成图中已经划分出系统必须完成的许多基本功能,系统分析员将仔细研究这些功能并进一步将它们具体化。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。目前,公司对工资发放还是采用手工处理的方式,信息数据存在不易更新、不易存放、容易丢失、难以备份等重大缺陷。动态工资管理系统项目结合公司工资管理的实际需要,对财务处负责的工资管理工作进行有效动态管理的信息管理,提供丰富的查询分析功能和管理、决策信息,用户接口友好,是满足公司动态工资管理的软件,可以提高企业管理的效率。本系统旨在使公司对工资的管理更方便,以减轻工作人员的负担。可以快速方便地对职工工资等材料进行查询、输入、输出、查找等使工资管理能够简洁化、合理化、直观化2.系统可行性分析可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从技术、经济、社会等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。33 首先,在技术可行性上,技术可行性是指开发一个新系统所需要的技术是否具备,如支持新系统的软硬件功能以及技术人员的数量和水平。本系统是进行职工工资处理。结合实际需要,经过仔细斟酌,我选择了MicrosoftVisualBasic6.0作为开发用户界面软件,它综合了可视化开发环境的易用性、32位优化编译技术的快速和强大、有数据引擎提供的可伸缩性等特点;选SQL2000用来开发后台数据库,它具有很好的安全性与兼容性;而且本系统对硬件的要求不高,在现有技术基础上一定能实现本系统。其次,在经济可行性上,经济可行性是评价一个计算机信息系统是否可行的最基本的一种方法,是对信息系统解决方案的成本有效性的量度。信息系统的开发是一种投资,因此对于用户来说,他首先关心的是:是否值得开发一个信息系统。而在效益方面,他们首先关心的是:当他们使用了这套管理信息系统后,工资处理的效率是否提高了,人力资源是否节省了。而本系统的设计和开发事实上恰好能满足他们的这些要求。还有该系统对硬件的要求不高,装有win98系统以上的计算机一般就能运行系统,所以在系统运行方面也不存在问题。最后,在社会可行性上,新系统应当能够适应于各种类型的企业,包括大型、中型、小型。随着技术的发展,采用软件管理企业的日常工作,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断地促进信息技术和软件应用的革新。从而使得软件应用促进技术进步,技术进步反作用于软件的应用,双方面同时促使社会不断朝前。33 第一章.工资管理系统需求分析与设计1.系统功能需求简介工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的企业来说,它的设计内容非常复杂,拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,如工资管理模块,工资统计模块,报表设计模块,打印输出模块,数据查询模块等等。因此,针对该要求而言,确定了工资管理系统的设计方案。该工资管理系统的主要功能如图1所示:设置登录界面退出企业职工信息维护维护密码和用户职工奖罚信息录入修改密码修改惩罚库修改奖励库职工惩罚录入职工奖励录入企业信息维护企业信息浏览增加用户修改用户图1系统功能模块组成33 2、工资结构设置模块该工资管理系统主要实现一些基本的数据管理,主要表单模块,由各种输入、输出、浏览、修改、统计、打印、查询、帮助及退出等功能组成。“工资管理查询系统”要求进行设计,并工资的工作流程,该系统包括4大模块:企业职工信息,职工奖励信息,维护密码和用户,退出。系统登录的功能要求如下:(1)用户权限设置,不同级别的用设有有不同的权限密码。(2)综合初始系统设置。数据录入模能要求如下:(1)职工信息的录入。(2)数据存储。数据查询模块要求如下:(1)根据职工姓名查询职工的工资情况。(2)根据职工号查询职工的工资情况。(3)根据职工工作时间查询情况。数据修改功能要求如下:(1)追加职工信息。(2)删除职工信息。(3)修改职工信息。(包括个人信息及集体更改)员工信息包含以下内容:(1)职工号。(2)姓名。(3)性别(4)出生日期(5)籍贯(6)民族(7)文化程度(8)毕业学校(9)健康状况(10)婚姻状况(11)身份证号码(12)家庭状况(13)办公电话(14)手机(15)电子邮件(16)银行状况(17)工资等级(18)进入日期(19)岗位名称(20)备注系统退出模块功能要求如下:(1)用户可直接退出系统。33 3.目标系统要求目标系统应该达到以下要求:1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。2、可靠性。能连续准确的处理业务,有较强的容错能力。3、可理解性。用户容易理解和使用该系统。4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。5、可用性。目标系统功能齐全,能够完全满足业务需求。6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。第二章.工资管理系统信息概要设计1.工资数据流程图1).由需求分析可知,主导流程应用封面(设置受制权限)的表单进入系统菜单,再由各个表单模块做成系统菜单项。主要表单模块,由各种输入、输出、浏览、修改、退出等功能。分别如图2.1、2.2所示定题采集分析资料查询开发环境熟悉研究关键技术数据库的结构设计功能模块开发功能模块测试系统调试系统试运行和修改33 图2.1主控表单(设计受职权限)表单工资记录管理菜单项系统菜单模块进入系统数据管理图2.22.工资管理系统主要模块简介2.1工资管理系统主要文件组成(数据词典分析)一般的工资管理系统主要功能包括:记录的录入、浏览、修改、统计、查找等,下面为该系统主要功能模块。1).表单功能模块工资主控模块(调用表单mainform.scx)职工奖励模块(调用表单奖励.scx)职工惩罚模块(调用表单惩罚.scx)工资浏览模块(调用表单浏览.scx)工资奖励修改模块(调用表单x奖励.scx)工资惩罚修改模块(调用表单x惩罚.scx)工资查找模块(调用表单gzfind.scx)2).菜单系统功能菜单(菜单.mnx)3).数据库文件数据库名称:企业工资管理系统.dbc数据表名称:staffinfo.dbf数据表名称:salarystatic.dbf数据表名称:staffpun数据表名称:staffenc数据表名称:salaryrank数据表名称:postpay数据表名称:lenservpay数据表名称:userinfostaffinfo表结构如下图所示:33 字段名称字段类型字段宽度小数点默认值掩码职工号字符型120职称字符型300性别字符型20男姓名字符型300出生日期日期型80籍贯字符型400民族字符型100文化程度字符型100毕业学校字符型400健康状况字符型400婚姻状况字符型40身份证号码字符型1809999999999999999999家庭号码字符型1309999999999999办公电话字符型1309999999999999手机字符型1309999999999999电子邮件字符型500银行账号字符型300工资等级整型40进入日期日期型80岗位名称字符型300备注字符型1000salarystatic表结构如下图所示:字段名称字段类型字段宽度小数点默认值职工编号字符型120工资月份字符型120姓名字符型300实际工龄整型40岗位工资浮点型82奖励金额浮点型82惩罚金额浮点型82等级工资浮点型82工资总额浮点型82所得税额浮点型82实际工资浮点型82工龄工资浮点型82salarystatic表结构如下图所示:33 字段名称字段类型字段宽度小数点员工编号字符型12惩罚类型字符型30惩罚原因字符型150惩罚日期日期型20惩罚金额浮点型82惩罚说明备注型4Staffenc表结构如下图所示:字段名称字段类型字段宽度小数点员工编号字符型12奖励类型字符型30奖励原因字符型150奖励日期日期型20奖励金额浮点型82奖励说明备注型4Salarybank表结构如下图所示:字段名称字段类型字段宽度小数点等级名称整型40等级工资浮点型82postpay表结构如下图所示:字段名称字段类型字段宽度小数点岗位名称字符型300等级工资浮点型82lenservpay表结构如下图所示:字段名称字段类型字段宽度小数点工龄年数整型40工资数量浮点型82userinfo表结构如下图所示:字段名称字段类型字段宽度小数点用户名字符型300密码字符型302姓名字符型2033 P2编制工资变动表P1输入考勤信息P4编制基本工资表S2职工信息表P3输入职工信息E2人事部E1其他部门S1奖惩表D1考勤记录D2员工基本信息数据流编号:D1数据流名称:考勤记录简述:输入的企业所有职工的考勤信息数据流来源:E1数据流去向:P1数据项组成:迟到次数数据流量:每月一次 高峰流量:每月一次数据流编号:D2数据流名称:人事基本信息简述:描述人事基本信息数据流来源:E2数据流去向:P3数据项组成:职工编码、职工姓名、性别、人员类别、部门编码、部门名称、岗位编码、岗位名称、职称、工龄、个人账号、联系电话等等33 数据存储编号:S2数据存储名称:职员信息表简述:职员基本信息数据存储组成:职工编码、职工姓名、性别、人员类别、部门编码、部门名称、岗位编码、岗位名称、职称、工龄、个人帐号、联系电话等等相关联的处理:E3、P2数据存储编号:S1数据存储名称:奖惩表简述:记录职工奖罚信息情况数据存储组成:奖励原因,惩罚原因,奖励金额,惩罚金额,奖励日期,惩罚日期相关联的处理:P1、P233 2.2功能模块菜单工资管理系统的菜单功能如下图3所示:3.项目与数据库的建立3.1项目地建立①在硬盘上建立一个目录E:企业工资管理。②启动VFP系统,在“项目管理器窗口”中,建立一个项目,项目的名称为“企业工资管理系统”,并保存到所建立的E:企业工资管理。33 图4新建的项目3.2数据库及数据库表的建立建立一个GZ数据库和一个GZB表如下图图5建立数据库33 以后的几个表格和上面的一样建立即可。33 第三章.工资管理系统模块设计1.系统主菜单设计①在“项目管理器”窗口中,选择“其他”选项卡。②在其“他选”项卡中选择“菜单”。③单击新建按钮,屏幕出现“新建菜单对话框”。④在“新建菜单对话框”中,单击“菜单”命令,系统进入“菜单设计器”窗口。分别建立“主菜单”及“工资记录管理子菜单”,主菜单包括职工信息维护,职工奖励和惩罚信息录入,维护密码和用户,退出⑤退出系统设计为过程:代码为MAINFORM.RELEASECLEAREVENT⑥在“菜单级”中选择“菜单栏”,返回主菜单。⑦重复⑤~⑦步,编辑其他子菜单⑧输入上述菜单项所对应的系统菜单内部命令生成菜单,其他菜单项调用程序如下所示:⑨设置顶层表单,保存菜单,菜单名为菜单,扩展名.mnx,最后再生成.mpr文件。⑩退出菜单设计器窗口,将会在“项目管理器”窗口中看到菜单文件,在对其行修改,直到运行无误为止。2.系统主控表单模块设计主控表单用来调用系统菜单,用来控制整个系统的控制与管理。33 2.1表单的执行屏幕主控表单执行屏幕如图9所示。2.2表单与控件属性设置:Form表单的属性设置:Alwayontopf-假Autocenter.t.真Closable.f.-假Initevent:用户自定义Caption=”企业工资管理系统”showwindow=2-作为顶层表单(指定该表单位顶层表单)2.3事件代码Form表单的initevent事件代码:do菜单.MPRWITHTHIS,.T.运行结果如下图所示:图93企业职工信息维护模块表单设计3.1表单的执行与设计下图为该表单的执行屏幕及设计屏幕,33 33 3.2控件属性设置form1标签的属性设置。Autocenter:.T.-真Backcolor:255,255,255Caption改为:“职工信息维护”Height:573Showwindow:1-在顶层表单中Width:602Windowtype:1-模式文本框控件:autosize:.t.-真Backstyle:0-透明Wordwrap:.t.-真Txt员工编号:ContrlSource:staffinfo.员工编号Txt姓名:ContrlSource:staffinfo.姓名Txt性别:ContrlSource:staffinfo.性别Txt出生日期:ContrlSource:staffinfo.出生日期Txt籍贯:ContrlSource:staffinfo.籍贯Txt民族:ContrlSource:staffinfo.民族Txt文化程度:ContrlSource:staffinfo.文化程度33 Txt毕业学校:ContrlSource:staffinfo.毕业学校Txt健康状况:ContrlSource:staffinfo.健康状况Txt婚姻状况:ContrlSource:staffinfo.文化程度Txt身份证号码:ContrlSource:staffinfo.身份证号码Txt家庭号码:ContrlSource:staffinfo.家庭号码Txt办公电话:ContrlSource:staffinfo.办公电话Txt手机:ContrlSource:staffinfo.手机Txt电子邮件:ContrlSource:staffinfo.电子邮件Txt岗位名称:ContrlSource:staffinfo.岗位名称Txt工资等级:ContrlSource:staffinfo.工资等级Txt进入日期:ContrlSource:staffinfo.进入日期Txt银行账号:ContrlSource:staffinfo.银行账号Txt备注:ContrlSource:staffinfo.备注3.3事件代码上一个:SELESTAFFINFOIF.NOT.BOF()SKIP-1ELSE=MESSAGEBOX("已经是最上",0+32+256,"已经是最上")ENDITHISFORM.REFRESH下一个:SELESTAFFINFOIF.NOT.EOF()SKIP1ELSE=MESSAGEBOX("已经是最下",0+32+256,"已经是最下")ENDITHISFORM.REFRESH最上:SELESTAFFINFOGOTOPTHISFORM.REFRESH最下:SELESTAFFINFOGOBOTTTHISFORM.REFRESH增加:DOFORMAAATHISFORM.REFRESH删除:SELESTAFFINFOSETDELEONDELEIF.NOT.EOF()SKIPELSE33 SKIP-1ENDITHISFORM.REFRESH退出:THISFORM.RELEASE4.职工奖罚信息录入模块表单设计4.1职工奖罚模块表单的执行与设计工资录入模块是用来录入工资记录的,在具体操作时有些数据需要自动生成,参见代码。具体设计时各字段是通过数据环境拖拽到表单中的,再利用“布局”工具栏进行调整。表单的执行屏幕如图12、13所示:33 33 33 图12图134.2表单与控件的属性设置员工奖励表单的属性Autocenter:.T.-真Backcolor:255,255,255Caption改为:“员工奖励表”Height:573Showwindow:1-在顶层表单中Width:602Windowtype:1-模式员工惩罚表单的属性Autocenter:.T.-真Backcolor:255,255,255Caption改为:“员工惩罚表”Height:573Showwindow:1-在顶层表单中Width:602Windowtype:1-模式修改奖励库表单的属性Autocenter:.T.-真Backcolor:255,255,255Caption改为:“修改奖励库”Height:573Showwindow:1-在顶层表单中33 Width:602Windowtype:1-模式修改惩罚库表单的属性Autocenter:.T.-真Backcolor:255,255,255Caption改为:“修改惩罚库”Height:573Showwindow:1-在顶层表单中Width:602Windowtype:1-模式员工奖励表单中控制件的属性文本框:backstyle:0-透明组合框N1:rowsource:staffinfo.员工编号Rowsourcetype:6-字段Validevent用户自定义过程文本框N2,N3,N6文本框N4:Value:{}文本框N5:Value:0命令按钮:caption:添加到奖励表里面Clickevent:用户自定义过程员工奖惩罚单中控制件的属性文本框:backstyle:0-透明组合框N1:rowsource:staffinfo.员工编号Rowsourcetype:6-字段Validevent用户自定义过程文本框N2,N3,N6文本框N4:Value:{}文本框N5:Value:0命令按钮:caption:添加到奖励表里面Clickevent:用户自定义过程删除当前行:clickevent:用户自定义最上:clickevent:用户自定义最下:clickevent:用户自定义编辑框:contrlsourcestaffinpun.惩罚说明4.3事件代码添加到奖励表里面:aa_1=messagebox("添加到奖励库吗?",4+32+256,"添加到奖励库吗?")IFAA_1=6selestaffencAPPENDBLANREPL员工编号WITHTHISFORM.N1.VALUEREPL姓名WITHTHISFORM.N2.VALUE33 REPL奖励原因WITHTHISFORM.N3.VALUEREPL奖励日期WITHTHISFORM.N4.VALUEREPL奖励金额WITHTHISFORM.N5.VALUEREPL奖励说明WITHTHISFORM.N6.VALUEmessagebox("已经添加到奖励库",0+32+256,"已经添加到奖励库")ENDI添加到惩罚表里面:aa_1=messagebox("添加到惩罚库吗?",4+32+256,"添加到惩罚库吗?")IFAA_1=6selestaffencAPPENDBLANREPL员工编号WITHTHISFORM.N1.VALUEREPL姓名WITHTHISFORM.N2.VALUEREPL惩罚原因WITHTHISFORM.N3.VALUEREPL惩罚日期WITHTHISFORM.N4.VALUEREPL惩罚金额WITHTHISFORM.N5.VALUEREPL惩罚说明WITHTHISFORM.N6.VALUEmessagebox("已经添加到惩罚库",0+32+256,"已经添加到成库")ENDI删除当前行:AA_6=MESSAGEBOX("删除当前行?",4+32+256,"删除当前行?")SETDELEONIFAA_6=6SELESTAFFPUNDELEENDI最上:SELESTAFFPUNGOTOPTHISFORM.REFRESH最下:SELESTAFFPUNGOBOTTTHISFORM.REFRESH33 5.维护密码和用户模块表单设计33 33 5.2表单与控件的属性设置修改进入密码表单form1:alwaysonbotton.t.真Autocenter.t.真Caption:修改进入密码Loadevent用户自定义过程Maxbutton.f.假Minbutton.f.假Showwindow1-在顶层表单中Windowtype1-模式标签:backstyle0-透明文本框A1:validevent:用户自定义文本框A2,A3:format******33 命令按钮:clickevent:用户自定义过程增加用户表单form1:Caption:增加用户标签:Autosize.T.真5个文本框组合框:Rowsource管理员,普通用户Rowsourcetype1-值Styple2-下拉列表框Tabindex6用户管理form1:Caption:用户管理标签:Autosize.T.真表格:delectmark.f.假Recordsource用户名Recordsourcetype1-别名Columncount54个命令框5.3表单代码确定新用户和密码:W_A1=(THISFORM.A1.Value)W_A2=THISFORM.A2.ValueW_B2=THISFORM.B2.VALUESELECT254USEloginLOCATEFORUSER=W_A1IFFOUND()W_Z2=MIMAIFALLTRIM(W_A2)<>ALLTRIM(W_Z2)cmessagetitle='老的用户密码不正确,拒绝修改'cmessagetext='老的用户密码不正确,拒绝修改'ndialogtype=0+32+256nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)ELSESELECTloginREPLACEMIMAWITHW_B2WAITWIND"密码修改成功!"AT30,45TIMEOUT1THISFORM.RELEASE33 ENDIFELSEWAITWIND"没有该用户!!!"ENDI取消:THISFORM.A1.Value=""THISFORM.A2.Value=""THISFORM.B1.Value=""THISFORM.B2.Value=""退出:THISFORM.RELEASE增加用户表单确定:yhm=alltrim(thisform.text1.value)zh=alltrim(thisform.text2.value)mm=alltrim(thisform.text3.value)mmqr=alltrim(thisform.text5.value)bmdm=alltrim(thisform.text4.value)ifyhm==""orlen(yhm)=0messagebox("请输入用户名!",48,"提示")thisform.text1.setfocusreturn.f.endififzh==""orlen(zh)=0messagebox("请输入账号!",48,"提示")thisform.text2.setfocusreturn.f.endififmm==""orlen(mm)=0messagebox("请输入密码!",48,"提示")thisform.text3.setfocusreturn.f.elseifmm!=mmqrmessagebox("两次输入的密码不一致!",16,"错误")thisform.text3.value=""thisform.text5.value=""thisform.text3.setfocusreturn.f.endifendifinsertinto用户表(姓名,USER,MIMA,部门代码,类型)values(yhm,zh,mm,bmdm,THISFORM.COMBO1.VALUE)thisform.text1.value=""33 thisform.text2.value=""thisform.text3.value=""thisform.text5.value=""thisform.text4.value=""thisform.text1.setfocus用户管理增加:doformuseraddthisform.release删除:AA_1=MESSAGEBOX("确实要删除吗",4+32+256,"确实要删除吗")IFAA_1=6SELE用户表SETDELETEONDELETETHISFORM.REFRESHENDI修改:&&=MESSAGEBOX("在此进行全屏幕修改",4+32+256,"在此进行全屏幕修改")DODOFORMUSERDIT关闭:thisform.release6.1表单的执行与设计6.2属性与事件代码第四章.程序的连遍与系统维护应用系统的设计,通过项目管理器将表单与菜单、数据库等连在一起,就可以建立可执行程序。利用项目管理器编译成可执行文件很简单,它将在项目管理器中的全部文件编译在一起,形成一个独立的可执行文件。连编必须进行以下4个步骤:1.将所有的应用程序加入到项目管理器中。2.主程序的建立3.程序的调试4.应用程序的连编。1.将应用程序添加到项目管理器中将全部的应用程序添加到项目管理器中的操作步骤如下:1.打开已建立的项目。2.选择相应的选项卡,依次把自由表、数据库、表单文件、报表文件、菜单文件以及类库添加到项目。如果建立应用程序时,上述表及相关文件就已经在项目管理器中,上述步骤可以省略。33 2.工资系统的主程序设计为了连编,必须确定连编的顺序,并确定应用程序的接口,为此,必须编写主程序Main.prg,确定运行顺序。每个系统都应该有一个主程序,当在程序项目管理器中开始编写第一个程序(如程序文件、菜单、表单等)时,管理器会默认将其作为主程序,但有时可能第一个编辑的程序不是主程序,这时就要重新设置主程序。创建一个可独立运行的Windows程序,就必须建立一个程序文件作为主文件。其操作步骤如下:1.在“项目管理器”窗口中,单击“代码”选项卡,选择“程序”,并单击“新建”按钮。即可创建程序文件。工资主程序的代码如下:CLOSEALLCLEAALLSETSYSMENUOFFSETDELEONDOFORMLOGIN单击右上交的“关闭”按钮,在“另存为”对话框中,以“main”为文件名保存。3.用鼠标右键单击文件名“main.prg’,在弹出的快捷菜单中,选择“设置主文件“如图40所示,此时可以看到程序main变为黑体。图40“设计主文件”快捷菜单3.程序的调试如果在程序中有语法性的错误,当程序运行到错误的语句时,系统就会停下来并提示程序有错,通常还会说出是什么错误,如“命令中含有不能识别的短语或关键字”,并给出“33 取消”、“挂起”、“忽略”、“帮助”四个选择,它们的意思分别是:“取消”表示中止程序运行,回到命令窗口,相当于执行了Cancel命令,在程序中创建的所有变量被释放(除公共变量),但数据库及数据表一般保持当时的状态,可以用Browse命令查看数据表的内容,如记录指针所在的位置等。“挂起”表示暂停程序,相当于执行了Suspend命令,这时程序中的所有变量都保持原值,可以用?忽略。“忽略”表示忽略所有出现的错误,即跳过出错的语句继续执行后面的语句。“帮助”表示显示有关出错的帮助信息,对于错误做更详细的说明。如果这时能看出问题出在哪里,可以选择“取消”,然后进到程序中找出错误所在的位置,将其改正。在选择了“取消”后,可能这时有表单是打开的,那么用鼠标点一下该窗口,然后选择“关闭”。如果菜单是自定义菜单,用Setsysmenutodefault回到系统菜单。改完后,再次运行程序前,最好将所有的数据库及表关闭,以免在程序打开一个数据表时出现表已打开的错误,比较好的办法是在程序开头先关闭所有的数据库及表。关闭所有数据库的命令是:CloseDatagbaseAll。关闭所有表的命令是:CloseTableAll。如果不知道问题出在程序的哪个地方,选择“挂起”,系统会弹出一个调试器窗口,显示出错的语句,在跟踪窗口的黄色箭头所指的语句就是可能出错的语句。4.程序的连编程序全部编写完成就可以开始编译软件了,操作步骤如下:1.单击“项目管理器”窗口中的“连编”命令,屏幕出现“连编选项”对话框,如图:2.在“操作”框中,选择“连遍可执行文件”,按“确定”按钮。3.输入编译后的.EXE文件名,然后保存在已建的应用程序所在的目录中。4.接着系统便进入编译过程,这一过程是计算机自动完成的。在这一过程中系统会首先检查程序是否有错误,如有错误时会给出提示,在提示中可以选择“忽略”、“全部忽略”、“取消”。这里的“忽略”就是不管出现的错误继续编译。当然,一般不应该这样,一旦出现错误提示,应选择“取消”,然后找出相应的错误,改正后再编译。为了容易查找错误,系统还将错误记录下来,在菜单的“项目”—“错误”中可以看到,其中会讲明是什么错误,发生在哪个程序的哪一条语句中。对于有些错误会不给出提示而直接忽略,但它仍然会把错误记录下来。如果系统编译时没有记录错误,那是因为在菜单上的“工具”—“选项”—“常规”—“编程”中的“记录编译错误”没有打开。5.编译完成后,用户就可以将自己的系统拷贝到其他的机器上运行(即脱离VFP环境)。但是值得注意的是,系统要将相应版本的VFP支持文件拷贝进去,比如,VFP6.0中需要的文件为:VFP6r.dllVFP6renu,dull。第五章.心得体会通过本次实训体验,使我基本上掌握了开发一个系统所要做的准备,从采集信息到收集信息再到整理信息的过程是必不可少的。从用户的角度去搜索要完成的基本功能,再决定所要得做的功能模块,最后再编辑和设计各个模块,最后在实现各个模块的连编,完成一个可以实现基本功能的管理系统。33 同时该次实训使我掌握了VF系统环境的各种基本操作,如数据库的建立和使用、表单的设计和使用、菜单的设计和使用及菜单和表单之间的关系建立等等。这次实训使我收益非浅,不但让我学到了很多知识,也使自己开阔了视野,知道了当今科技的快速发展,只有不断学习才可跟上时代的步伐。33