第三章 VF程序设计基础——课件.ppt
《第三章 VF程序设计基础——课件.ppt》由会员分享,可在线阅读,更多相关《第三章 VF程序设计基础——课件.ppt(64页珍藏版)》请在三一办公上搜索。
1、2023/3/27,1,第三章 Visual FoxPro程序设计基础,基本学习目标:1掌握建立、修改、运行程序的方法2掌握和使用顺序结构、选择结构和循环结构进阶学习目标:1灵活运用各种结构进行程序设计2了解多模块程序结构,2023/3/27,2,3.1 程序概述,程序:为了完成某项任务而编写的命令序列。程序的本质都是进行数值计算或数据处理,得出有用的信息。程序是完成大型的、复杂的、综合性较强而且需要多次重复执行的任务的最适合方式。VFP同时支持面向过程(OP)和面向对象(OO)的程序设计方法。其中OP是OO的基础。,2023/3/27,3,3.1.1 程序设计的步骤,建立编辑保存执行调试,相
2、关概念:程序代码:以命令形式出现的指令、函数或任何VFP能理解的操作指令。保存程序代码的文件称为命令文件、程序文件或程序。代码的使用:在程序、命令窗口中,以及表单、类、菜单、报表等的事件、过程或方法程序中。,2023/3/27,4,1.建立程序,建立程序:3种方法(1)命令:MODIFY COMMAND 文件名MODIFY FILE 文件名(2)选择“文件”|“新建”|选择文件类型为“程序”|单击“新建文件”按钮。(3)在项目管理器中选择“代码”选项卡|选择“程序”|单击“新建(N)”按钮。无论使用哪种方法,VFP都会打开程序窗口,用户就可在其中编制代码,完成程序设计。,2023/3/27,5
3、,2.程序的编辑和保存,(1)编辑:先打开:3种方法命令:MODIFY COMMAND|FILE 程序文件名 菜单:“文件”|“打开”|选择文件类型为“程序”|选择需要打开的程序文件|单击“确定”按钮。项目管理器:选“代码”选项卡,选中需打开的程序文件,再单击“修改(M)”按钮。(2)保存(应随时保存),默认扩展名.PRG。5种方法:按下 Ctrl+S快捷键,存盘但不退出程序窗口。按下Ctrl+W则存盘退出程序窗口。选择“文件”|“保存”或“另存为”命令。单击工具栏上的“保存”按钮。在关闭程序窗口系统询问是否保存时选择是即可保存,2023/3/27,6,3.执行程序:4法,(1)命令:DO 执
4、行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令:CANCEL:终止程序运行,清除所有的私有变量,返回命令窗口;RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口;QUIT:结束程序执行并退出VFP,返回操作系统。(2)菜单:选“程序”|“运行”命令打开“运行”对话框,选择需执行的程序后单击“运行”按钮。(3)项目管理器:在“代码”选项卡中选择需要执行的程序文件再单击“运行(U)”按钮。(4)程序窗口中:按下Ctrl+E或单击工具栏上的“!”运行按钮,也可以右击程序窗口,从快捷菜单中选择“执行XXX.PRG”命令(XXX.PRG表示当前程
5、序窗口中的程序文件名),2023/3/27,7,3.1.2 程序中的常用命令,简单的输入输出数组与表中数据的传送命令内存变量与表中记录的传送命令,2023/3/27,8,1.简单的输入输出命令,ACCEPTINPUTWAIT SAY GETTEXTENDTEXT,2023/3/27,9,(1)ACCEPT命令,格式:ACCEPT TO 功能:提示并等待用户输入一个字符串给指定内存变量。注意:该命令只能输入字符型数据,所输入的字符串不需要加定界符。,2023/3/27,10,【例3-1】打开并显示数据表的内容,CLEARACCEPT“请输入数据库名:”TO kmOPEN DATABASE&kmA
6、CCEPT 请输入表名 TO bmUSE&bmLISTUSE,2023/3/27,11,(2)INPUT命令,格式:INPUT TO 功能:用以提示并等待用户输入数据。可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入。系统会将用户输入数据(若需要,则先行计算出结果)赋值给指定内存变量。,2023/3/27,12,【例3-2】输入长方形的长和宽,求面积,CLEARINPUT“长方形的长为:”TO changINPUT“长方形的宽为:”TO kuans=chang*kuan?“长方形的面积为:”,s,2023/3/27,13,
7、(3)WAIT命令,格式:WAIT TO WINDOW AT,NOWAIT CLEAR|NOCLEAR TIMEOUT功能:暂停并显示提示信息,用户按任意键或单击鼠标时才继续执行程序。说明:可选项TO,将输入的单个字符存入指定的;若用户是按Enter键或单击鼠标,的值为空串。若省略所有可选项,屏幕显示“键入任意键继续”的默认提示信息。,2023/3/27,14,【例3-3】按学号查“学生成绩”,CLEARUSE 学生成绩ACCEPT“请输入待查学生的学号:TO nIF LEN(n)=0WAIT“输入无效,结束程序运行!”;WINDOW TIMEOUT 5ELSELIST FOR n=学号END
8、IFUSE,2023/3/27,15,ACCEPT、WAIT、INPUT比较,ACCEPT命令只能接受字符串,不需要定界符,输入完毕按回车键结束WAIT命令只能输入单个字符,也不需定界符,但输入完毕不需按回车键INPUT命令功能最强,可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需要用定界符,输入完毕按回车键结束。,2023/3/27,16,(4)定位输入输出命令,SAY GET DEFAULT,功能:在指定行列位置显示的值,并允许修改的值。,指定数据起始显示位置,需要显示的串,需要输入或修改的变量,变量的初值,说明:行号和列号都从
9、0开始的十进制整数。先输出表达式1(背景色以标准型显示),再空一格后接着显示变量值(背景色以增强型显示),无SAY子句则从指定位置显示变量值。变量要有初值(可用DEFAULT 指定)其类型在编辑期间不能改变,字符型的宽度和数值型的小数位数也不可更改。GET子句必须由READ子句激活后才能编辑GET变量值。直到光标移出由这些GET变量组成的区域时READ命令才算执行结束。,2023/3/27,17,CLEARUSE 学生成绩2,5 SAY 待修改的记录号:GET JLH DEFA 1READGO JLHSCATTER MEMV&将记录数据导出到与字段变量同名的一组内存变量中4,5 SAY 学号:
10、GET M.学号6,5 SAY 高数:GET M.高数8,5 SAY 英语:GET M.英语10,5 SAY 计算机:GET M.计算机READ14,5 SAY 保存修改?(Y/N):GET OK DEFA yREADIF UPPER(OK)=“Y GATHER MEMV 16,5 SAY 存盘完毕!ELSE 16,5 SAY 你放弃了修改。ENDIFUSE,【例3-4】修改“学生成绩”记录,2023/3/27,18,(3)文本输出命令、,或 命令格式:|文本串功能::先换行,再原样输出文本串中的所有字符。:不换行直接输出。若文本串中有需要计算的表达式,可先用命令 SET TEXTMERGE
11、ON 设置文本的合并计算,然后用一对将要计算的表达式括起来。这样,在输出到部分时,先计算出其中的表达式的值,再将该值和剩余文本串输出来。如:SET TEXTMERGE ON今天是月日&若今天是9月5日则会输出“今天是9月5日”的文本。,2023/3/27,19,textend text 命令格式:TEXT文本行1文本行2文本行3 END TEXT功能:先换行,然后将textend text之间的所有文本行原样输出。,2023/3/27,20,2.数组与表中数据的传送命令,(1)将表中数据传送给数组格式:COPY TO ARRAY FIELDS|FIELDS LIKE|FIELDS EXCEPT
12、范围子句 条件子句 NOOPTIMIZE功能:将当前工作区中打开的表中的数据传送到一维/二维数组中。一维数组仅存一条记录,二维数组可存多条记录。,2023/3/27,21,数组与表中数据的传送说明:如右图所示:,表中的备注字段不会存入数组,如:COPY TO ARRAY aTemp FIELDS LIKE a*,p*FIELDS LIKE A*,P*EXCEPT PARTNO*&把表中符合字段首字符为A或P但以PARTNO开头的字段 除外的记录数据存入数组aMyArray中,说明,2023/3/27,22,如:USE 学生成绩&打开“学生成绩”表DIMENSION a(3,4)&定义3行4列的
13、二维数组COPY NEXT 3 TO ARRAY a&把表中头3条记录存入二维数组a中。DISPLAY MEMORY LIKE a&显示数组中各元素信息,结果如图所示:,2023/3/27,23,(2)将数组中的数据添加到数据表中格式:APPEND FROM ARRAY FOR 条件;FIELDS|FIELDS LIKE|FIELDS EXCEPT 功能:与COPY TO ARRAY刚好相反,是将数组中符合条件的数据追加到当前工作区中打开的数据表中。,说明:若数组列数多,则忽略多余列。反之,若数组列数少,则多出的字段被置为相应类型的空值。如字符型的则置为指定宽度的空格串。忽略数组中的备注型、通
14、用型数据。若数组中某列的值与相应字段的类型不匹配,则对应字段也被置为相应类型的空值。二维数组中有多少行,则在表中追加相应行数的记录。若是一维数组,仅追加一行,具体参照二维数组中的一行来处理。,2023/3/27,24,如:DIMENSION a(4)a=60a(1)=2000130205USE 学生成绩&打开“学生成绩”表APPEND FROM ARRAY aUSE,该段代码将在“学生成绩”表中追加一条新记录,其学号、高数、英语、计算机字段的值分别为2000130205,60,60,60。,2023/3/27,25,3.内存变量与表中记录的传送命令,(1)将当前记录传送到数组或内存变量中格式:
15、SCATTER FIELDS TOMEMVAR BLANK功能:与COPY TO ARRAY功能相似。用来将数据表中当前记录的内容导出到数组或者与字段变量同名的内存变量中。,2023/3/27,26,说明,当使用TO子句时,相当于COPY TO ARRAY到一维数组中。但不同的是当数组列数少于表中字段数时,会自动扩大数组到适合大小。当使用MEMVAR子句时,将数据表中当前记录的内容导出到与字段变量同名的一组内存变量中。若这些同名的内存变量不存在,则自动创建这组变量。若同时还有BLANK子句,则只创建这组变量,并不传送数据。忽略表中的备注型、通用型字段数据。,2023/3/27,27,(2)用数
16、组或内存变量值替换当前记录格式:GATHER FROMMEMVAR|NAME FIELDS|FIELDS LIKE|FIELDS EXCEPT MEMO功能:与SCATTER命令的传送方向刚好相反,是以数组或指定内存变量中的数据替换当前工作区里打开的数据表中的当前记录。,2023/3/27,28,说明:若选用FROM子句,则与APPEND FROM ARRAY 从一维数组中添加记录类似,只是此处是替换当前记录而不是追加记录。当数组列数大于表中字段数,则忽略多余的元素。反之,表中多出的字段的值不受影响。若选用MEMV子句,则使用同名的内存变量值来替换表中相应的字段值。若需要替换表中的备注字段值,
17、可加上MEMO子句,但是不能替换通用字段值。若选用NAME 子句,则可用指定对象中的同名属性值来替换表中当前记录相应的字段值。,2023/3/27,29,USE 学生成绩&打开“学生成绩”表SCATTER MEMV BLANKM.学号=2000130209STORE 70 TO M.高数,M.英语,M.计算机APPEND BLANKGATHER MEMV USE,在“学生成绩”表追加一条新记录,其学号、高数、英语、计算机字段值分别为2000130209,70,70,70,2023/3/27,30,3.1.3 系统运行环境的命令设置,(1)SET DEFAUT TO&设置默认搜索目录搜索顺序:I
18、.当前目录,II.命令指定的目录,III.系统默认目录。若都找不到,才报告出错信息。(2)SET CENTURY ON|OFF设置D、T型“年”的显示位数。默认OFF,2位;ON,4位。(3)SET FIELDS TO|ALL|ALL LIKE|EXCEPT&设置字段表(投影),选取用户关心的字段,不在中的字段数据不显示。用SET FIELDS OFF恢复所有字段。(4)SET SAFETY ON|OFF&设置安全操作提示若设为ON,将同名新文件覆盖旧文件时会询问是否覆盖,此时选择否可不覆盖,否则覆盖;用ZAP命令彻底删除表中的所有记录时也会询问是否彻底删除表中的所有记录,选择否可不删除,否则
19、删除。若设为OFF,则遇到上面两种情况都不提示而直接覆盖或删除。默认为ON。,2023/3/27,31,(5)SET TALK ON|OFF 功能:打开或关闭对话开关,默认为ON。若设为ON,允许把对话结果发送到VFP主窗口、系统信息窗口、图形状态栏或用户自定义窗口中。若先为OFF后再改为ON,那么对话结果将传送到发出 SET TALK OFF命令之前的输出位置。若设为OFF:阻止把对话结果发送到VFP主窗口、系统信息窗口、图形状态栏或用户自定义窗口中,2023/3/27,32,3.2 程序的基本结构,1.顺序结构:按语句的书写顺序依次执行。VFP中的大多数命令都可以作为顺序结构中的语句。2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 VF程序设计基础课件 第三 VF 程序设计 基础 课件

链接地址:https://www.31ppt.com/p-3908950.html