[其它]授课-F VFP应用.ppt

上传人:音乐台 文档编号:2001825 上传时间:2019-01-30 格式:PPT 页数:48 大小:914KB
返回 下载 相关 举报
[其它]授课-F VFP应用.ppt_第1页
第1页 / 共48页
[其它]授课-F VFP应用.ppt_第2页
第2页 / 共48页
[其它]授课-F VFP应用.ppt_第3页
第3页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[其它]授课-F VFP应用.ppt》由会员分享,可在线阅读,更多相关《[其它]授课-F VFP应用.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_

2、5A为名保存。 设置表单F8_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) 创建表单 可以用

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

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

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

6、置 将主表单的 ShowWindow 设置为 2(顶层表单); 将主表单的 AutoCenter 设置为 .T.(真) 。 (5) 主表单调用菜单的事件代码的编写 在主表单的 Init 事件代码中添加调用菜单程序命令: DO M8_5.MPR WITH THIS, “M85“ 在主表单的 Destroy 事件代码中添加清除菜单的命令,使得关闭表单时同时清除菜单: RELE MENU M85 EXTN,12,(6)使用信息显示对话框函数 格式:=MESSAGEBOX(; ,) 例如运行Messagebox(“您真的要退出本系统吗?”, 4+32,“提示信息”)语句将显示如上图所 示对话框。,图8

7、-5D的对话框,用MESSAGEBOX()函数制作。,返回本课菜单,13,15.3 编制程序,【学习目标】 编制程序 【关键概念】 内存变量 程序的顺序、分支、循环三种结构,14,【任务】 上机F 3. 编制被调用的程序 编制计费程序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

8、保存: 例 save to 7_2A all like ?7_2 恢复: 例 rest from 7_2c addi,16,【相关知识】,程序的基本结构 1. 顺序结构 顺序结构是程序设计中最简单、最常用的基本结构。在该结构中,程序按语句出现的先后顺序依次执行。 事实上,程序中的命令如果不进行特殊说明,就自动按其前后排列顺序执行。我们以前介绍的几个例题都是顺序结构程序设计题目。,17,2. 分支结构 单条件选择语句 格式:IF 命令序列1 ELSE 命令序列2 ENDIF 功能:若条件为真(.T.),则执行命令序列1,如果条件为假(.F.),则执行命令序列2。,18,例15-1 设出租车不超过

9、3公里时一律收费7元钱,超过时则超过部分每公里加收2.3元。试根据里程数编程计算并显示出应付车费。程序如下: CLEAR INPUT “请输入里程数:“ TO lc IF lc=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后面的第一条命令。 如果没有一个为.

10、T.,就执行OTHERWISE后面的命令序列,直到ENDCASE;如果没有OTHERWISE,则不作任何操作就转向ENDCASE之后的第一条命令。,21,例15-2使用多条件选择语句的例题。给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

11、 职称=“讲师” repl 基本工资 with 基本工资*1.1 case 基本工资380 repl 基本工资 with 380 Endcase skip Enddo use set talk on return,22,3. 循环结构 在程序设计中,有时需要从某处开始有规律地反复执行某些类似的操作,这些类似的操作一般用循环结构程序设计来解决。在VFP中,提供了“当型”、“步长型”和“表扫描型”循环结构。 当型循环 DO WHILE 格式: DO WHILE 命令序列 EXIT LOOP ENDDO 说明: DO WHILE 和ENDDO 语句应配对使用,各占一行。,23,功能: 1)当型循环执

12、行的过程是:根据逻辑值进行判断。如果为.T.,则执行 命令序列,命令序列执行完返回到 DO WHILE 语句,每执行一遍就判断一次 DO WHILE 语句中的。如果仍然为.T.,则继续执行 命令序列,直到的逻辑值为.F.,则结束循环,转去执行 ENDDO 之后的第一条命令。 2)在命令序列的适当位置可以放置 EXIT 和 LOOP 语句,用以对循环过程作特殊处理。EXIT 的功能是:无条件结束循环命令。LOOP 语句的功能是:提前结束本次循环命令。,24,3)逐个表中符合条件的记录 先用LOCATE或FIND或SEEK定位到符合条件的第一个记录上,再用NOT EOF()或 FOUND()作为循

13、环条件,循环体内必须含有记录指针移动的语句。 例15-3在GZJ.DBF中给职称为教授的职工加工资20%,每加一个就显示该职工的情况。 set talk off use gzj locate for 职称=“教授” Do 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

14、 Do while x=6 accept “输入要查的人名:“ to xm locate for 姓名=xm If found() display Else ?“查无此人!“ Endif x=messagebox(“还要查吗?“,4+32,“提示“) Endd ?“再见!“ Use RETU,26,步长型循环 FOR 格式: FOR = TO STEP 命令序列 EXIT LOOP ENDFOR/NEXT 功能: 首先将初值赋值给循环变量,然后判断循环变量的值是否超过终值,不超过就执行循环体,遇到ENDFOR或NEXT语句,自动使循环变量增加一个步长值,再将循环变量的值与终值比较,如果循环变量

15、的值不超过终值,就再执行循环体,不断循环执行。如果循环变量的值超过终值则转去执行ENDFOR或NEXT语句后面的第一条语句。,27,说明: 1)、都是数值表达式;若步长为正数,计数器增加;若步长为负数,则计数器减少;当是1时,可以省略STEP子句。 2)ENDFOR或NEXT语句为循环终端语句,用以标明本循环结构的终点。该语句必须和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=

16、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 LOOP ENDSCAN 功能: 在当前表中给定范围内对符合条件的记录逐个执行语句序列,若符合条件的记录处理完毕,则执行ENDSCAN后面的语句。,30,说明: 1)范围有ALL、NEXT n、REST、RECORD n四种,省略时默认为ALL。 2)EXIT和LOOP语句,功能和用法同其他循环结构类似。

17、3)表扫描型循环结构每循环一遍,记录指针自动移动到下一条记录,不需要设置SKIP语句。 例15-6在主窗口中逐个显示GZJ.DBF中前5条记录中男性的记录。 use gzj Scan for 性别=“男“ next 5 display Endscan ?“显示完毕!“ retu,31,【循环的归纳小结】 DO 循环的格式 DO WHILE 命令序列 EXIT LOOP ENDD FOR 循环的格式 FOR = TO STEP 命令序列 EXIT LOOP ENDF SCAN 循环的格式 SCAN 范围 FOR |WHILE 命令序列 EXIT LOOP ENDS,32,【本项任务的解决】 由于

18、有数据共享的问题,表单中的数据更新计算一般使用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 可见,这是一个顺序结构的编程问题。,返回本课菜单,33,15.4 制作子表单,【学习目标】 向导、设计器、生成器等综合应用制作表单 查询的方法 【关键概念】 控件的类库 查询的分组统计,34,【任务】 上机F(VF高新考试汇编2003版的第8.5题) 4. 创建两个子表单 按图8-5B所示

19、,在“项目Y”中创建个人收费 查询子表单(使用表单向导),表单以F8_5B.SCX为名保存。表单的数据源为表S8_5.DBF。 按楼层分组制作楼层收费统计的查询。查询的数据源为表S8_5.DBF,查询输出到表S8_5A.DBF中,保存在“项目Y”的“自由表”中。查询文件以Q8_5.QPR为名保存在“项目Y”的“查询”中。 按图8-5C所示,在“项目Y”中创建楼层收费统计子表单(使用表单设计器),以F8_5C.SCX为名保存。表单的数据源为表S8_5A.DBF。 结果见图8-5B、图8-5C。,图8-5B,图8-5C,35,【任务分析】 (1)本任务的表单F8_5B可以使用表单向导制作,然后用表

20、单设计器进行布局方面的修改。 (2)本任务的第2点是要制作一个查询,通过查询形成一个楼层收费表S8_5A.DBF。为了完成这个查询,需要在表S8_5.DBF中添加一个字段“lc”,其各记录的值为“fh”的百位数字。查询可以用查询设计器制作,用“lc”作为分组,并应用求和函数完成查询。 (3)本任务的表单F8_5C 使用表单设计器、生成器制作,数据源为查询形成的表S8_5A.DBF。F8_5C的“ShowWindows”属性要设置为:“1在顶层表单中”。,36,【相关知识】 其实,表单F8_5B也可以直接用表单设计器制作。 添加控件 点击表单控件中的某个控件,再在表单中施放即可。 实例 添加文本

21、按钮组的方法: (在“表单控件”工具栏中进行如下三步操作) 单击“查看类”按钮,选择“添加”命令; 在“打开”对话框中,选择要加载的通用数据操纵控制按钮组类库文件VFP98WIZARDSWIZBTNS.VCX; 将控件TXTBTNS拖放添加到表单中。,37,表单对象的布局 在表单中施放的各个对象,可能会很散乱,可以用鼠标先将需要对齐的对象选定,再用布局工具栏中的各种对齐按钮使之对齐。,图14,38,用多种工具制作表单 使用多种工具制作表单的一般步骤: (1) 用表单向导制作表单; (2) 用表单设计器进行布局修改; (3) 增加表单控件,用表单生成器进行局部修改; (4) 编写一些必要的事件代

22、码; (5) 通过对控件、表单属性等的设置,修饰表单。,39,属性的设置 (1)用属性窗口 在设置框键入、选择或使用生成器,若输入表达式,须先键入“=”。 (2)在运行中设置(编写代码) 绝对引用格式: 容器对象名.对象名.属性名=属性值 例:Formset1.Text1.Value=DATE() Formset1.Text1.Forecolor=RGB(128,0,0),40,控件介绍 常用的控件(P267,21个) 标签、文本、编辑、按钮、按钮组、选项、复选、组合、列表、微调、表格 图像、计时器、页框、OLE对象、O绑定、线条、形状、容器、分隔、链接 通过实例学习典型的用法。,41,控件应

23、用举例 例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. Endif 2. Check2的Click代码: if this.value=1 thisform.label1.fontunderline=.t. 3. Check3的Click代码: if this.value=1 thisform.label1.

24、fontItalic=.t.,4.OptionGroup1的Click代码: n=this.value do 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.Combo1的Init代码: this.additem(“15“) this.additem(“18“) this.additem(“20“) t

25、his.additem(“24“) 6. Combo1的Interactivechang代码: thisform.label1.fontsize= val(alltrim(this.displayvalue),7.Command1的Click代码: thisform.release 8.标签的属性设置 (略),返回本课菜单,44,15.5 连编应用程序,【学习目标】 用项目管理器连编应用程序文件 【关键概念】 主文件 包含和排除 应用程序文件,45,【任务】 上机F 5. 建立应用程序 在“项目Y”中创建 “我的主程序.PRG”主程序文件,程序应能设置一些必要工作环境(如:路径、日期格式等),

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

27、S(2003) SET ESCA ON SET DATE ANSI SET CENT ON,SET MARK TO - SET COLL TO PINYIN DO FORM F8_5A READ 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备18001539号-1