授课15VFP应用.ppt

上传人:sccc 文档编号:5348600 上传时间:2023-06-28 格式:PPT 页数:48 大小:913.51KB
返回 下载 相关 举报
授课15VFP应用.ppt_第1页
第1页 / 共48页
授课15VFP应用.ppt_第2页
第2页 / 共48页
授课15VFP应用.ppt_第3页
第3页 / 共48页
授课15VFP应用.ppt_第4页
第4页 / 共48页
授课15VFP应用.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《授课15VFP应用.ppt》由会员分享,可在线阅读,更多相关《授课15VFP应用.ppt(48页珍藏版)》请在三一办公上搜索。

1、1,授课-15 VFP应用,15.1 创建主表单15.2 建立菜单15.3 编制程序15.4 制作子表单15.5 连编应用程序,本课通过一些应用实例,复习巩固前面已经学习过的内容,同时补充学习一些VFP程序的编写方法。,2,15.1 创建主表单,【学习目标】表单设计器的使用 生成器的使用【关键概念】表单的属性设置,3,【任务】上机F(VF高新考试汇编2003版的第8.5题)1.创建主表单:将E:2006VFPDATA1中的表Y8_5.DBF复制到本人的文件夹,重命名为S8_5.DBF,并将其加入到“项目Y”的“自由表”中。在“项目Y”中创建表单(用表单设计器),以F8_5A为名保存。设置表单F

2、8_5A中相关的属性,使其成为顶层表单。按图8-5A所示,在表单F8_5A中添加“表格”控件,将表Y8_5的fh,yss,sf,yds,df,ymqs,mqf,ysfy字段加入,标题用汉字,见图8-5A,表的样式为“财务型”。按图8-5A所示,添加三个按钮,分别是“计费”、“查询”、“退出”。其中:“计费”按钮通过调用P8_5A.PRG文件完成计费功能;“查询”按钮通过调用表单F8_5B.SCX文件完成个人收费查询;“退出”按钮可以解除事件循环并退出运行的程序。制作完成的表单外观,见图8-5A。,图8-5A,4,【任务分析】(1)创建表单 可以用菜单(工具钮)、项目管理器、命令创建。(2)设置

3、表单属性下面是一些常用属性名(P244):AlwaysOnTop 是否处于最上层 AutoCenter 运行时是否自动居中 Caption 标题(往往是要修改的)Name 名称(一般不修改)ForeColor 前景色 ShowWindow 是否顶层 Value 值 Visible 是否可见(3)放置按钮并编写事件代码 已经讲述过,略。,注:打“”的是本表单需要设置的,5,(4)表格生成器的使用 见下图,在“布局”选项中,用鼠标点击某一字段的记录,就可以在标题框内修改该字段的标题了。,6,表1 Visual FoxPro 6.0表单的常用属性,7,表2 Visual FoxPro 6.0常用事件

4、,8,表3 Visual FoxPro 6.0 常用方法,返回本课菜单,9,15.2 建立菜单,【学习目标】用菜单设计器制作菜单 主表单调用菜单的设置【关键概念】菜单的结果选项 顶层表单,10,【任务】上机F 2.建立菜单 在“项目Y”中创建菜单,以M8_5.MNX为名保存。按图8-5A所示,建立“计费”、“查询”、“退出”三个菜单项。其中:“计费”的结果为命令,调用程序P8_5A.PRG;“查询”有“个人收费查询”和“楼层收费统计”两个子项,前一个子项的结果为命令,调用表单F8_5B.SCX,后一个子项的结果为过程,调用查询Q8_5.QPR和表单F8_5C.SCX;“退出”的结果也是过程,要

5、求使其在退出程序之前发出询问,确认后再退出本系统,见图8-5D。将M8_5.MNX设置为由顶层表单调用,生成可执行菜单文件M8_5.MPR。制作完成的菜单外观,见图8-5A。,图8-5A,11,【任务分析】(1)创建菜单 可以用系统菜单(或工具钮)、项目管理器创建。(2)设置菜单由顶层表单调用 菜单设计时,在“常规选项”对话框中选择“顶层表单”复选框。(3)设计菜单 在“菜单设计器”窗口中设计菜单的方法(结果的4种选项的编辑)。完成后,先保存,再生成可执行菜单程序文件。(4)主表单属性的设置 将主表单的 ShowWindow 设置为 2(顶层表单);将主表单的 AutoCenter 设置为.T

6、.(真)。(5)主表单调用菜单的事件代码的编写 在主表单的 Init 事件代码中添加调用菜单程序命令:DO M8_5.MPR WITH THIS,M85 在主表单的 Destroy 事件代码中添加清除菜单的命令,使得关闭表单时同时清除菜单:RELE MENU M85 EXTN,12,(6)使用信息显示对话框函数 格式:=MESSAGEBOX(;,)例如运行Messagebox(“您真的要退出本系统吗?”,4+32,“提示信息”)语句将显示如上图所 示对话框。,图8-5D的对话框,用MESSAGEBOX()函数制作。,返回本课菜单,13,15.3 编制程序,【学习目标】编制程序【关键概念】内存变

7、量 程序的顺序、分支、循环三种结构,14,【任务】上机F3.编制被调用的程序 编制计费程序P8_5A.PRG。计算表S8_5.DBF中的部分字段的记录值,计费方法:sf=yss*sdj,df=yds*ddj,mqf=ymqs*mqdj,ysfy=sf+df+mqf。计算结果见图8-5A。,图8-5A,15,【相关知识】几个与内存变量有关的命令 定义:publ 全局变量 local 局部变量 显示:例 disp memo like?7_2 保存:例 save to 7_2A all like?7_2 恢复:例 rest from 7_2c addi,16,【相关知识】,程序的基本结构 1.顺序结

8、构 顺序结构是程序设计中最简单、最常用的基本结构。在该结构中,程序按语句出现的先后顺序依次执行。事实上,程序中的命令如果不进行特殊说明,就自动按其前后排列顺序执行。我们以前介绍的几个例题都是顺序结构程序设计题目。,17,2.分支结构 单条件选择语句 格式:IF 命令序列1 ELSE 命令序列2 ENDIF 功能:若条件为真(.T.),则执行命令序列1,如果条件为假(.F.),则执行命令序列2。,18,例15-1 设出租车不超过3公里时一律收费7元钱,超过时则超过部分每公里加收2.3元。试根据里程数编程计算并显示出应付车费。程序如下:CLEAR INPUT 请输入里程数:TO lc IF lc=

9、3 cf=7 ELSE cf=7+(lc-3)*2.3 ENDIF?车费为:,cf RETURN,19,多条件选择语句 格式:DO CASE CASE 命令序列1 CASE 命令序列2.CASE 命令序列n OTHERWISE 命令序列n+1 ENDCASE,20,功能:系统依次判断各是否满足,若某一为.T.,就执行该下的命令序列,执行后不再判断其它,而转去执行ENDCASE后面的第一条命令。如果没有一个为.T.,就执行OTHERWISE后面的命令序列,直到ENDCASE;如果没有OTHERWISE,则不作任何操作就转向ENDCASE之后的第一条命令。,21,例15-2使用多条件选择语句的例题

10、。给GZJ.DBF中每位职工增加工资,原则:职称为教授的基本工资加20%,副教授的加15%,讲师的加10%,否则,若基本工资低于380的按380计算。set talk off use gzj Do while.not.Eof()Do case case 职称=“教授”repl 基本工资 with 基本工资*1.2 case 职称=“副教授”repl 基本工资 with 基本工资*1.15 case 职称=“讲师”repl 基本工资 with 基本工资*1.1 case 基本工资380 repl 基本工资 with 380 Endcase skip Enddo use set talk on r

11、eturn,22,3.循环结构 在程序设计中,有时需要从某处开始有规律地反复执行某些类似的操作,这些类似的操作一般用循环结构程序设计来解决。在VFP中,提供了“当型”、“步长型”和“表扫描型”循环结构。当型循环 DO WHILE 格式:DO WHILE 命令序列 EXIT LOOP ENDDO 说明:DO WHILE 和ENDDO 语句应配对使用,各占一行。,23,功能:1)当型循环执行的过程是:根据逻辑值进行判断。如果为.T.,则执行 命令序列,命令序列执行完返回到 DO WHILE 语句,每执行一遍就判断一次 DO WHILE 语句中的。如果仍然为.T.,则继续执行 命令序列,直到的逻辑值

12、为.F.,则结束循环,转去执行 ENDDO 之后的第一条命令。2)在命令序列的适当位置可以放置 EXIT 和 LOOP 语句,用以对循环过程作特殊处理。EXIT 的功能是:无条件结束循环命令。LOOP 语句的功能是:提前结束本次循环命令。,24,3)逐个表中符合条件的记录 先用LOCATE或FIND或SEEK定位到符合条件的第一个记录上,再用NOT EOF()或 FOUND()作为循环条件,循环体内必须含有记录指针移动的语句。例15-3在GZJ.DBF中给职称为教授的职工加工资20%,每加一个就显示该职工的情况。set talk off use gzj locate for 职称=“教授”Do

13、 while found()repl 基本工资 with 基本工资*1.2 display continue Enddo use,25,4)不定次数的循环 先用某变量=6作为循环条件,在循环体内用对话框函数作判断条件,判断是否继续执行循环,这是DO 循环很典型的用法。例15-4根据输入的姓名在GZJ.DBF中查询工资情况。set talk off use gzj x=6 Do while x=6 accept 输入要查的人名:to xm locate for 姓名=xm If found()display Else?查无此人!Endif x=messagebox(还要查吗?,4+32,提示)E

14、ndd?再见!Use RETU,26,步长型循环 FOR 格式:FOR=TO STEP 命令序列 EXIT LOOP ENDFOR/NEXT 功能:首先将初值赋值给循环变量,然后判断循环变量的值是否超过终值,不超过就执行循环体,遇到ENDFOR或NEXT语句,自动使循环变量增加一个步长值,再将循环变量的值与终值比较,如果循环变量的值不超过终值,就再执行循环体,不断循环执行。如果循环变量的值超过终值则转去执行ENDFOR或NEXT语句后面的第一条语句。,27,说明:1)、都是数值表达式;若步长为正数,计数器增加;若步长为负数,则计数器减少;当是1时,可以省略STEP子句。2)ENDFOR或NEX

15、T语句为循环终端语句,用以标明本循环结构的终点。该语句必须和FOR语句配对使用。3)在循环体内的EXIT和LOOP语句,作用和用法与当型循环结构类似。,28,例15-5编程求S=1!+2!+n!set talk off input“请输入终值(n3)”to n s=0 For i=1 to n t=1 For j=1 to I t=t*j Endfor s=s+t Endfor?“1!+2!+”+alltrim(str(n)+“!=”+alltrim(str(s),29,表扫描型循环 SCAN 针对表记录、逐条处理表记录的一种循环。格式:SCAN 范围 FOR|WHILE 语句序列 EXIT

16、LOOP ENDSCAN 功能:在当前表中给定范围内对符合条件的记录逐个执行语句序列,若符合条件的记录处理完毕,则执行ENDSCAN后面的语句。,30,说明:1)范围有ALL、NEXT n、REST、RECORD n四种,省略时默认为ALL。2)EXIT和LOOP语句,功能和用法同其他循环结构类似。3)表扫描型循环结构每循环一遍,记录指针自动移动到下一条记录,不需要设置SKIP语句。例15-6在主窗口中逐个显示GZJ.DBF中前5条记录中男性的记录。use gzj Scan for 性别=男 next 5 display Endscan?显示完毕!retu,31,【循环的归纳小结】DO 循环的

17、格式 DO WHILE 命令序列 EXIT LOOP ENDDFOR 循环的格式 FOR=TO STEP 命令序列 EXIT LOOP ENDFSCAN 循环的格式 SCAN 范围 FOR|WHILE 命令序列 EXIT LOOP ENDS,32,【本项任务的解决】由于有数据共享的问题,表单中的数据更新计算一般使用SQL的数据更新命令。UPDA S8_5 SET SF=SDJ*YSS UPDA S8_5 SET DF=DDJ*YDS UPDA S8_5 SET MQF=MQDJ*YMQS UPDA S8_5 SET YSFY=MQF+SF+DF RETU 可见,这是一个顺序结构的编程问题。,返

18、回本课菜单,33,15.4 制作子表单,【学习目标】向导、设计器、生成器等综合应用制作表单 查询的方法【关键概念】控件的类库 查询的分组统计,34,【任务】上机F(VF高新考试汇编2003版的第8.5题)4.创建两个子表单 按图8-5B所示,在“项目Y”中创建个人收费 查询子表单(使用表单向导),表单以F8_5B.SCX为名保存。表单的数据源为表S8_5.DBF。按楼层分组制作楼层收费统计的查询。查询的数据源为表S8_5.DBF,查询输出到表S8_5A.DBF中,保存在“项目Y”的“自由表”中。查询文件以Q8_5.QPR为名保存在“项目Y”的“查询”中。按图8-5C所示,在“项目Y”中创建楼层

19、收费统计子表单(使用表单设计器),以F8_5C.SCX为名保存。表单的数据源为表S8_5A.DBF。结果见图8-5B、图8-5C。,图8-5B,图8-5C,35,【任务分析】(1)本任务的表单F8_5B可以使用表单向导制作,然后用表单设计器进行布局方面的修改。(2)本任务的第2点是要制作一个查询,通过查询形成一个楼层收费表S8_5A.DBF。为了完成这个查询,需要在表S8_5.DBF中添加一个字段“lc”,其各记录的值为“fh”的百位数字。查询可以用查询设计器制作,用“lc”作为分组,并应用求和函数完成查询。(3)本任务的表单F8_5C 使用表单设计器、生成器制作,数据源为查询形成的表S8_5

20、A.DBF。F8_5C的“ShowWindows”属性要设置为:“1在顶层表单中”。,36,【相关知识】其实,表单F8_5B也可以直接用表单设计器制作。添加控件 点击表单控件中的某个控件,再在表单中施放即可。实例 添加文本按钮组的方法:(在“表单控件”工具栏中进行如下三步操作)单击“查看类”按钮,选择“添加”命令;在“打开”对话框中,选择要加载的通用数据操纵控制按钮组类库文件VFP98WIZARDSWIZBTNS.VCX;将控件TXTBTNS拖放添加到表单中。,37,表单对象的布局 在表单中施放的各个对象,可能会很散乱,可以用鼠标先将需要对齐的对象选定,再用布局工具栏中的各种对齐按钮使之对齐。

21、,图14,38,用多种工具制作表单 使用多种工具制作表单的一般步骤:(1)用表单向导制作表单;(2)用表单设计器进行布局修改;(3)增加表单控件,用表单生成器进行局部修改;(4)编写一些必要的事件代码;(5)通过对控件、表单属性等的设置,修饰表单。,39,属性的设置(1)用属性窗口在设置框键入、选择或使用生成器,若输入表达式,须先键入“=”。(2)在运行中设置(编写代码)绝对引用格式:容器对象名.对象名.属性名=属性值例:Formset1.Text1.Value=DATE()Formset1.Text1.Forecolor=RGB(128,0,0),40,控件介绍常用的控件(P267,21个)

22、标签、文本、编辑、按钮、按钮组、选项、复选、组合、列表、微调、表格图像、计时器、页框、OLE对象、O绑定、线条、形状、容器、分隔、链接通过实例学习典型的用法。,41,控件应用举例例15-7 制作字体能变形的表单Bd8-1zx.scx。运行结果见右图:内有:1个标签框,1个选项组,3个复选组,1个组合框,1个按钮。,42,1.Check1的Click代码:if this.value=1 thisform.label1.fontbold=.t.else thisform.label1.fontbold=.f.Endif2.Check2的Click代码:if this.value=1 thisfor

23、m.label1.fontunderline=.t.3.Check3的Click代码:if this.value=1 thisform.label1.fontItalic=.t.,4.OptionGroup1的Click代码:n=this.valuedo case case n=1 thisform.label1.fontname=宋体 case n=2 thisform.label1.fontname=楷体_GB2312 case n=3 thisform.label1.fontname=隶书 case n=4 thisform.label1.fontname=华文新魏endc,43,5.C

24、ombo1的Init代码:this.additem(15)this.additem(18)this.additem(“20)this.additem(24)6.Combo1的Interactivechang代码:thisform.label1.fontsize=val(alltrim(this.displayvalue),7.Command1的Click代码:thisform.release8.标签的属性设置(略),返回本课菜单,44,15.5 连编应用程序,【学习目标】用项目管理器连编应用程序文件【关键概念】主文件 包含和排除 应用程序文件,45,【任务】上机F5.建立应用程序 在“项目Y”

25、中创建“我的主程序.PRG”主程序文件,程序应能设置一些必要工作环境(如:路径、日期格式等),能调用表单F8_5A,激活事件响应。在“项目Y”中连编应用程序“应用VF.APP”。将“应用VF.APP”添加到“项目Y”的“应用程序”中。结果见右图(共22个文件),46,【任务分析】(1)本任务主要是要求同学们掌握使用项目管理器进行程序文件的连编(连接并编译)方法。连编是大多数应用程序设计都要进行的一项工作。(2)本任务的第1点是要编写一个“我的主程序.PRG”的主程序文件。主程序文件通常是进入某一应用系统的首个文件,负责设置应用系统的工作环境等,该文件的程序清单(参考方案)如下:set talk

26、 offset safe offSET DEFA TO SYS(5)+SYS(2003)SET ESCA ONSET DATE ANSISET CENT ON,SET MARK TO-SET COLL TO PINYINDO FORM F8_5AREAD EVEN,47,(3)本任务的第2点是要连编一个应用程序文件。连编之前,一般要做好以下的三件事:在项目管理器中添加、移走文件;指定主文件(指定后,文件名的字体较粗);设置有关文件的“包含排除”状态(数据文件,如表、库,一般不包含,其余为包含)。之后,就可以点击项目管理器的“连编”按钮,进行连编。见右图,首次连编,可以先选择“重新连编项目”,若连编过程可以正常完成,再选择“连编应用程序”,连编之后,会产生一个后缀为.APP(小狐狸)的文件。,48,【上机F的评分标准】(1)文件夹内有22个VFP的文件。(2)点击“小狐狸”文件进入,点击菜单,能观看到“图8_5A”、“图8_5B”、“图8_5C”、“图8_5D”这四个画面。(3)各项的评分为:第0项5分,第1项20分,第2项每项20分,第3项15分,第4项30分,第5项10分。满分100分。(4)在90分钟内完成不扣超时分。以后每增加用时1分钟扣1分(不足1分钟按1分钟计算)。,-结束-,返回本课菜单,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号