版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 VFP程序设计6.1 程序的建立和执行66.1.1 程序的建立66.2 程序的交互式命令76.2.1 人机交互式输入语句(ACCEPT、INPUT、WAIT)86.2.2. 程序设计的辅助命令(CANCEL,NOTE/*)86.3 结构化程序设计96.3.1 程序设计的概念和步骤96.3.2 结构化N-S流程图106.3.3 顺序结构程序设计116.4 子程序与过程文件及用户自定义函数186.4.2 过程文件的建立206.4.3 用户自定义函数(函数过程)236.5 屏幕显示格式程序设计246.5.1 屏幕格式控制命令256.5.2 屏幕格式文件306.6 报表程序设计与报表设计器(R
2、eport Designer)326.6.1 创建报表布局326.6.2 报表设计器应用实例一对多报表设计356.7 菜单程序设计和菜单设计器(Menu Designer)456.7.1 创建菜单、菜单项和子菜单456.7.2 为菜单系统指定任务476.7.3 测试与调试菜单系统516.7.4 定制菜单系统516.8 程序的调试和调试器52 在VFP系统中,可以通过菜单选择方式来建立、维护和使用表,在用命令对表操作时可分为两种工作方式:交互方式(单命令方式)和程序方式(批命令方式)。在前面章节中大都是用单条命令来操作表的,这对于初学者掌握每一条命令的格式、功能有很大的帮助。但是在实际应用中,各
3、类事务的管理如果使用单条命令方式,只能逐条输入、逐条执行来完成各命令自身的功能,必然会出现重复输入相同命令的操作,执行的效率低,解决问题的能力差。所以通常采用程序方式,按解题的要求和步骤,将各种不同功能的命令放在一起,成为一个“命令”程序。运行该程序,它将自动执行程序中的每一条命令完成所要求的功能。这无疑将给我们的工作带来极大的方便。这种由各种命令集合而成的程序送入文件,即称为命令文件,扩展名为.PRG。本章将介绍命令文件(程序)的建立及执行、程序设计的基本结构和命令,以及菜单和报表设计器。6.1 程序的建立和执行在编制程序中输入的每一条命令就称为命令语句。执行命令文件就是按照该文件即程序指定
4、的顺序执行各命令语句。程序或命令文件是文本文件,在DOS系统下可用EDLIN和WS中的N命令编写,VFP系统本身有极强大的编辑器,可用来编辑程序文件。 6.1.1 程序的建立 格式:MODIFY COMMAND文件名 功能:建立或修改文件名所指的命令文件说明: 表 6-1 命令功能命令功能INS输入字符CTRLG或DEL删除光标处字符CTRLN插入一空行CTRLY删除光标所在的当前行CTRLW程序存盘CTRL光标到行尾CTRLQ程序不存盘CTRL光标到行首6.1.2 程序的执行 有四种方式均可执行程序:(1)在VFP主菜单栏中选择程序执行(PROGRAMDO),利用运行(DO)对话框选择一个程
5、序后,系统会运行这个程序。(2)在命令窗口下的命令:格式:DO 文件名 功能:将磁盘上所指的命令文件调入内存,然后一条一条地执行各命令语句,直到程序结束。说明:命令文件的运行过程中如有错误,系统将给出错误信息,用户可返回MODIFY COMMAND状态进行修改,然后再重新执行命令文件,直到无错,得到正确结果为止。(3)在DOS状态下的命令:CFox & VFP系统(4)在CONFIG.FPW中设置:COMMAND文件名在进入系统后将自动执行指定的文件。 6.2 程序的交互式命令前面介绍的简单的赋值语句可以将原始数据通过内存变量提供给程序,但是这些数据是在编写程序时就写入了,而实际上有些数据需要
6、在程序运行时用户才供给内存变量,为此系统还提供了三种使用灵活、功能很强的人机对话式赋值语句:ACCEPT、WAIT、INPUT,以实现人工干预程序的执行。 6.2.1 人机交互式输入语句(ACCEPT、INPUT、WAIT) 1.键盘输入字符串命令格式:ACCEPT提示信息TO内存变量功能:暂停程序的执行,接受用户从键盘上输入字符串并赋值给内存变量,以回车键结束输入。说明:(1)从键盘上输入的任何字符(不需用括号)都被作为字符串接受,内存变量为C型。(2)提示信息可以是加引号的字符串,也可以是字符串变量。2.键盘输入单字符命令格式:WAITTO 功能:暂停程序的执行,接受用户从键盘输入单个字符
7、。说明:(1)若有TO 选项则将该字符赋给内存变量。(2)若无屏幕显示“按任意键继续”。(3)该命令的执行与ACCEPT基本相同,但只需输入单个字符,且不需敲击回车键。例6.2:在例6.1程序中,在“Disp”语句后增加语句序列:WAIT 是要找的学生吗(Y/N)? TO ABIF AB=YSET PRINT ON? 姓名,学号,计算机基础 & 用打印机打出 SET PRINT OFFENDIF3.键盘输入任意类型数据命令格式:INPUTTO 功能:暂停程序的执行,等待用户从键盘上输入数据并赋给内存变量。说明:(1)从键盘输入的数据可以是字符型、数值型或逻辑型,还可以是表达式。内存变量的类型由
8、输入的数据类型决定。(2)输入字符型数据时必需用括号括起来,逻辑型数据需用圆点括起来。(3)该命令其它说明与ACCEPT命令中的一样。6.2.2. 程序设计的辅助命令(CANCEL,NOTE/*) 1.中止程序运行在程序运行过程中,按ESC键可以中断程序的运行,这便于在程序调试过程中检查程序运行情况。而中止程序运行的命令有:(1)格式:CANCEL 功能:结束程序的运行,返回命令窗口,同时关闭所有打开的文件。(2)格式:SUSPEND 功能:暂时中止程序运行,返回命令窗口。当选择程序+继续运行(PROGRAM+ RESUME),或在命令窗口输入RESUME时,系统再从中止程序的地方继续执行程序
9、。2.注释命令(1)格式:NOTE/注释字符序列(2)格式:& 注释字符序列说明:(1)上述命令不执行任何操作,只是注释标记,用于说明程序或命令的功能等。(2)注释内容不需用引号括起来,在执行时不显示。(3)注释如在一行未写完,则在每一行前均需用*符号标记。(4)&可放在一个语句的后面,用于说明该语句的作用。这是程序中唯一可以在一个逻辑行写二个语句的命令。3.文本显示命令格式:TEXT文本字符ENDTEXT功能:将文本字符原样输出。 6.3 结构化程序设计6.3.1 程序设计的概念和步骤 上一节对程序有了初步的认识,它是计算机处理对象和计算规则的描述,是用某种程序设计语言编写的解题步骤。程序设
10、计的要求是设计出的程序应满足:能在计算机上运行且运行结果正确,符合题目要求;具有良好的结构,清晰易懂;界面友好,便于使用;尽可能少的运行时间;运行时所占用的内存量应压缩到合理的范围之内。程序设计的主要步骤:分析问题:根据题目的要求,分析程序应解决哪些问题及它们之间的关系,给定的有哪些数据,需要输出什么结果,需要哪些软、硬件支持。确定算法:算法是解题的过程。首先需要将一个物理过程或工作状态用数学形式表达出来,即确定解题最合适的数学模型,或确定合适的处理方案。对同一个问题处理方案的不同,决定了不同的处理步骤,效率则不同。画出程序流程图:用规定的基本图形来描述解题步骤。它表达了算法,是编写程序的依据
11、。编写程序:根据流程图表达的步骤,用程序设计语言逐句逐行地写出程序。调试程序:主要包括排错和测试两部分,排错是指查出在程序执行过程中出现的语法错误和逻辑错误,并加以改正;测试是指确认程序在各种可能的情况下正确可靠地运行,输出结果准确无误。排错和测试常常是交叉进行的,直到结果满意为止。 建立健全的文档资料:文档资料是计算机软件的重要组成部分。从接受用计算机解题任务开始就应注意加强文档资料的建立,解题任务完成时,文档资料也应建立完毕。 6.3.2 结构化N-S流程图 N-S图是根据美国学者(L.Nassi和B.Schneiderman)1973年提出的方法形成的一种适合于结构化的流程图。用了下面三
12、种基本结构来控制程序的结构,用这种方法设计的程序就叫结构化程序。N-S图的三种结构如下:1. 顺序结构按算法的先后顺序来排列各块、每一个块可以是一条或多条命令语句,执行的顺序是从A块B块C块,依顺序执行。 2. 选择结构(1)简单选择:当块中条件满足,即为真(用T或Y表示)时,执行A块,当条件不满足(用F或N表示) 时,执行B块。(2)多项选择:首先对条件1进行判断,若为真,则执行A1块。若为假,继续判断条件2。若条件2为真,就执行A2块,否则再判断条件3,以此类推。从条件1到条件N依次进行判断,哪一个条件为真,就执行该条件下的块内容,执行后,不再判断其它条件,转入下面的结构中。如果条件都不满
13、足(为假),则执行“其它”下的An+1块的内容。(1)当型循环:首先判断条件,若条件为真,则执行A块,执行完后,再判断条件;若条件为假,不执行A块,循环结束,进入下面结构中。(2)直到循环:与当型循环相反,首先执行循环体A块,然后判断条件,若条件为假,再执行A块,直到条件为真结束循环。 6.3.3 顺序结构程序设计 在前面章节中所举例题的程序都是顺序结构程序。即是按编写程序时命令语句书写的先后顺序逐条执行的。例6.6:已建立一个名为“书”的表,其表结构和内容如下:USE 书.DBFLISTRecord#书号书名编者出版社定价库存总金额110001计算机基础刘勇高等教育15.6200312021
14、0002BASIC程序设计谭浩强科学普及201002000310003计算机原理(上册)李表友人民教育1850 900410004计算机概论刘甘娜高等教育1380 1040.现设计一个程序显示表记录,然后将第三条记录的书名中“上册”改为“下册”。给第二条记录加上删除标记。程序:SET TALK OFFUSE 书GO 3CHANGE FIELDS 书名DISPLAYGO 2DELETELISTUSE SET TALK ON 6.3.4 分支结构程序设计由命令语句中的判断条件是否满足(为.T.或 .F.),决定程序的流向。1简单判断 格式:IF ENDIF 功能:如果为真,则执行中的各语句。否则跳
15、过这些命令语句不执行,而执行ENDIF后的语句。2选择判断格式:IF ELSE ENDIF 功能:如果条件为真,执行,否则执行。例6.7:从键盘上输入一个任意数数,判断是偶数还是奇数。程序:SET TALK OFFINPUT 从键盘上输入任意数 TO NOIF INT(NO/2)=NO/2 ? NO, 是偶数 ELSE ? NO, 是奇数ENDIFSET TALK ON3多种选择(IF语句嵌套)格式:IF IF ELSE ENDIF ELSE ENDIF 功能:进行多重条件选择。例6.8:在书.DBF表文件中查找“计算机概论”的库存量,若少于300本,需购书,若大于300本,需调出书到其它部门
16、,使书表库存量为300本。打印出购书或调出书的册数,并修改书表的库存和总金额字段内容。程序:SET TALK OFFUSE 书LOCATE ALL FOR 书名=计算机概论DISPLAYA=库存IF A300 B=300-A ? 应购书:,B,册 REPLACE 库存 WITH 库存+B,总金额 WITH 300*定价 图6-8ELSE IF A300 B=A-300 REPLACE 库存 WITH 库存-B,总金额 WITH 300*定价 ? 应调出书:,B, 册 ELSE ? 该书表库存正常 ENDIFENDIFLISTUSESET TALK ON用IF/ELSE/ENDIF进行多次嵌套时
17、很容易出错,系统给出了下面方便的命令,能使程序更直观和清楚。4选择语句格式:DO CASECASE CASE CASE CASE OTHERWISE ENDCASE 功能:依次判断条件,转入条件为真的中执行。说明:(1)当所有都不成立时,若有OTHERWITH项,则执行,否则执行ENDCASE后面的语句。例6.9:根据奖学金评定的条件查询 STU1.DBF 文件中某学生奖学金情况(甲等:平均成绩=90,操行成绩为优;乙等:平均成绩=80,操行成绩为良以上;丙等:平均成绩=75,操行成绩为良以上)。程序:SET TALK OFFUSE STU1INDEX ON 学号 TO XH1SET INDE
18、X TO XH1SELE 2USE STU2INDEX ON 学号 TO XH2SET INDEX TO XH2SELE 1SET RELATION TO 学号 INTO STU2ACCEPT 请输入查询学生的学号: TO NOLOCATE ALL FOR 学号=NOZX=B-操行成绩DO CASE CASE 平均分=75 .AND. 平均分80 .AND. (&ZX=优 .OR. &ZX=良) JXJ=丙等 CASE 平均分=80 .AND. 平均分90 .AND.(&ZX=优.OR. &ZX=良) JXJ=乙等 CASE 平均分=90 .AND. &ZX=优 JXJ=甲等 OTHERWIS
19、E JXJ= ENDCASE? 学号:,学号,姓名:,姓名,奖学金:,JXJCLOSE DATABASE 6.3.5 循环结构程序设计 在程序设计中,对表的数据的操作不仅是针对一条记录,而往往是对满足条件的所有记录数据的操作(如上例中要求打印出每个学生的奖学金情况),因此需将一些程序段重复执行若干遍,即将该程序段构成循环。1. DO WHILE和ENDDO命令格式:DO WHILE LOOP EXIT ENDDO 功能:判断条件是否为真,如为真就重复执行循环体中的,直到为假,结束循环。说明:(1)在用循环语句时,的选择是非常重要的,它决定了循环的次数。常用来控制循环的有以下几种: 计数形式:
20、测试文件开始(BOF()或结束(EOF()函数: 在程序执行中,从键盘上输入数据: 直接用.T.作条件,这时循环构成“死”循环。但可在循环体中加上退出循环语句EXIT来控制循环(常和IF语句联用):2在命令序列中若有LOOP项,则跳过该语句到ENDDO之间的所有语句(不执行)。例6.10:根据奖学金评定的条件给STU2.DBF文件中每条记录的奖学金字段写上等级(甲等:平均成绩=90,操行成绩为优;乙等:平均成绩=80,操行成绩为良以上;丙等:平均成绩=75,操行成绩为良以上)。 JJ.PRGSET TALK OFFUSE STU1INDEX ON 学号 TO XH1SET INDEX TO X
21、H1SELE 2USE STU2INDEX ON 学号 TO XH2SET INDEX TO XH2SET RELATION TO 学号 INTO STU1DO WHILE .NOT. EOF() ZX=操行成绩 AV=A平均分 DO CASE CASE &AV=75.00 .AND. &AV80.00 .AND. (&ZX=优.OR. &ZX=良) JXJ=丙等 CASE &AV=80.00 .AND. &AV90.00 .AND. (&ZX=优.OR. &ZX=良) JXJ=乙等 CASE &AV=90.00 .AND. &ZX=优 JXJ=甲等 OTHERWISE JXJ= ENDCAS
22、E REPLACE 奖学金 WITH JXJ SKIP ENDDO LISTCLOSE DATABASE DO JJ.PRG Reeord# 学号 姓名 性别 出生日期 就读方式 平均分 操行 奖学金 备注 1 962101 李蓉 女 78/05/20 统招 90.50 优 甲等 2 962102 张天明 男 77/09/07 统招 85.50 良 乙等 3 962103 王晓云 男 78/11/11 统招 86.00 良 乙等 4 962104 王小菲 女 76/09/08 统招 92.00 优 甲等 5 962105 孙力 男 77/12/23 统招 77.40 及格 2. SCAN和EN
23、DSCAN命令与DO WHILE和ENDDO命令相似,循环可以用SCAN和ENDSCAN命令实现。格式:SCAN ENDSCAN 功能:在一个表中建立一个执行的循环,并执行对每一条记录的操作,直到表文件记录完为止。说明:该命令的使用相当于 DO WHILE .NOT. EOF()SKIP +1ENDDO例6.11:显示STU2.DBF表中每个同学的姓名、性别、出生日期、就读方式。程序: SET TALK OFFCLEARUSE STU2SCAN ? 姓名:,姓名 ? 性别:,性别 ? 出生日期:,出生日期 ? 就读方式:,就读方式ENDSCANUSE SET TALK ON 6.4 子程序与过
24、程文件及用户自定义函数在菜单结构化编程方式中,经常要用到某些具有特定功能的程序段,为了避免重复写这些特定功能的程序段,将它们编写为一个程序并存于文件中,这个程序叫子程序或过程。 6.4.1 子程序与过程的调用 子程序或过程的编程和修改方法与一般的程序一样,不同的是过程的最后一个语句必须是返回语句(RETURN),调用过程的程序是主程序。过程可以嵌套,即子程序可调用另一个子程序格式:DO WITH 功能:执行过程名所指定的子程序,WITH用于主程序与子程序间参数的传递。说明:(1)返回语句的格式:RETURN TO MASTER,当程序执行到RETURN时就返回到该次调用它的程序的语句处继续执行
25、下面的语句。若有TO MASTER项,就返回最初调子程序的主程序。例6.12:计算圆面积的主程序为YMJ,子程序为YMJ-1。TYPE YMJ.PRGSET TALK OFFDO WHILE .T. INPUT 圆的半经: TO RDO YMJ-1? 圆的面积是:,SWAIT 还需继续计算(Y/N)? TO ANIF UPPER(AN)=Y LOOPELSEEXITENDIFENDDOSET TALK ON TYPE YMJ-1.PRG*SUB-1PUBLIC S&(若无此语句则主程序在调用该子程序之前应有S的赋值语句)S=3.14159*R2(2)主程序可用WITH选项向子程序传递参数,在子
26、程序中第一条语句用以下命令接受传递过来的参数。格式:PARAMETERS 说明:中变量的个数与WITH中参数的个数相同。若WITH后用变量作参数传递,则PARAMETERS中与之对应的变量的数据将被带回主程序。例6.13:计算长方形面积CFX.PRG, 子程序为CFX-1 TYPE CFX.PRGSET TALK OFFA=4B=6DO CFX-1 WITH 4,A+B,S? S=,SSET TALK ON TYPE CFX-1.PRG*SUB1PARAMTERS 长,宽,面积面积=长*宽RETURN DO CFX)S=40 (3)全局变量的定义格式:PUBLLC 全局变量可以在所有程序中被操
27、作。(4)局部变量的定义格式:PRIVATE ALL LIKE/EXCEPT 局部变量只有在生成它的当前文件和被它调用的子程序文件里有效。全局变量与局部变量详见第二章。在PARAMETERS中列出的变量均为局部变量,它不影响主程序中与它同名的变量的值。例6.14:求圆面积,主程序YM1.PRG,子程序YM2.PRG TYPE YM1.PRGSET TALK OFF面积=200.00DO YM2 WITH 5,S? 圆面积=,面积+SSET TALK ON TYPE YM2.PRGPARAMETERS R,面积PRIVATE PIPI=3.14159面积=PI*R*RRETURN DO YM1)
28、 圆面积=278.5386.4.2 过程文件的建立 在实际的管理程序设计中,需要调用的过程不是一个或二个,而是几个、十几个甚至几十个以上,这就有可能使打开的文件数超过系统允许的文件数,而且将导致磁盘目录过于庞大,使系统调用文件的速度降低,程序执行速度和效率也随之降低.1. 过程文件的建立命令格式与建立命令文件一样:MODIFY COMMAND 但过程文件内容的格式上要求每个过程的开始语句必用下面语句:PROCEDURE 过程文件内容如下:PROCEDURE RETURNPROCEDURE RETURNPROCEDURE RETURN2. 过程文件的调用(1)过程文件的打开命令格式:SET PR
29、OCEDURE TO 在主程序中应打开过程文件,将过程文件中的所有过程都调入内存(但只打开了一个文件),才能根据不同的情况任意调用过程。过程的调用命令和方法与上节介绍的一样。(2)过程文件的关闭命令格式:CLOSE PROCEDURE 当过程文件不再用时应关闭。系统允许打开一个过程文件,当打开另一个过程文件时,先已打开的过程文件将自动关闭。例6.15:程序中常需用到计算阶乘、圆面积、长方形面积,现将它们编为三个过程,放在一个过程文件(GC.PRG)中,被主程序(ZC.PRG)调用。TYPE ZC.PRGPUBLIC S,TSET PROCEDURE TO GCINPUT 输入圆半径: TO R
30、DO P1H=SDO P2 WITH 4,6H=H+S? H=,HINPUT 输入阶乘数据 TO IDO P3CLOSE PROCEDURETYPE GC.PRGPROCEDURE P1S=3.14159*R*RRETURNPROCEDURE P2PARAMETERS 长,宽面积=长*宽S=面积RETURNPROCEDURE P3N=1T=1DO WHILE N=I T=T*N N=N+1ENDDODO P4RETURNPROCEDURE P4? I, 的阶乘积=,TRETURN(3)递归调用在过程中不但可以调用另一个过程,而且还可以调用自已,这就叫递归调用。例6.16:求5!的阶乘积。MAI
31、N.PRG:SET TALK OFFSET PROCEDURE TO SUBT=1DO P1 WITH 5,TCLOSE PROCEDURESET TALK ONRETURNSUB.PRG:PROCEDURE P1PARA N,TIF N1 DO P1 WITH N-1,T T=T*NENDIF? STR(N,2)+ !=+STR(T,5)RETURNDO MAIN5!=120 6.4.3 用户自定义函数(函数过程) 用户自定义函数是除系统提供的函数外,用户自已定义的某些具有特殊功能的函数,它能增强用户编程的灵活性和通用性。1.自定义函数的结构PARAMETER RETURN 说明:(1)接受
32、调用自定义函数时传来的数据。函数体的最后一条语句是RETURN ,由返回一个值给调用自定义函数的程序。(2)用户自定义函数的修改和建立方法与子程序相同,是一个独立的命令文件,也可以叫函数过程。2.自定义函数的调用格式:(实际参数表) 说明:(1) 自定义函数调用方法与系统内部函数的调用方法相同。PARAMETE接收实际参数表的值,其形参和实参的个数相同,类型一致。(2) 自定义函数也可以放在过程文件中(其函数名就是过程名),把它作为过程调用,但返回的值没有意义。例6.17:分别打印出1!,2!,10!主程序MAIN.PRG:自定义函数JS.PRGPARAMETERS ISET TALK OFF
33、T=1H=0N=1A=1DO WHILE N=IDO WHILE A=10T=T*NH=JS(A)N=N+1? A,!= ,HENDDOA=A+1RETURN TENDDO SET TALK ON 6.5 屏幕显示格式程序设计前面的章节中在屏幕上显示信息时,使用的是非格式输出命令:?,从每行的起始位置开始输出。为了能按用户要求来设计屏幕,使之美观、方便,下面介绍几个屏幕显示格式控制命令(屏幕格式最强的工具表单设计器,请见第九章)。6.5.1 屏幕格式控制命令 IBM PC显示器的坐标在全西文方式下,设置为满屏25x80列,行号取024,列号取079,屏幕左上角坐标值为(0,0),屏幕右下角坐标
34、值为(24,79)。汉字满屏可显示11行40个。但其它类型的显示器和所用汉字系统的不同,屏幕的显示略有不同。在屏幕指定位置输入输出各种格式信息的命令如下:格式: SAY PICTURE GETPICTURE RANG CLEAR READ 下面分别来说明它们的作用。1. 清除屏幕格式: CLEAR TO 功能:清除屏幕上指定的左上角行、列号到右下角的行、列号所形成的矩形区域。若无可选项则清除屏幕上指定的行、列号开始的右下角区域。该命令在编程中可与设置颜色命令SET COLOR TO 联合使用,清除一块有底色的屏幕,然后在上面设计菜单以增强屏幕对比效果。2.屏幕定位输出命令格式: SAY 功能:
35、从指定的行、列号开始输出表达式的值。说明:(1)可以是常数、字段变量及由它们组成的表达式。但FoxBASE+中该若是备注型字段,只能在其位置上显示MEMO字样,而不能显示出它们的内容。(2)定位输出时一次只能输出一个表达式。(3)VFP的此命令还包括有FUCTION、PICTURE、SIZE、FONT、STYLE、COLOR SCHEME等句子,分别表示形式、尺寸、字体、样式、颜色等(详见VFP软件的帮助HELP)。3. VFP的 SAY显示图片和OLE对象命令格式: SAY BITMAP/ STYLE CENTER ISOMETRIC|STRETCH SIZE 功能:从指定的行、列号开始显示
36、图片和显示链接嵌入通用字段的OLE对象。说明:如果STYLE的用Q,则显示一个不透明的图,如用T,则显示一个透明图,即图片背后的文本等可显示。CENTER表示图片或OLE对象在SIZE子句指定的矩形区域内居中。ISOMETRIC表示图片等伸缩且保持其比例。STRETCH使图片水平垂直延伸。例6.19: 3,10 SAY MYPIC.bmp BITMAP(显示了MYPIC.bmp文件名的位图)4.定位输入命令格式1: SAY GET READ 功能:屏幕上定位显示GET的值,由READ激活GET后的,可对的值进行修改(输入)。说明:(1)SAY一般用于显示提示信息。(2)可以是已赋值的内存变量和
37、除备注型外的字段变量。(3)一个READ语句可以激活多个GET语句。READ和GET必须同时使用才有意义。(4)VFP的此命令还有许多可选子句,详见VFP软件的帮助HELP。例6.20:修改STU2.DBF文件的记录。程序: SET TALK OFFUSE STU2STORE Y TO EEDO WHILE UPPER(EE)= YSTORE TO XHCLEARACCEPT 请输入要修改的记录的学号:TO XHLOCATE ALL FOR 学号=XH 1,8 SAY 修改记录 2,5 SAY 学号:GET 学号 2,20 SAY 姓名:GET 姓名 3,5 SAY 性别:GET 性别 3,2
38、0 SAY 出生日期:GET 出生日期 4,5 SAY 就读方式:GET 就读方式 4,20 SAY 平均分:GET 平均分 5,5 SAY 操行成绩:GET 操行成绩 5,20 SAY 奖学金:GET 奖学金READWAIT 继续修改其它记录吗(Y/N)? TO EEENDDOUSESET TALK ON运行该程序,屏幕上显示信息如下: 请输入要修改的记录的学号:962103 修改记录学号:962103姓名:王晓云性别:男出生日期:11/11/78就读方式:统招平均分:84.00操行成绩:良奖学金:乙等 继续修改其它记录吗(Y/N)?执行过程:依次执行GET语句,在指定的行、列显示变量的内容
39、,然后执行READ语句激活,光标返回第一个GET的值的第一字符,等待修改。修改完后按回车键,光标移到第二个GET的内容上,等待修改,照此方法直到修改完最后一个GET语句。格式2: SAY GET RANGE VALID READ 说明:格式2与格式1的功能、使用方式相同。不同点:(1)RANGE可选项,用于限定输入、修改数据的范围。指数据的上限,是数据的下限。常用来限定数值型数据的输入范围。若输入的数据超出范围,则提示出错,需按空格键后重新输入。(2)VALID可选项的条件可以是一般条件表达式,还可以是以逻辑值返回的用户自定义函数。该项用于判断GET的值是否满足,若满足(.T.)就退出对该变量
40、的编辑,若不满足(.F.)就需修改数据,直到满足退出。常用来限定字符型数据的输入范围。例6.21:修改书.DBF库的数据。程序: SET TALK OFFUSE 书LISTDO WHILE .NOT. EOF() CLEAR 2,6 SAY 书名: GET VALID LEN(TRIM(书名)=12 3,6 SAY 库存: GET 库存 RANGE 100,500 4,6 SAY 定价: GET 定价 RANGE 10,30 READ SKIPENDDOSET TALK ONUSE执行程序后,屏幕显示:Record#书号书名编者出版社定价库存总金110001计算机基础刘勇高等教育15.6200
41、3120210002BASIC程序设计谭浩强科学普及201002000310003计算机原理(上册)李之友人民教育1850900410004计算机概论刘甘娜高等教育13801040书名:计算机基础库存:200定价:15.6光标停在“计”字下等待修改,因为为.F.(要求书名为六个汉字)。库存字段的数据修改范围是100至500,而定价则是10至30。依次修改每一条记录,直至EOF()为.T.。 5.显示数据的格式 在屏幕格式控制格式命令中,PICTURE 用来对定位输入或输出数据的格式进行限制。格式符分为功能符和模式符。说明:(1)功能符对数据整体起作用,而模式符只对数据中的相应位起作用;(2)功
42、能符的前面必须要加,功能符和模式符可以连用,但必须是功能符在前模式符在后,且两者必须用空格分开;(3)所有模式符都要用方括号 、双引号 、或单引号括起来。例6.22:向STU2.DBF库追加记录程序:SET TALK OFFUSE STU2YN=YDO WHILE UPPER(YN)= YAPPLEN BLANKCLEAR 3,10 SAY 学号:GET 学号 PICTURE 999999 3,40 SAY 姓名:GET 姓名 VALID LEN(TRIM(姓名)=4 4,10 SAY 性别:GET 性别 4,40 SAY 出生日期:GET 出生日期 PICTURE D 5,10 SAY 就读
43、方式:GET 就读方式 VALID JDFS(就读方式) 5,40 SAY 平均分:GET 平均分 RANG 60,100 6,10 SAY 操行成绩:GET 操行成绩 6,40 SAY 奖学金:GET 奖学金READCHANG NEXT 1 备注ACCEPT 继续输新记录吗(Y/N)?TO YNENDDOUSESET TALK ON *JDFS.PRG自定义函数DO CASECASE 就读方式=统招 TF=.T.CASE 就读方式=委培 TF=.T. CASE 就读方式=自费 TF=.T. OTHER TF=.F. ENDCASERETURN TF 6.5.2 屏幕格式文件 从例6.22可看
44、出输入输出的屏幕格式可根据需要自行设计,并可在FoxBASE+中将一些常用的屏幕格式建立为各个屏幕格式文件,以便在编程中需用时调用即可。如对库记录的查询、删除时的显示数据的格式;对追加、修改记录时输入数据的格式;对票据(发票单据)、数据表格、统计报表时的数据输入的格式等等。另外,VFP主要是建立表单(Form)来更方便地完成这些任务,详见第九章的内容。1. 屏幕格式文件的建立格式:MODIFY COMMAND 该命令建立和修改格式文件与命令文件的建立和修改方法一样,仅扩展名不同。格式文件的扩展名为.FMT,这个文件的特点是只有输入输出命令、CLEAR命令和注释命令。例6.23:用于查询、删除等
45、显示记录的格式文件MODIFY COMMAND XS.FMTCLRAR 1,5 SAY * 2,5 SAY 学号:学号 2,30 SAY 姓名:姓名 3,5 SAY 数学:STR(数学,6,2) 3,30 SAY 计算机基础:STR(计算机基础,6,2) 4,5 SAY 马列原理:STR(马列原理,6,2) 4,30 SAY 体育:STR(体育,6,20) 5,5 SAY 总分:STR(总分,6,2) 5,30 SAY 平均分:STR(平均分,6,2) 6,5 SAY *2. 屏幕格式文件的使用(1)格式文件的打开和关闭格式文件必须先打开后激活,用完后应及时关闭。打开格式:SET FORMAT TO .FMT关闭格式:CLOSE FORMAT(2)格式文件的激活格式文件被打开后并不是马上就执行,而必须在执行激活命令后才能对格式文件中的GET进行全屏幕编辑。激活格式文件的命令有READ, APP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目招标文件撰写经验
- 借款合同借据样本格式
- 高考地理一轮复习第五章地表形态的塑造第二节塑造地表形态的力量课件
- 九年级道德与法治下册 第一单元 中国与世界 第一课 生活在地球村 第1框 地球村形成了教案 人民版
- 2024-2025学年新教材高中化学 1.3 第2课时 氧化剂和还原剂教案 新人教版必修第一册
- 2024秋五年级语文上册 第八单元 第26课 忆读书说课稿 新人教版
- 六年级品德与社会下册 战争给人类带来了什么1教案 鄂教版
- 2024-2025学年高中物理 第四章 电磁感应 2 探究感应电流的产生条件(3)教案 新人教版选修3-2
- 2024年四年级英语上册 Unit 3 My friends Part B 第二课时教案 人教PEP
- 文书模板-上学租赁合同
- 安全隐患排查记录表
- 浙美版美术四上第5课《美术档案袋》课件1
- 初中 初一 心理健康 我有我气质 课件
- 华中科技大学文科类与管理学类期刊分类办法AD类
- DB12T 907-2019 牛粪制备卧床垫料技术规程
- 五年级数学下册课件 - 6 圆的认识练习 - 苏教版(共25张PPT)
- 小学劳动技术 沪科教版 四年级上册 4车辆模型 课件
- 小学信息技术 辽宁师大版 五年级上册 第4课 漂亮的艺术字《漂亮的艺术字》课件 课件
- 宫外孕手术配合
- 体育主题酒店案例
- 培智学校各科课程标准
评论
0/150
提交评论