vfp命令、语句等说明总结[五篇范例]

时间:2019-05-12 04:51:04下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《vfp命令、语句等说明总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《vfp命令、语句等说明总结》。

第一篇:vfp命令、语句等说明总结

VFP命令、函数及程序语句大全

VFP提供一些简单的程序设计语言命令,包括赋值语句、控制语句、设置命令等,我们可根据某种功能的需要,利用这些命令及数据库操作的有关命令构成语句,分行存在文件中(称为命令文件,以. PRG为扩展名,在项目管理器中标为“程序”)或一些对象的过程或事件处理程序中。如被调用,系统将一条条顺序执行各行命令,如遇到控制语句(IF,DO,CALL,FOR„等),依据控制语句的指定,转移到指定语句再一条条顺序执行。

这些命令书写时,每条语句应在一行中写完,如不能写完,可用分号“;”结束,表示下一行继续。两条语句不能写在一行上。每条语句中命令字及选项中保留字大多数可只书写前四个字符。

一般一个简单的VFP应用系统由若干模块组成,各自完成一定的功能,总的系统用一个总控模块去控制,通过它调用子模块,层层调用以实现全系统的功能。这种结构如图5.4所示。这种方式便于设计、调试,保证程序的正确性,也容易实现模块共亭,实现软件重用,提高程序设计效率。

主模块可由主封面表单、主命令文件和主菜单文件构成;各个模块可由过程、自定义函数、表单、表单集、应用程序或子菜单等构成。

一个表单或一个表单集中可有一到多个用户界面,可设置一到多个命令按钮及其他程序控件,用户可利用按钮及程序控件,产生特定的消息触发执行一个程序,完成一个功能。应用程序是对一个模块编译后的. APP执行文件,“过程”是由命令组成的程序,以RETURN语句结束,它可为另一个程序所调用,调用执行时遇到RETURN语句将返回其调用程序。

图 5.4 VFP程序总体结构

一.变量赋值与显示语句

在项目管理器中选“代码→程序→新建”或在命令框利用命令MODIFY COMMAND建立命令文件。

1.MODIFY COMMAND

意义:创建命令文件。

命令格式:MODIFY COMMAND 文件名

例如:MODIFY COMMAND PROC1

执行此命令后,将进入全屏幕编辑状态。如原已建立了该文件proc1,将调出该文件在屏幕上显示,用户可对之修改。如是新文件,则用户可利用全屏幕编辑键,输入自己的程序。新文件将自动加上扩展名.PRG。

2.DO

意义:执行命令文件程序,有三种方法:①在项目管理器中选“代码→程序→选择程序名→运行”。②在主菜单中选“程序→运行→输入(选择)程序名→运行”。③在程序中或命令窗日中使用DO命令。命令格式:DO 程序名[WITH 表达式表]

程序名可以是上述方式建立的命令文件(.PRG文件)、可执行文件(.EXE文件)、应用程序(.APP文件),及对.PRG文件编译后的文件(.FXP文件)。如调用DO命令时不带扩展名,则按.EXE文件、.APP文件、.FXP文件、.PRG文件的顺序查找同名程序并执行之。

例如:DO PROC1

此外,程序名还可能是菜单程序,调用时必须带扩展名(.MPR)。例如,有菜单程序MAIN.MPR,则可如下调出执行:

DO MAIN.MPR

程序名还可以是事件名或过程名。

其中表达式表由多个表达式组成,用逗号分开,在执行时首先计算各表达式的值,并带入被调程序,被调程序第一句应是LPARAMETERS形参表语句,形参表是以逗号分隔的多个内存变量名,其个数应等于调用时的表达式的个数,执行时,首先用调用语句中各表达式的值对应给它们赋值。

例如:主程序中:DO PROC1 WITH “AB”,21

被调程序:LPARAMETERS M1,X0

执行时,首先完成赋值:M1=“AB”;X0=21,再往下执行。

当使用DO运行一个程序时,包含在其中的命令一直执行,直到下列某一事件发生。遇到RETURN语句,返回到调用程序DO命令的下一句,遇到了CANCEL命令,返回VFP命令状态。遇到QUIT命令退出程序并退出VFP;到达文件尾回到调用前状态;再遇到另一个DO命令,将转人新程序执行。

3.PUBLIC

意义:设置全局性内存变量命令。

格式:PUBLIC 变量名1[,变量名2]„

在不同程序或过程或事件中,同名内存变量的值不一定相同,如要将一个程序(过程、事件)中变量的值传到另一程序(过程、事件)中,可应用上述命令将它定义成全局变量。

4.PRIVATE

意义:设置局部变量的命令。

格式:PRIVATE[ALL[LIKE∣EXCEPT 通配符]∣内存变量表]

其中选项意义:ALL将所有内存变量说明为局部性变量,ALL[LIKE∣EXCEPT 通配符]将变量名能与通配符相匹配的内存变量说明为局部性变量。“ALL EXCEPT通配符”将除了能与通配符相匹配的变量名之外的内存变量说明为局部性变量。在程序中,为了一个程序的运行结果不影响另一个程序的执行,不希望同名变量将值从一个程序带到另一个程序而造成干扰。为此,可将该变量定义成局部性变量。

5.DIMENSION

意义:定义内存变量数组命令,VFP中可定义一维或二维数组。

格式:DIMENSION 数组名(数字表达式1[,数字表达式2])[,数组名2(数字表达式1[,数字表达式2])]„

每个数组的每个元素都可单独使用,如同一个内存变量,称为下标变量,下标起始值为1。

例如,DIMENSION ARRAY1(8,20),X1(30)定义了两个数组,数组名分别为ARRAY1和X1,前一个数组共有20×8=160个元素:ARRAY1(l,l)、ARRAY1(l,2)„„ ARRAY1(l,20),ARRAY1(2,1)„ARRAY1(8,20)。对各元素也可用单下标取用其值,如用ARRAY1(l),ARRAY1(2)„ARRAY1(160)也可访问该数组各元素,与前面双下标表示形式一一对应。

6.PUBLIC ARRAY

意义:定义全局性内存变量数组。

格式:PUBLIC ARRAY 数组名(数字表达式1[,数字表达式2])[,数组名2(数字表达式1[,数字表达式2])]„

7.=

意义:赋值语句。

将表达式的值赋值给一个内存变量。对变量赋值后,该变量类型也即确定为表达式返回值的类型。对一个变量可重复赋值,也可改变变量的类型。但为了保证程序的清晰和结构完整,建议在一个系统中每个变量名应有确定的意义和数据类型。

8.STORE

意义:同时对多个变量赋值命令。

格式:STORE 表达式 TO变量1[,变量2]„

在程序运行时常要求用户输入控制参数或数据,实现此功能语句我们称为人机对话语句。在程序中如插入人机对话语句,用户可借助键盘输入参数或控制量赋值给变量。控制程序走向,或用于不同数据处理。在程序执行到这类语句时,将停止运行,在屏幕上显示命令中附注的提示信息,同时等待用户从键盘输入数据,赋给所指定的变量。完成赋值之后再接着运行下一条语句。在VFP中这类语句可在主控程序中或在调试程序时使用,在表单程序中使用文本框等各种控件及消息框代替它们。

9.INPUT

意义:输入各种类型数据赋给内存变量

格式:INPUT “提示信息” TO 内存变量名

本命令允许输入字符类型、数值类型、日期类型、逻辑类型等不同类型的数据,要求输入数据是字符类型时,数据两端要加定界符,例“张平”;输入数据是日期类型时,要按{MM/DD/YY}或设定的格式,例{12/21/00};逻辑类型按.T.、.F.格式。

用户输入还可以是包括变量名及函数在内的表达式,但变量必须是己赋值的,表达式是可以计算出确定值的。用户输入完后回车表示输入结束。

例:INPUT“请输入初始日期:” TO D1

屏幕上显示:“请输入初始日期:”,光标在此句之后。用户可输入{05/10/96}。

此时用户如果执行命令:?D1

屏幕上将显示:05/10/96

10.ACCEPT

意义:输入字符串赋给变量。

格式:ACCEPT[“提示内容”]TO内存变量名

该命令和INPUT命令区别有两点:

.输入数据均被视为字符类型。

.输入数据两端不需加定界符,如加了定界符,定界符被视作字符串的一部分。

11.WAIT

意义:接收单个字符赋给变量,或中断程序,按任意键后继续。

格式:WAIT [“提示信息”] TO 内存变量名

该命令与ACCEPT命令不同点在于只接收从键盘输入的一个字符,用户输入一个字符后无须回车。该命令也可用在VFP表单程序的某个事件中,用于中断该事件的执行,让屏幕显示程序运行的中间结果,按某个键或单击鼠标后再继续执行。

12.GET

意义:格式化输入数据,给内存变量赋值或修改表中当前记录字段内容。

格式:@ 行号,列号 GET 内存变量名或字段名

[FUNCTION功能代码][PICTURE格式代码][DEFAULT表达式][MESSAGE提示信息]

[RANGE输入值范围下限,输入值范围上限][SIZE文本框高度,文本框宽度][VALID 条件表达式]

该命令可用于对内存变量赋值,也可用于修改当前打开表中当前记录中指定字段的内容。如对内存变量赋值且省略DEFAULT选项,在使用此语句时,必须已对该内存变量赋值。否则按此选项中表达式对内存变量初始化。

本命令执行后只显示内存变量或字段当前值,要到执行命令“READ”时,此语句方被激活,程序停止执行,等待用户从键盘输入数据,直待回车后才继续执行。行号、列号为当前窗口中字符行和列的位置号。行号与列号允许是小数。FUNCTION选项用于对输入内容限制或变化。功能代码:

A:只允许输入内容由字母字符组成,包括不允许空格和标点符号。

B:数值数据左对齐,默认格式为右对齐。

I:文本居中对齐。

J:文本右对齐,默认为左对齐。

Sn:限定文本框中字符个数为n。如S20。

T:去掉前导和后缀空格。

Z:当数值数据值为0时显示空格。

!:把字母字符转换为大写。

PICTURE选项用于限定输入数据的字符类型及大小。功能代码例:

A:该位为字母或数字

L:只允许逻辑数据。

N:该位为字符或数字。

X:任何字符。

I:该位为数字,或数值数据中的符号。

-:标明小数点位置。,:用逗号分隔左右数字。

!:将小写字母转换为大写字符。

例:@3,10 GET x1 DEFAULT 0 PICTURE“9999.99”

此时在屏幕第3行的第10列位置显示方框,其中内容为DEFAULT规定的初始值0.00,如再发出命令:READ,将光标落在尚未激活的第一个方框上等待输入,只能输入数字和符号,且整数部分不多于4位,小数部分不多于2位,否则将提示“请您重新输入”。

RANGE、VALID两个选项用于保证数据完整性,输入数据必须在预定范围内,满足条件表达式要求时,才可完成赋值操作。本语句还有设置字体、字形和颜色的选项。

在VFP中,综合上述人机交互命令尤其是@„ GET命令的功能和特性,设计了文本框、编辑框等类和控件,便之应用更加方便、简单,我们将在下一章中介绍。

程序运行结果一般由输出语句使其显示在屏幕上或输出到其他地方,输出语句可将数据输出到屏幕上显示也可传送给打印机或传送存入到其他文件中。屏幕显示语句在VFP中一般用在主控程序或调试程序时使用。在表单程序中使用各种控件、消息框代替它们。

13.?|??

意义:计算<表达式表>所指定的各表达式的值,并显示在屏幕上。

格式:?表达式1[,表达式2]„

用?时,从下一行第一列起显示结果。用??时,从当前行当前列起显示结果。

14.SAY

意义:格式化输出语句。

格式:@行号,列号 SAY表达式[FUNCTION功能代码] [PICTURE格式代码][SIZE高度,宽度]

有关选项的意义与@„GET命令相似,此外还有关于字体,颜色设置的选项。若发出有SET DEVICE TO PRINTER命令,输出到打印机,否则输出至屏幕上显示。

本语句常与@„ GET语句合用,合用时,行号、列号指SAY内容显示所在行、列号,GET变量内容框将放置在SAY内容之后。二.程序控制命令

1.IF„ENDIF命令

意义:分支条件语句,根据逻辑表达式的值,有选择的执行一组命令。根据条件表达式的值是.T.还是.F.控制程序流向。

格式:

IF 条件表达式

语句序列1

[ELSE

语句序列2]

ENDIF

IF条件表达式语句是条件语句的开始,ENDIF语句是条件语句的终止。语句序列是若干条顺序执行的语句。执行时首先计算条件表达式的值,如结果为“真”(.T.)则执行语句序列l,执行完后退出该语句。如条件表达式不满足,且有ELSE语句和语句序列2,则执行语句序列2。其程序流程图如图5.5所示。

图5.5 分支结构程序流程图

图5.6 主控模块程序流程图

在一个分支控制语句块中可以嵌套另一个IF„ENDIF语句块。【例5.7】主控模块的程序

程序流程图如图5.6所示。编写程序清单如下: CLEAR &&清屏幕

@ 5,27 SAY “设备管理系统” @ 7,36 SAY “主菜单”

@10,21 PROMPT “1.各种查询、屏幕修改”+SPAC(16)@11,21 PROMPT “2.数据编辑”+SPAC(26)@12,21 PROMPT “3.资产统计”+SPAC(26)@13,21 PROMPT “4.报表打印”+SPAC(26)@14,21 PROMPT “5.系统维护”+SPAC(26)MENU TO m_choic &&等待用户输入

IF LASTKEY()=27 &&按Esc键返回VFP

RETURN ENDIF

IF m_choic=1

DO sbcx_sc.spr

ELSE

IF m_choic=2

DO sjbj_sc.spr

ELSE

IF m_choic=3

DO zctj_sc.spr

ELSE

IF m_choic=4

DO bbdy_sc.spr

ELSE

IF m_choic=5

DO xtwh_pg

ENDIF

ENDIF

ENDIF

ENDIF ENDIF RETURN

2.CASE

意义:分情况语句,当求解一个问题存在多种情况,如要求对不同选择执行不同的语句序列,可采用分情况语句。该语句一句中列出许多语句成分,每个语句成分给出一个条件表达式,每次只根据具体条件找出第一个条件表达式值为.T.的语句成分,执行该成分语句中的语句序列后退出该语句。

命令格式:

DO CASE

CASE条件表达式1

语句序列1

CASE条件表达式2

语句序列2

CASE条件表达式n

语句序列n

[OTHERWISE

语句序列n+1]

END CASE

执行该语句时,系统逐一计算条件表达式1的值,条件表达式2的值„只要有一个条件表达式的值为.T.则执行其后语句序列,执行它后退出本分情况语句。

如到条件表达式n的值仍均为.F.又有OTHERWISE成分,则执行语句序列n+l,其程序流程图如图5.7所示。

仍如上面主控程序的例子,程序可设计为:

CLEAR &&清屏幕

@ 5,27 SAY “设备管理系统”

@ 7,36 SAY “主菜单”

@10,21 PROMPT “1.各种查询、屏幕修改”+SPAC(16)

@11,21 PROMPT “2.数据编辑”+SPAC(26)

@12,21 PROMPT “3.资产统计”+SPAC(26)

@13,21 PROMPT “4.明细报表打印”+SPAC(22)@14,21 PROMPT “5.系统维护”+SPAC(26)MENU TO m_choic &&等待用户输入

IF LASTKEY()=27 &&按Esc键返回VFP

RETURN ENDIF

DO CASE

CASE m_choic=1

DO sbcx_sc.spr

CASE m_choic=2

DO sjbj_sc.spr

CASE m_choic=3

DO zctj_sc.spr

CASE m_choic=4

DO bbdy_sc.spr

CASE m_choic=5

DO xtwh_pg

ENDCASE

RETURN

图5.7 CASE结构程序流程图

从上面两段程序可见,对于同一个问题,用DO CASE „ENDCASE 语句比IF„ENDIF语句要简洁了并且逻辑关系清晰,因此不容易出错。在分情况语句中也可嵌入分支条件语句及分情况。它本身也可嵌入到分支条件语句中去使用。

在对数据表中数据时,常常每条记录被处理的过程是一样的,处理语句也就大体相同,如果表中有多少记录就写多少条语句是十分困难的,为避免重复书写,可使用循环。

3.DO WHILE„.ENDDO

意义:循环语句,可使多次重复执行同一组语句。格式:

DO WHILE条件表达式

语句序列

[LOOP]

[EXIT]

ENDDO

其中“DO WHILE条件表达式”语句称为循环起始语句,“ENDDO”语句称为循环结束语句,进入此命令时首先检查条件表达式的值是否为真(.T.)。如果是真,则执行语句序列,然后再判断条件表达式的结果,如仍为真,则继续下去。如果为假(.F.)则退出循环,执行ENDDO后面的语句。如果进入本命令一开始,条件表达式的值为假,则语句序列一次也不执行,就直接转入执行ENDDO后面的语句。其中LOOP意义为结束本次循环,返回循环体开始。EXIT意义为结束循环,转入执行ENDDO后面的语句。

LOOP语句和EXIT语句一般用在分支条件语句中,因而语句格式为:

DO WHILE 条件表达式1

语句序列1

[IF条件表达式2

LOOP

ELSE

语句序列2

ENDIF]

[IF条件表达式3

EXIT

ELSE

语句序列3

ENDIF]

ENDDO

其程序流程图如图5.8所示。

在使用时必须保证经有限次循环后条件表达式1应变为假或条件表达式3的值应变为真,使退出循环。否则就可能成为死循环。在条件表达式中的变量称循环变量,在数据库中循环变量可能是内存变量,也可能是表中的指针。必须注意在每次循环过后,循环变量的值都要改变并且是向最终使条件表达式1的值为假或条件表达式3的值变真的方向变化,否则就无法满足前述退出条件。在VFP中有两类特殊用法。

(1)循环变量是指针。该用法中有两种结构①指针首先指向第一条的DO WHILE结构如图5.9所示。②指向满足条件记录的第一条的DO WHILE结构如图5.10所示。

图5.8 DO WHILE„ENDDO结构程序流程图

图5.9 指针做循环变量开始指向第一条时的DO WHILE结构流程图

图5.10 指针做循环变量开始指向满足条件记录的第一条时 的DO WHILE结构流程图

格式1:图5.9实现的语句。

USE(表名)

SELECT工作区别名

GO TOP

DO WHILE NOT EOF()

语句序列

SKIP

ENDDO

在本格式中,循环变量是表中指针,首先让指针指向表的第一条记录,如果不是文件尾,则执行语句序列之后让指针下移一条,再返回判断指针是否指向文件尾。这样一直继续下去直到指针指到最后一条记录的后面,循环结束。

【例5.8】在学生表中有少数学生更换了班级,现要求在屏幕上一屏一屏地显示每个学生的数据,并提问是否修改班级名称,如回答“Y”,则提供修改框。

SET TALK OFF

USE学生

KEY=“Y”

GO TOP

DO WHILE NOT EOF()

@3,10 SAY“姓名:”+姓名

@5,10 SAY“班级:”+班级

@7,10 SAY“出生日期:”+DTOC(出生日期)

@9,10 SAY“是否修改,Y/N?’GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“请输入改后班级名称” GET 班级

READ

ENDIF

SKIP

ENDDO

USE

SET TALK ON

格式2:如果只按某个条件查看记录,则可用查找语句开始。图5.10实现语句:

LOCATE FOR条件表达式

DO WHILE NOT EOF()

语句序列

CONTINUE

ENDDO

例5.8中如只查99级学生,显示其姓名则:

LOCATE FOR “99”$班级

DO WHILE NOT EOF()

?姓名

CONTINUE

ENDDO

(2)当于DO UNTIL的循环结构。

有些循环要在执行部分语句之后再根据一个条件表达式判断是否结束,此时循环条件可用常量.T.,见图5.11所示。

图5.11 DO UNTIL结构程序流程图

语句格式: DO WHILE.T.语句序列

IF 条件表达式

EXIT ENDIF

ENDDO

【例5.9】求编写学生表录入新数据的程序,每次录入一条记录,之后提问是否继续,如回答不是“Y”,就停止录入。

SET TALK OFF

USE 学生

KEY=“ ”

DO WHILE.T.APPEND BLANK

@3,10 SAY“姓名:” GET 姓名

@5,10 SAY“班级:” GET 班级

@7,10 SAY“出生日期:”GET 出生日期

READ

@9,10 SAY“否继续?Y/N?” GET KEY

READ

IF UPPER(KEY)<>“Y”

EXIT

ENDIF

ENDDO

USE

SET TALK ON

此语句由用户输入Y或N控制程序结束。

上述第一、二两种格式可以用等价的SCAN循环取代。

4.SCAN„ENDSCAN循环语句

意义:在数据表中循环检查或处理一条条记录。

命令格式一:

SCAN

语句序列

ENDSCAN

此句等价于前述格式1的语句。

命令格式二:

SCAN FOR条件表达式

语句序列

ENDSCAN

本语序等价于前述格式2的语句。有一些循环次数是一定的,或者循环变量的值在每次循环中增加的量是相同的,则可应用FOR循环。

5.FOR„ENDFOR循环语句

命令格式:

FOR内存变量=初始值 TO 终了值[STEP 增量]

语句序列

ENDFOR

此循环以某个内存变量为循环变量,进入循环时首先给它赋初始数值,只要不超过终了值,则执行语句序列。STEP语句为可选项,指示在每次循环后循环变量的增加量。前面执行语句序列之后,将循环变量值增加增量的值,再判断是否超过终了值,这样继续下去直到超过终了值。增量可为正值也可为负值,省略时默认值是1。如增量为正,则当循环变量大于终了值时,循环结柬。如增量为负,则每循环一次,循环变量均减小,减少到小于终了值时循环结束。

例5.8中修改班级名的程序也可写为:

SET TALK OFF

USE 学生

KEY=“ ”

N=RECCOUNT()&&记录总条数

FOR I=1 TO N

@3,10 SAY“姓名:”十姓名

@5,10 SAY“班级:”十班级

@7,10 SAY“出生日期:”+DTOC(出生日期)

9、10 SAY“是否修改班级名,Y/N?” GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“请输入改后班级名称” GET 班级

READ

ENDIF

ENDFOR

USE

SET TALK ON

使用相对指针,如果打开索引,或某些录入、修改、查询操作使当前指针位置改变都可能引起错误。不如本例中采用物理地址,比较可靠。

【例5.10】要求输入N个学生的总分X,按总分分成优、良、及格、不及格四个等级,统计每个等级的人数。等级划分标准为:90-100分为优,75-89分为良,60-74分为及格,59分及以下为不及格。

SET TALK OFF

DIMENSION M(4)&&定义数组

STORE 0 TO M&&M所有元素初值设为0

x=0

INPUT“学生人数 N=?” TO N&&计数循环

FOR I=1 TO N

?“请输入第”,I,“人的成绩”

@ROW(),20 SAY “X=?” GET X

READ

DO CASE

CASE x>=90

M(l)=M(1)+1&&统计优秀生人数

CASE x>=75

M(2)=M(2)+1

CASE x>=60

M(3)=M(3)+l

CASE x<60 AND x>=0

M(4)=M(4)+1

OTHERWISE

?“输入数据有错,请重输”

I=I-1

ENDCASE

ENDFOR

?“优、良、及格、不及格人数各为”,M(1),M(2),M(3),M(4)SET TALK ON

【例5.11】设有商品表,结构为商品(商品代码,品名,单价,数量,金额),欲对其中部分商品调动单价,为此建立一个调价表,其结构为调价(商品代码,原单价,新单价),编写程序用调价表中新单价数据修改商品表中单价与金额。

SET TALK OFF

SELE 1

USE商品

SELE 2

USE 调价

SCAN

代码1=商品代码

SELE 1

LOCATE FOR商品代码=代码1

IF NOT EOF()

REPL 单价 WITH 调价.新单价、金额 WITH 单价*数量

ENDIF

SELE 2

ENDSCAN

CLOSE ALL

SET TALK ON

本例中设置二个工作区,分别打开二个表,首先在工作区2上利用SCAN循环遍历调价所有记录,对每一记录在商品表中查找有无商品代码标识相同的记录,如有,则用新单价更新原单价,并修改金额。由于在非当前工作区中不能移动指针,不能查询,不能修改数据,因而在转到商品表中查询之前要将商品表所在工作区1设为当前工作区,更新以后又转到工作区2将调价表中指针指向下一条,再准备按第二个品种调价。

在当前工作区中可读取非当前工作区中数据,如本例中用 “调价.单价”这样的格式从工作区2的调价表中读取其中指针所指记录的单价,这种方式称为联访。如此对多个数据表操作十分麻烦,可采用预先建立关联的办法,在一个表中移动指针时,第二个表中指针按关键字保持一致的方式跟着移动。

三.其他常用命令

1.SET RELATION

意义:将当前数据库和“别名”工作区中的表文件关联在一起,当前表文件称为主动表文件,“别名”工作区中的表文件称为被关联表文件,每当主动表文件中指针移动时,被关联表文件中指针也相应移动。

命令格式:SET RELATION TO 字段名 INTO 别名[ADDITIVE]

命令中选用的“字段名”必须同时包含在两个表文件中,且被关联表必须以该字段建立索引文件并打开为主索引文件。每当主动表文件中记录指针移动时,被关联表中记录指针根据主索引文件指引指向与之相匹配(索引字段值等于主动表当前记录该字段的值)的第一条记录。若找不到匹配记录,则指针将指向文件尾,EOF()为真(.T.)

如命令无ADDITIVE选项,在建立关联时将取消当前数据库与其他数据库的任何关联,仅保留一个新关联。而选了此选项,则原有关联均保留,增加一个新关联。

要注意的是,如果对应主动表中某记录在被关联表中找不到匹配记录时,主动表中数据被改为0。例5.11中如果调价表中商品包括商品表中全部商品,利用此命令程序可修改为:

USE 调价&&第一个打开表默认置于1号工作区

INDEX ON 商品代码 TO INDEX1

SELECT 2

USE 商品

SET RELATION TO 商品代码 INTO 调价

SCAN

REPLACE 单价 WITH 调价.新单价,金额 WITH 单价*数量

ENDSCAN

本例中关于被关联表中字段名也可用“区号.字段名”形式对之访问。

不过使用本程序要求两表中内容必须匹配,例如例5.11中如商品只有部分调价,在调价表中只有商品表中部分商品,那么该程序将使商品表中不调价商品单价均变为0。

一般在涉及利用一个表数据修改另一个表数据时,我们以采用SQL语言中修改命令UPDATE比较好。也可采用全联结视图再对之操作。”

2.RUN

意义:在VFP环境中调用DOS命令。·

命令格式:RUN DOS命令或!DOS命令

3.LOAD命令

意义:把汇编或C语言编写并编译的二进制文件调入内存命令。

命令格式:LOAD 二进制文件名

4.CALL命令

意义:执行由LOAD装入内存的二进制代码文件命令。命令格式:CALL 文件名[WITH 字符表达式/内存变量] 其中WITH选项用于向调用程序传递参数。

5.ON ERROR

意义:当出现错误时执行的命令。

命令格式:ON ERROR 命令

其中命令可为任何VFP语句。在程序调试过程中,可在程序中加入此命令,并设计命令处理程序,在其中可加入显示ERROR(),MESSAGE(),LINENO()和PROGRAM()的语句,将错误代码、错误消息、错误行号及程序名称显示出来,以帮助发现错误所在,方便纠正错误。在应用程序中,有时可能出现一些不影响最终结果的错误,我们也可在程序中加入这类错误陷阱,所指定的命令可以是一条无效语句,不让错误影响程序运行。

【例5.12】程序出错时的处理程序及调用方法 主程序:

*---Set system enviroment------

clos data

clea

on erro do showerro with prog(),lineno(),erro(),mess()&&调用出错程序showerro

语句序列

程序出错时的处理程序:

para m_prog,m_line,m_num,m_mess&&传递参数

priv m_odcons&&定义局部变量

m_odcons=set('cons')

set cons off

defi wind erro_win from 0,0 to 14,49;

titl ' 系统错误 ';

colo gr+/b;

shad doub;

in desktop

move wind erro_win cent

acti wind erro_win

@1,4 say ' 错误警告' colo gr+/b

@3,8 say '当前程序无法继续,按<确定>将返回主调!' colo w+/b

@4,4 say '程序建议:稍后再试或与软件供应商联系.' colo w+/b

@6,4 say '出错程序:'+m_prog colo w+/b

@7,4 say '出 错 行:'+allt(str(m_line))colo w+/b

@8,4 say '错误代码:'+allt(str(m_num))colo w+/b

@9,4 say '错误内容:'+iif(len(m_mess)<=28,m_mess,subs(m_mess,1,28)+'...')colo w+/b

@2,3 to 2,wcol()-4 colo w/b

@5,3 to 10,wcol()-4 colo w/b

=opendbf('errosave','errosave','shar')&&存放错误情况

inse into;

dbferrosave(errodate,errotime,erroprog,erroline,errocode,erromess);

valu(date(),time(),m_prog,m_line,m_num,m_mess)

use in errosave

m_readkey=20

m_cnt=1

do while m_readkey=20

if mod(m_cnt,2)=0

@1,6 say ' 错误警告' colo b/b

else

@1,6 say ' 错误警告' colo gr+/b

endi

@wrow()-2,wcol()/2-2 get mb_isee func '*th 确定' defa 1 &&colo sche 13

read cycl modal time 0.4

m_readkey=readkey()

m_cnt=m_cnt+1

endd

set cons &m_odcons

clea wind

close data

clea

retu to master&&返回主程序

6.显示文件目录命令

格式:DIR [<驱动器>][<路径>][<文件名>] 功能:显示指定的磁盘驱动器上的文件名

说明:<文件名>中可带通配符;命令中不指定文件名,则仅仅显示指定目录下的数据表文件名。7.清屏命令CLEAR 格式:CLEAR 功能:清除屏幕 8.总清命令CLEAR ALL 格式:CLEAR ALL 功能:关闭所有打开的数据表文件、索引文件和其他各种文件,清除已有的内存变量 9.SET TALK ON/OFF

四.程序设计基础

程序的概念

命令执行方式:通过命令菜单或直接在命令窗口输命令来执行,执行的结果显示在屏幕上。程序执行方式:以程序的方式来执行。

程序是能够完成一定任务的命令的有序集合,这组命令存放在程序文件(*.prg)中,执行程序时,系统按一定的次序自动执行包含在程序文件中的命令。

程序的特点

可以利用编辑器,方便地输入、修改和保存程序。可以利用多种方式、多次运行程序。可以在一个程序中调用另一个程序。

程序的基本要求

正确性,能实现算法的各个步骤,逻辑上正确,对输入产生的错误有检测措施。通用性,不能只解决一个问题,还考虑解决一类问题。高效率性,编写执行时间短,占用存储空间少的程序。可维护性,程序应易读、易懂、易修改。安全性,必须确保安全、可靠。

程序文件的建立

在项目管理器中和菜单中建立

用命令方式:modify command <文件名>

程序的执行

从“ 程序” 菜单中选择“ 运行” 命令方式:do < 文件名> <文件名>中如果没有指定扩展名,系统将按下列顺序寻找程序文件并执行:.exe-->.app(应用程序)-->.fxp(编译程序)-->.prg

当程序文件被执行时,文件中包含的命令将被依次执行,直到所有的命令被执行完毕中,或者执行到以下命令:

cancel(终止程序执行,返回命令窗口)do(转去执行另一个程序)return(结束当前程序,返回到上级程序,若无上级程序则返回到命令窗口)quit(退出VFP 系统,返回到操作系统)

程序结构

(1)每个程序都必须有1个文件名,文件名由字符、数字或下划线组成,第一个字符必须是字母或汉字,程序扩展名为.PRG(2)程序由若干行数据库命令组成,每行最多写2048个字符,1行只能写1条命令,若把一个命令写成若干行,需在该命令的第1行及中间各行的行尾写“;”号,但最后一行不写。(3)注释行由“*”开头,用以说明程序的名称、功能及其他需要说明的问题,“*”是注释命令,是非执行语句,可以写在程序任一位置。

(4)以“set”开头的命令为环境设置命令,一般出现在可执行语句的前面。(5)每行程序的后部可以写由“&&”号引导的注释。(6)“return”命令是返回命令,表示程序结束。

编写程序的步骤

举例:编写一个简单的程序:给出一个整数,判断是奇数还是偶数。(1)分析任务,确定方法;(2)分解任务,描述算法;(3)编写程序,认真检查;(4)上机调试,纠正错误

流程图

流程图符号的使用规则: 流程线的方向是从左到右,自上而下,非标准流向的流程线要用箭头表示。流程线就尽量避免交叉。

流程图符号内的文字一律从左到右,自上而下书写。流程图符号的注释应写在符号右侧。

出入口处的连接符应使用相同名称,表示把它们连接起来。

子程序、过程和自定义函数

模块化:按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块的过程。

模块:一个在结构上相对独立的程序段。可以是子程序、过程或自定义函数。

子程序的基本概念

子程序:总被其它程序调用的,一般不单独运行的一个程序段。

子程序与主程序的关系:是一种调用和被调用的关系。主程序是能调用其他子程序,而不被其他程序调用的程序,凡能被调用的程序都称为子程序。程序中至少应有一个主程序,可以有一个或若干个子程序。子程序的使用

①使用模块化程序设计方法编写程序时,把各个功能划分成若干个功能子模块,把子模块写成一个子程序。

②需要反复调用的情况下,可以写成一个子程序,以节省存储空间。

编写子程序

调用子程序命令格式:

do <子程序名>[ WITH<参数表>] 子程序返回命令

return [ to master ] 表示返回到上一级子程序或主程序。带参数to master表示无论在哪级子程序上,均立即返回主程序。

1、对任意给的正整数A、B、C,编写程序计算S=A!+(3/5)B!+(C!/2)调试子程序 联合调试:当主程序和子程序分别编辑完成之后,直接运行主程序。若主程序或子程序有错,再进行编辑、调试、重新运行,直到输出正确结果为止。单独调试:编辑一个模块,调试一个模块,各个模块都调试成功后,加入主程序联调。例

2、根据数据库student.dbf编写一个菜单程序main.prg,完成对数据库查询程序cx.prg和删除程序sc.prg的调用

过程与过程文件

过程是一段程序,它与子程序不同之处在于,子程序是一个独立文件,而过程是过程文件的一个组成部分,可以把多个过程写在一个过程文件中。过程的结构:

procedure <过程名> <过程体> return [to master/to <程序名>] 过程名由用户定义,供调用过程时使用,过程体是一个语句序列,是过程的核心部分,选择to <程序名>表示返回到“程序名”指定的程序。过程文件的结构

procedure <过程名1> <过程体1> return [to master/to <程序名>] procedure <过程名2> <过程体2> return [to master/to <程序名>] „„

procedure <过程名n> <过程体n> return [to master/to <程序名>] 过程文件的调用

在主程序中,调用过程前,首先要打开过程文件。

命令格式:set proc to <过程文件名>

调用后,要关闭过程文件。

命令格式:set procedure to 或 close procedure 过程的调用

格式:do <过程名> 例

3、根据数据库student.dbf编写一个菜单程序gczxc.prg,用过程形式完成对数据库查询程序cx.prg和删除程序sc.prg的调用。

自定义函数命令

命令格式:(1)function <函数名>(2)return <表达式> 基本格式:

function<函数名> parameters <参数表> <语句序列>

return <表达式>

主程序与自定义函数的组织形式:

举例计算组合数的值

编写K!的函数。作业

1、从键盘输入五个数组,每组有六个数据,分别用子程序、过程、自定义函数的方法,输出每组数的最大值和最小值。

2、用子程序、过程、自定义函数三种不同形式对student.dbf数据库编写一个菜单程序:

系统主菜单

1„„追加记录

2„„修改记录

3„„插入记录

4„„删除记录

5„„输出记录

6„„退

第二篇:VFP命令、函数及程序语句解读

VFP命令、函数及程序语句大全(1 学过VFP(Microsoft Visual FoxPro的朋友都知道它是微软公司开发的数据库管理系统。它

经历了从dBASE、FoxBASE、FoxPro直到VFP的发展过程。本文便以VFP 6.0为例介绍它的命令、函数

及程序语句,为学习VFP的朋友提供必要的学习参考,也为已经精通VFP的朋友提供复习的好机会。

一、主要命令:

1、CREATE 作用:建立一个新的表。

格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下

同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下

同。

说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出

对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用

户输入想要建立的表名。

2、MODIFY STRUCTURE

作用:显示表文件结构,并允许修改此表的结构。格式:MODIFY STRUCTURE 说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。

3、APPEND 作用:在当前表的尾部(无论表中有无记录追加记录(在当前表指当前正使用的表。

格式:APPEND [BLANK] 说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK 参数

时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。

4、INSERT 作用:在表文件中间插入一个新记录。格式:INSERT [BEFORE] [BLANK] 说明:INSERT 在当前记录后插入一记录;INSERT BEFORE 在当前记录前插入一记录;INSERT BEFORE BLANK 在当前记录前插入一空记录。INSERT-SQL命令追加记录

INSERT INTO 表名[(字段1[,字段2…]];VALUES(表达式1[,表达式2…]

例:INSERT INTO XS(XH,XM,XB,XIMING VALUES(“950106”,“高山”,“男”,“”

5、UPDATE 作用:修改数据

update <表名> set <字段1=表达式1>,<字段2=表达式2...> where <条件> 例: update <表名> set <字段1,字段2...>=<表达式1,表达式2...> where <条件>

6、BROWSE 作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。格式:BROWSE 作用:打开一个“浏览”窗口,供用户浏览或修改记录。格式:BROWSE [FIELDS <字段名表>]

7、USE 作用:打开和关闭表文件。格式:USE [<文件名>] USE 说明:前一个命令用来打开<文件名>指定的表文件,该表如有备注型字段,则同时打开相应的

备注文件(.fpt文件;后一个命令关闭当前打开的表文件。

8、LIST和DISPLAY

作用:显示表(.dbf的内容、结构或状态。

格式:LIST|DISPLAY [OFF] [<范围>] [FIELDS] <表达式表> [WHILE <条件>] [FOR <条件>] [TO PRINT|TO FILE <文件>] LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件> LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>] 说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:RECORD n 第几号记录、NEXT n 当前记录开始的几个记录、REST 自当前记录开始至文件末尾的所有记录、ALL 所有的记录。不选范围则隐含范围为ALL;FIELDS后跟字段名,字段名与字段名之间用逗号分

隔。WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果不满足,便停止查找;FOR后的条件查找所有满足条件的记录。TO PRINT和TO FILE <文件>分别表示将显示结果在打印机上打印出

来和将显示结果输出到文件。

格式中,下面两个命令分别为显示表结构(STRUCTURE和工作状态(STATUS。注:LIST命令一次连续显示完所有记录内容。DISPLAY命令在显示记录满屏后,要求用户按

任意键继续显示。如果LIST与DISPLAY都无任何选择项时,LIST显示文件的全部记录, DISPLAY仅显示当前记录。

9、记录的定位

作用:用记录指针(POINTER定位记录。格式: 1GO[TO] RECORD n|TOP|BOTTOM 命令定位 GO [RECORD] N GO BOTTOM GO TOP 2n 3SKIP [+|-] n 说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录, BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫相对定

位,它以当前记录为基准前移(-或后移(+n个记录,不选任选项,则默认记录指针后移一个记

录。

LOCATE [<范围>] FOR <表达式> 范围: ALL NEXT N RECORD N

REST

10、CHANGE和EDIT 作用:显示要编辑或修改的字段。

格式:CHANGE|EDIT [<范围>] [FIELDS <字段名表>] [WHILE <条件>] [FOR <条件>]

11、REPLACE 作用:用表达式的值代替命令中与之相对应的字段的内容。

格式:REPLACE [<范围>] <字段1> WITH <表达式1>[,<字段2> WITH <表达式2>] [FOR <条件> ] [WHILE<条件>] 例:USE B2-1 REPLACE ALL 工资 WITH 工资+200 FOR 工资<1000 BROW

12、DELETE、PACK、ZAP和RECALL 作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的

删除标志。

格式:DELETE [<范围>] [WHILE<条件>] [FOR <条件>](特例:DELETE FILE FILENAME.DBF,该命令删除指定的表文件

PACK

ZAP RECALL [<范围>] [FOR <条件>] [WHILE<条件>]

13、SORT和INDEX 1SORT 作用:是建立一个其记录以新的物理顺序排列的新表文件,原文件不变.格式:SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D>...[ASCENDING|DESCENDING] [<范围>] [FOR <条件>] [WHILE<条件>] [FIELDS<字段表>] 2INDEX 作用: 对当前表根据关键字表达式的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。

格式: INDEX ON <关键字表达式> TO <文件名> INDEX ON <关键字表达式> TAG <标识名> [OF <文件名>] [FOR <条件>] 说明:第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字符型

关键字而言,ASCENDING和DESCENDING分别表示升序和降序。第1个命令建立.dbf表文件,第2个命令建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(Compound Index。

删除索引

DELETE TAG ALL [OF 复合索引文件名]

DELETE TAG 索引标识1 [OF 复合索引文件名1][,索引标识2 [OF 复合索引文件名2>…

14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO 作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。并确定第一个索引文件为主控索引文件.(当前起作用的索引文件称为主控索引文件, 当前起作用的索引标识称为主控索引

格式:USE <表文件名> INDEX <索引文件名表> SET INDEX TO [<索引文件名表>] 作用:打开当前表的一个或多个索引文件并确定第一个索引文件为主控索引文件,该命令用于单索引文件.格式:SET INDEX TO [<索引文件表>] [ADDITIVE] 说明:(1[<索引文件表>]中第一个索引文件为主控索引文件.(2若缺省ADDITIVE选项,则在用本命令打开索引文件时,除结构复合索引文件以外的索引文件均被关闭

SET ORDER TO [<数值表达式>]|[<单索引文件名>]|[TAG] <索引标识> [ASCENDING|DESCENDING>(特例:重新索引命令:REINDEX 作用:对于打开表时自动打开的复合索引文件确定主索引,也能确定主索引文件.(1 数值表达式表示已打开的索引的序号.系统先为单索引文件编号,故结构复合索引文件的序号比单索引文件大.(2 SET ORDER TO 或 SET ORDER TO 0命令取消主索引和主索引文件,表中记录将按物理记录输出.15、CLOSE INDEX 或 SET INDEX TO 单独关闭索引文件,并不关闭与之相关的表文件

16、FIND、SEEK和LOCATE及CONTINUE 作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容与命

令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段内容。

格式:FIND <“字符串”>|<字符串> SEEK <表达式>(表达式的数据类型可为字符型、数字型、日期型和逻辑型。LOCATE [<范围>] [FOR <条件>] [WHILE<条件>] CONTINUE 说明:FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令找到

一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。

例:SET ORDER TO NL „确定索引关键字为NL(年龄 FIND 28 „找年龄字段为“28“的记录 DISPLAY „显示当前记录

SET ORDER TO NL „确定索引关键字为NL(年龄 SEEK “28”„找年龄字段为“28“的记录

DISPLAY 17.从磁盘上删除任意文件:(1ERASE filename|?(2DELETE FILE [filename|?]

18、COUNT 作用:统计当前表文件中符合条件的记录数。

格式:COUNT [<范围>] [FOR <条件>] [WHILE<条件>] [TO <内存变量名>] 说明:内存变量名可用除参数外的任意字符。

19、SUM 作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。

格式:SUM [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>] 20、AVERAGE 作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。

格式:AVERAGE [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>]

21、TOTAL 作用:分类汇总命令,按<表达式>做过索引或排序的表文件的数字型字段进行分类汇总。它把与<表达式>值相同的所有记录中的数字字段的值分别进行求和,并各

自作为一条记录存放在由文件指定的文件中去。在新生成的记录中,还将包括与<表达式>值相同的所有记录中的首项记录的其他字段内容。

格式:TOTAL TO <文件名> ON <表达式>[FIELDS <数值型字段名表>][<范围>][FOR <逻辑表达式1>][WHILE <逻辑表达式2>] 例:USE B2-1 INDEX ON 职称 TO ZC TATOL ON 职称 TO B2-1T FILEDS 工资 22.APPEND FROM 作用:从其他文件向表文件添加数据。数据来源文件既可以是表文件,也可是文本文件或其他符合规定的文件。

格式:APPEND FROM <文件名>|?[FIELDS <字段名表>][FOR <逻辑表达式>] FIELDS <字段名表>和FOR <逻辑表达式>,用于源文件为表文件时,指定追加记录的字段和条件。在字段名表和逻辑表达式中的字段名,必须是在来源和目的两个文件中公有的,共注意宽度和类型匹配。实际应用中,数据来源文件常为表文件(.DBF和ASCII码文本文件(.TXT 对于文本文件又有标准格式(SDF和通用格式(DELIMITED之分.例: USE B2-1 APPE FROM S3-1.TXT SDF BROWSE 23.COPY(选择表的部分内容生成一个新表

作用:把打开的表文件结构及数据复制成由<文件名>所指定的并符合规定要求的文件。如果默认全部选择项和文件名的扩展名,则结构及全部数据都被复制,且其文件扩展名由系统规定为“.DBF”。

格式:COPY TO<文件名> [FIELDS <字段名表>][<范围>][FOR <逻辑表达式1>][WHILE <逻辑表达式2>] 格式中的或用来为新表建立一个与原表相同的结构索引.例1: COPY TO B3-2 COPY TO S3-2.TXT SDF 例2: USE RS COPY TO RS3 FIELDS 姓名,基本工资,奖金 USE RS3 LIST 24.COPY FILE复制数据整表:(可用于复制任何类型文件 COPY FILE 原文件名 TO 目标文件名

注:复制表时,还应当复制和它相配的备注文件(.FPT,如有备注字段和结构复合索引文件。

当前表应关闭。(如果已打开表:COPY TO 新文件名 例:将RS.DBF复制为RS1.DBF COPY FILE RS.DBF TO RS1.DBF 或USE RS

COPY TO RS1 USE RS1 LIST 25.COPY STRUCTURE(只复制结构不复制数据

作用:表文件结构复制,生成一个指定文件名和包括指定字段的表文件结构;如有CDX或PRODUCTION选择项还将为新表建立一个与源表相同的结构索引.格式: COPY STRUCTURE TO<文件名> [FIELDS <字段名表>] 例: COPY STRUCTURE TO B3-3 FIELDS 编号,姓名,何时工作,职称 26.copy to建立结构扩展文件

作用:把已打开的表文件的结构作为数据记录复制到由<文件名>指定的库文件中去.格式: COPY TO<文件名> STRUCTURE EXTENDED 例: USE B3-3 COPY TO B3-4 STRUCTURE EXTENDED USE B3-4 BROW 该命令可以用于测试表文件结构,也可以用于顺序方式建立库文件结构.新库文件的结构是一个由系统规定的标准结构,它由4个字段构成: FIELD_NAME 字段名

FIELD_TYPE 字段类型 FIELD_LEN 字段宽度 FIELD_DEC 小数位数 27.常用命令: 库表

建立数据库: CREATE DATABASE 库文件名.DBC 建立表: CREATE 表文件名.DBF CREATE TABLE/DBF 表名(各个字段属性 打开数据: OPEN DATABASE 库文件名 打开表: USE 表文件名

使用非前库的表:USE 库名!表名 打开索引表:USE 表名 INDEX 索引名 显示库信息:DISP DATABASE [TO PRINTER] 显示记录:LIST(快速查看 BROWSE(分屏浏览可修改 DISP(显示当前记录

关闭数据库:CLOSE ALL(关闭所有库、表、索引 关闭表: USE

CLOSE DATABASES(关闭当前库、表 CLOSE TABLES(关闭当前表,不关库 CLOSE INDEXES(关闭当前索引

修改库:MODI DATA 库名 [NOWAIT] [NOEDIT] 修改表结构:MODI STRU ALTER TABLE 表名 ADD 字段名 ALTER TABLE 表名 ALTER 字段名 ALTER TABLE 表名 DROP 字段名 添加表:ADD TABLE 表名追加记录: INSERT INTO 表名(字段名列表 VALUES(对应数值 APPEND APPEND FROM 源文件 移去表:REMOVE TABLE 表名

删除记录:DELETE ALL FOR [条件](逻辑删除 PACK(物理删除 ZAP(全部彻底删除

删除库:DELETE DATABASE 库名(先关闭库 删除表:DELETE FILE 表名(先关闭表 VFP命令、函数及程序语句大全(2

二、常用函数

1、数学函数 函数用途

ABS(<数值表达式>绝对值,|x| CEILING(<数值表达式> >=自变量的最小整数 EXP(<数值表达式>对基E的幂,e=2.71828 FLOOR(<数值表达式> <=自变量的最大整数 INT(<数值表达式>取整(舍尾自变量

LOG(<数值表达式>自变量的自然对数,ln x LOG10(<数值表达式>自变量的普通对数,lg x MAX(<表达式1>,<表达式2>两个值的最大值 MIN(<表达式1>,<表达式2>两个值的最小值 MOD(<数值表达式1>,<数值表达式2>求余数 RAND([<数值表达式1>]返回伪随机数

ROUND(<数值表达式1>,<数值表达式2>四舍五入第一个自变量 SIGN(<数值表达式>自变量的符号 SQRT(<数值表达式>平方根(正根

2、字符串操作函数 函数用途

&<内存变量> 用于代替内存变量内容

LEN(<字符串表达式>返回字符串表达式的字符个数 SPACE(<数值表达式>生成空格

SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>]求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串

LOWER(<字符串表达式>将字符串字母转换成小写字母 UPPER(<字符串表达式>将字符串字母转换成大写字母 TRIM(<字符串表达式>删除字符串尾空格

ASC(<字符串表达式>返回字符串表达式最左边的第一个字符的ASCII码 CHR(<数值表达式>将数值表达式转换成字符

AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>] 确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现 STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>将数值转换为字符串,L为数值表达式总长,n为小数位数

VAL(<字符串表达式>将数字字符串转换为数字 TYPE(<表达式>检测表达式值的数据类型 LTRIM(<字符串表达式>删除字符串左部空格 RTRIM(<字符串表达式>删除字符串右部空格

LEFT(<字符串表达式>,<数值表达式n>取字符串左边部分字符,n为返回的字符个数

RIGHT(<字符串表达式>,<数值表达式n>取字符串右边部分字符,n从右边截取字符个数

3、表(.dbf操作函数

函数用途

BOF([<工作区号或别名>]查表文件开始函数 EOF([<工作区号或别名>]表文件结尾测试函数

RECNO([<工作区号或别名>]测试当前或指定工作区表的当前记录号 DELETED([<工作区号或别名>]记录删除测试函数 FILE(<“字符串”>测试文件是否存在函数 DBF([<工作区号或别名>]检测表的文件名函数

4、日期、时间函数 函数用途

DATE(查系统当前日期函数

TIME([<数值表达式>]查系统当前时间函数

YEAR(<日期型表达式>|<日期时间型表达式>由日期查年函数 MONTH(<日期型表达式>|<日期时间型表达式>从日期查月份函数 CMONTH(<日期型表达式>|<日期时间型表达式>由日期查月份名函数 DAY(<日期型表达式>|<日期时间型表达式>从日期查当月的日函数

DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>]由日期查星期函数

CDOW(<日期型表达式>|<日期时间型表达式>从日期查星期名函数 DTOC(<日期型表达式>|<日期时间型表达式>日期转换为字符函数

CTOD(<字符串表达式>字符串转换为日期函数 CTOT(<字符串表达式>返回日期时间值函数 TTOC(<日期时间型表达式>返回字符值

5、显示、打印位置函数 函数用途

ROW(判断光标行位置函数 COL(判断光标列位置函数

INKEY([<数值表达式>]检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间

6、其他函数 函数用途

DISKSPACE(返回默认磁盘驱动器中可用字节数函数 OS(检测操作系统名称的函数 VERSION(返回VFP版本号的函数 VFP命令、函数及程序语句大全(3

三、主要程序语句

1、条件判断语句 格式:(1IF <条件> <命令语句组>

ENDIF 说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行, 而执行ENDIF后的语句。(2IF <条件> <命令语句组1> ELSE <命令语句组2> ENDIF 说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。(3IF <条件1> IF <条件2> <命令语句组1> ELSE <命令语句组2> ENDIF...ELSE <命令语句组N>

ENDIF 说明:进行多重条件的嵌套选择。(4DO CASE CASE <条件1> <命令语句组1> CASE <条件2> <命令语句组2> CASE <条件3> <命令语句组3>......CASE <条件N> <命令语句组N> [OTHERWISE] [<命令语句组N+1>] ENDCASE 说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有

OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。

2、循环语句

格式:(1DO WHILE <条件> <命令语句组> [LOOP] <命令语句组> [EXIT] <命令语句组> ENDDO 说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条 件为假,结束循环。(2)SCAN <命令语句组> ENDSCAN 说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操 作,直到表文件 记录完为止。

第三篇:VFP对口高考命令-3至5

DO <查询文件名> 功能:运行指定的查询

例:do d:chax1.qpr 运行名为chax1的查询文件

MODIFY QUERY <查询文件名> 功能:打开指定的查询文件 例:modify query d:chax1.qpr 打开名为chax1的查询文件

注:不论用什么方法打开查询文件,VFP都会自动打开查询设计器

SELECT <字段列表> FROM [数据库名!] <表名> [,[数据库名!] <表名>,„] [WHERE 条件] [GROUP BY 分组项列表] [ORDER BY 排序项[DESC]„] [INTO 目标|TO FILE 文件名|TO PRINTER] 功能:从一个或多个表中查询数据

例:select b1.语文,b1.数学,b1.英语 from sjk1!b1 where b1.语文>70 group by b1.语文 order by b1.学号 desc 查询sjk1数据库中的b1表的语文,数学,英语字段中满足语文大于70的数据,按照b1表的语文字段分组,按照b1表的学号排序,且设置排序方式为倒序。

[INTO 目标]的“目标”可以使用如下3种:“ARRAY 数组名”、“CURSOR 表名”、“DBF 表名”。

[ORDER BY[desc]]中若缺省“desc”则按升序排序。否则则按降序排序。[TO PRINTER]:将查询结果送往打印机输出

[TO FILE 文件名]:将查询结果输出到指定的文本文件中

CREATE VIEW <视图名> AS <查询语句> 功能:为当前数据库创建视图 例:open database d:sjk1 打开数据库sjk1

create view st1 as select * from sjk1!b1 为当前数据库创建一个视图st1其功能为“查询数据库sjk1的表b1中所有字段数据”

注:使用上述命令创建的视图还需要在视图设计器中指定可更新字段,才能实现更新数据的功能

DROP VIEW <视图名> 功能:删除当前数据库中指定的视图 例:open database d:sjk1 打开数据库sjk1

drop view st1 删除视图st1 CREATE REPORT <报表文件名> 功能:建立一个空白报表 例:create report d:bb1 建立一个报表bb1

MODIFY REPORT <报表文件名> 功能:打开指定的报表文件 例:modify report d:bb1 打开报表bb1

REPORT FORM <报表文件名> TO PRINTER 功能:打印指定的报表 例:report form d:bb1 to printer 打印报表bb1

MODIFY COMMAND <程序文件名> 功能:建立一个程序文件 例:modify command cx1 建立一个名为cx1的程序文件并打开编写 DO <程序文件名> 功能:运行指定的程序 例:do d:cx1 运行程序cx1

注:如果在A程序中使用命令调用B程序,则B程序称为A程序的子程序,A程序称为B程序的主程序。

VFP中可以使用“*”号和NOTE命令可以给某一行加注释,也可以使用“&&”在语句行后面添加注释。

注:给某一个行加注释就是以“*”或NOTE开头后进行注释,给语句行加注释就是使用“&&”直接在语句后面加上注释,相比来说“&&”注释更加灵活。

例:clear &&清屏

给clear加注释“清屏” 注:注释的作用就是帮助理解程序的功能,以利今后修改程序时提高工作效率,一般注释的内容在VFP中以绿色显示。

CLEAR 功能:清除屏幕上的显示信息 ACCEPT [提示信息] TO <内存变量>

功能:把用户输入的字符串保存到指定的内存变量中

例:accept to x 在屏幕上光标处输入字符串,并将字符串保存到变量x中

accept ”请输入x:” to x

在屏幕上”请输入x:”后输入字符串,并将字符串保存变量x中 INPUT [提示信息] TO <内存变量>

功能:把用户输入的表达式的值保存到指定的内存变量 例:input ”请输入y:” to y 在“清输入y:”后输入数据,并将数据保存到变量y中 注:input与accept的区别是,前者可以输入数值型数据、逻辑型数据,也可输入字符型数据,在输入字符型数据时要加定界符,后者输入的数据都一律被认为是字符型数据,且不用加定界符。

WAIT [提示信息] [TO 内存变量] [WINDOW] [TIMEOUT 时间] 功能:等待用户输入一个字符

例:wait 屏幕上显示“按任意键继续„”,并要求任意输入一个字符以继续

wait “是否继续(Y/N)?” to x window timeout 2 在屏幕右上角中的系统窗口中显示“是否继续(Y/N)?”系统窗口存在2秒,并将输入的字符保存到变量x中

注:wait命令和accept命令中的变量的一定是字符型变量且不用加定界符,而input命令的变量的类型由输入表达式值的数据类型决定。wait命令常用于输入单字符和显示信息,accept命令常用于输入字符串,input命令常用于输入其他类型的数据。

@<行,列> SAY <显示信息> 功能:在指定位置输出信息 例:@1,1 say ”你好” 在第一行第一列显示“你好” @<行,列> [SAY 显示信息] GET <变量> 功能:在指定位置输入数据,并把输入的数据保存在指定的变量 例:@1,1 say”姓名:” get xm

read 在第一行第一列显示“姓名:”并在其后面输入数据并将数据其保存给变量xm 注:该命令需要与read命令共同使用,才能激活命令中的变量,接收输入的数据。注:不与read命令共同使用的话,系统将自动将原先变量的值载入。ROW()功能:返回当前坐标的行坐标 COL()功能:返回当前坐标的列坐标 SET TALK ON|OFF

功能:设置是否显示某些命令执行的结果,ON为显示,OFF为不显示 SET SAFETY ON|OFF

功能:设置删除文件数据时是否显示提示信息,ON为显示,OFF为不显示 CLEAR ALL 功能:清除用户自定义的内存变量和对象 IF <条件>

功能:单分支选择结构

<语句组> ENDIF 例:if x<0 判断x是否小于0,其返回值是.T.或.F.?”x小于0”

返回.T.时执行,执行后执行endif后面的语句

endif

返回.F.时执行endif后面的语句 IF<条件> 功能:双分支选择结构

<语句组1> ELSE

<语句组2> ENDIF 例:if x<0 判断x是否小于0,其返回值是.T.或.F.?”x小于0”

返回.T.时执行,执行后执行endif后面的语句

else

?”x大于等于0” 返回.F.时执行,执行后执行endif后面的语句

endif 注:条件是一个逻辑表达式,其返回值为.T.或.F.。

注:if和endif必须成对使用,分别表示选择结构开始和选择结构结束 DO CASE

功能:多分支选择结构

CASE <条件1>

<语句组1> CASE <条件2> <语句组2> „

CASE <条件n> <语句组n> [OTHERWISE 语句组] ENDCASE 例:do case

case x=1

?”x等于1”

x等于1时执行,执行后执行endcase后面的语句

case x=2 ?”x等于2”

x等于2时执行,执行后执行endcase后面的语句

case x=3

?”x等于3”

x等于3时执行,执行后执行endcase后面的语句

otherwise

? ”x是大于3的数”

x不满足以上的所有条件时执行,执行后执行endcase后面的语句 endcase 注:do case和endcase必须成对使用,分别表示选择结构开始和选择结构结束

DO WHILE <条件> 功能:基于条件的循环结构 <语句组>

ENDDO 例:do while x<10 判断x是否小于10,其返回值是.T.或.F.?”x小于10”

x=x+1

返回.T.时执行,执行完毕后跳回循环开始处(do while <条件>)再次判断条件是不是满足或不满足

enddo 返回.F.时执行enddo后面的语句

SCAN [FOR条件] 功能:针对表记录的循环结构 <语句组> ENDSCAN

例:use d:b1 由于是针对表记录的循环,所以需打开一张表

scan for 性别=”男”

display

每个性别字段等于“男”的记录都会执行一次语句组的语句,全部执行完毕后,执行endscan后面的语句

endscan FOR <变量>=<初值> TO <终值> [STEP 步长] 功能:指定次数的循环

<语句组> ENDFOR

例:s=0 设置累加器s

for x=1 to 11 step 2 给x赋初值1,终值11,其步长为s=s+x

因步长为2,故x的值为1、3、5、7、9、11,s将x从初值1到11的每一步的值都加起来,当x的值下一步大于其终值时,执行endfor后面的语句

endfor 注:do while enddo,scan endscan,for endfor必须成对使用

LOOP 功能:终止本次循环,使程序再次检查是否满足循环条件,以决定是否进行下一次循环即直接跳回循环开始处(如do while <条件>)。

EXIT 功能:结束循环,使程序执行循环结构后面的语句即直接跳到循环结束处(如 enddo)。PROCEDURE <过程名> 功能:定义一个过程 <语句组> ENDPROC 例:procedure x 定义一个过程,过程名为x

display

该过程的语句

endproc

结束过程

SET PROCEDURE TO [过程文件名] 功能 :打开指定的过程文件 例:set procedure to 关闭正在打开的过程

set procedure to d:gc1 打开过程文件gc1 注:缺省可选项则关闭已经打开的过程文件。DO <程序名|过程名> [WITH 参数表] 功能:调用指定的程序,并把指定的参数传递给调用的下级程序。注:缺省可选项,则不传递参数。

PAREMETERS <参数表> 功能:接受上级程序传递来的参数 例:input”你出生的年份:” to c

input”现在的年份:” to n

do c1 with c,n

调用过程c1并传递参数c和n,并执行过程c1的语句

?”你现在”+alltrim(str(n))+alltrim(”岁”)

在屏幕上显示“你现在n(变量)岁”,因n为数值型,所有要用str()函数转换成字符型,用alltrim()函数消除多余的空格

return

procedure c1 定义过程c1

parameters x,y 接收上级传递过来的参数,c对应x,n对应y

y=y-x 即用现在的年份减去你出生的年份,算出要计算的年龄

endproc

结束过程,并将参数y,x的值传递回c,n,此时执行调用该过程之后的语句 注:在这里c,n称为实参,即实际使用的参数。x,y称为形参,即位置相同,形式相同的参数。

CREATE FORM <表单文件名> 功能:创建一个空白表单 例:create form d:bd1 建立一个名为bd1的表单 DO FORM <表单文件名> 功能:运行指定的表单 例:do form d:bd1 运行表单bd1

MODIFY FORM <表单文件名> 功能:打开指定的表单 例:modify form d:bd1 打开表单bd1 Thisform.refresh 功能:刷新表单

Thisform.release 功能:释放并关闭表单,即从内存中清除表单

Thisform.<对象名>.<属性名>=<属性值> 功能:修改或设置表单对象的属性值Thisform.text1.value=”VFP”

这个表单的text1控件的value属性值是”VFP” DO <菜单程序名> 功能:运行指定的菜单 例:do d:cd1.mpr 运行菜单cd1

DO <菜单程序名> WITH this ,T,功能:使用表单调用菜单 例:do d:cd1 with this ,T, 在当前表单上调用菜单cd1

例:5

第四篇:VFP实验报告总结

南京信息工程大学实验(实习)报告

实验(实习)名称顺序和选择结构程序设计实验(实习)日期 得分 指导老师

系专业 班级 学号 【实验目的】

1、掌握程序的建立、修改与运行

2、掌握基本输入输出语句与函数

3、熟练掌握if语句(包括单分支和双分支)和do case语句的使用。

4、分析程序的运行结果。

【实验内容】

操作结果的界面截图显示。

1、从键盘输入两个数存入变量x和y,若x>y则交换他们的值,否则直接输出x和y的值。

2、执行下列程序后,变量x的值为()。x=1 if x>=1 do case case x>0 x=x+1 case x>1 x=x+1 otherwise x=4 endcase else x=3 endif

3、执行下列命令序列,屏幕显示()a=100 b=50 a=a+b b=a-b b=a*2 ? a+b

4、执行下列命令序列,屏幕显示()。b=6 do case case mod(b,3)=0 b=b+1 case mod(b,2)=0 b=b+2 otherwise b=b+3 endcase ? b

5、执行下列命令序列,屏幕显示()input to a if a=10 b=0 else b=1 endif ? b篇二:vfp实验报告

天水师范学院数学与统计学院

实验报告

实验项目名称 所属课程名称 实 验 类 型 实 验 日 期

班 级 学 号 姓 名 成 绩 1 附录1:源 程 序 2 附录2:实验报告填写说明

1.实验项目名称:要求与实验教学大纲一致。2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3.实验原理:简要说明本实验项目所涉及的理论知识。4.实验环境:实验用的软、硬件环境。5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,应注明其创新点、特色。6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。7.实验结论(结果):根据实验过程中得到的结果,做出结论。8.实验小结:本次实验心得体会、思考和建议。9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。3 篇三:vfp实验报告范例

指导老师 万润泽 实验名称visual foxpro 操作基础

同组人 日期日 成绩

一、实验目的

1)理解各种不同的数据类型 2)常量的含义以及各种不同数据类型的常量 3)变量的含义以及字段变量、内存变量、系统变量和数组变量的使用

二、实验环境(仪器设备、软件等)windowsxp操作系统、visual foxpro环境

三、实验原理(或要求)

(1)数值型、货币型、字符型、日期型和日期时间型常量的输入

(2)日期格式的设置的命令

(3)字段变量与内存变量同名时候,观察赋值运算结果(4)数组变量的赋值

(5)内存变量显示、清除与保存所使用的命令

四、实验步骤

?”计算机”,?123.45?,[?abc?,?abc?] 日期格式的设置

set century on|off set date to american ?{^2007-1-2} 结果: set mark to “.” ?{^2007-1-2} 结果 set strictdate to 0 ?{2007-5-30} 结果 set century on set mark to “|” set date to ymd 结果

创建一个学生表“学生.dbf”,其中包含字段学号、姓名、性别、出生日期等字段。并输入多行记录,再使用以下命令 use 学生

?姓名 go 3 ?姓名

五、记录与处理(实验数据、误差分析、结果分析)

注意:

实验步骤与记录处理合成一个部分,都是用来记载上机实验中的代码以及运行结果,对于visual foxpro编程而言,不必分两个部分。

在此页中继续写入程序代码以及相应的运行结果。

这个部分内容到课本52面结束

六、思考题

1、什么是常量?visual foxpro中哪几种类型的数据有常量表示?

2、什么是变量?visual foxpro中有哪几种变量?变量名取名是如何规定的?

七、实验小结

这个地方可以写入自己对上机内容的理解,也可把自己不懂的内容写在下面

同组人 日期 成绩

一、实验目的

1)掌握表达式中各种运算符的运算规则 2)掌握各种类别的运算符的优先级 3)理解函数的三要素以及各常用函数的用法

二、实验环境(仪器设备、软件等)windowsxp操作系统、visual foxpro环境

三、实验原理(或要求)(1)几种算术运算符、日期时间运算符和关系运算符的规则与使用

(2)字符串匹配运算符“=”、“= =”、“$”的含义

(3)在含有多种运算符的表达式中根据运算符优先级进行运算

(4)常用函数的用法,注意函数的参数与返回类型

四、实验步骤 p52 例3-8 3-9 3-10 例3-12 课后练习习题一(13)小题

例 3-14

五、记录与处理(实验数据、误差分析、结果分析)

(接上页)

例 3-15 ~ 34 选取有代表性的例子

注意:

实验步骤与记录处理合成一个部分,都是用来记载上机实验中的代码以及运行结果,对于visual foxpro编程而言,不必分两个部分。

在此页中继续写入程序代码以及相应的运行结果。

这个部分内容从课本53到课本63面结束

六、思考题

1.什么是表达式?当一个表达式中有多种类型的运算符并存时,一般的运算

顺序是什么?

2.函数的三要素是什么?试指出month()函数在使用时的参数和返回值

数据类型?另外测试数据类型的函数是什么?

七、实验小结

这个地方可以写入自己对上机内容的理解,也可把自己不懂的内容写在下面

同组人 日期 成绩

一、实验目的

1)掌握数据库的基本操作

2)掌握表的基本操作,包括表结构的创建、表结构的显示与修改以及表记录的显示、增加和修改

3)理解索引的概念并会在表设计器中建立索引

二、实验环境(仪器设备、软件等)windowsxp操作系统、visual foxpro环境

三、实验原理(或要求)

(1)建立自由表,并使用表设计器设计每个字段的字段名、数据类型、宽度等

(2)在数据库中创建表,在表设计器中对字段的有效性规则、默认值、格式、输入掩码等进行修改

(3)表的打开与浏览,增加表记录和删除表记录

(4)在表设计器中建立索引,另外通过命令方式建立索引

四、实验步骤

这个部分内容从69面到课本88面结束

例4-1 显示表结构 例4-3 显示男生的记录

例4-4 例4-7 8 9 理解物理删除和逻辑删除之间的区别

例4-11

五、记录与处理(实验数据、误差分析、结果分析)

注意:

实验步骤与记录处理合成一个部分,都是用来记载上机实验中的代码以及运行结果,对于visual foxpro编程而言,不必分两个部分。

在此页中继续写入程序代码以及相应的运行结果。

六、思考题

1)什么叫参照完整性?参照完整性分为哪几种? 2)数据库表和自由表有什么区别?

七、实验小结

这个地方可以写入自己对上机内容的理解,也可把自己不懂的内容写在下面

同组人 日期 成绩

一、实验目的

1)使用sql查询语句对表进行条件查询 2)理解select命令中的几个常用关键字的含义 3)能熟练掌握简单查询、联接查询、嵌套查询 4)排序显示查询结果和计算查询

二、实验环境(仪器设备、软件等)windowsxp操作系统、visual foxpro环境

三、实验原理(或要求)1)select说明要查询的数据 2)from说明要查询的数据来自哪些表 3)where说明查询的条件

4)order by 用来对查询的结果排序 5)几个特殊的运算符,如like,not in,between。。and。。,以及计算查询

中用到的函数,如count,sum,avg,max,min等

四、实验步骤

这个部分内容从104面到课本112面结束

例5-1 到 5-21 选择典型的sql查询语句

五、记录与处理(实验数据、误差分析、结果分析)

(接上面的实验步骤)

注意:

实验步骤与记录处理合成一个部分,都是用来记载上机实验中的代码以及运行结果,对于visual foxpro编程而言,不必分两个部分。

在此页中继续写入程序代码以及相应的运行结果。

六、思考题

1、课本136面

三、上机题 2(注:题目也要抄写)

2、课本136面

三、上机题 3(注:题目也要抄写)

七、实验小结

这个地方可以写入自己对上机内容的理解,也可把自己不懂的内容写在下面篇四:vfp实验报告1 实验报告 时间:2013.4.6 地点:经济管理学院机房

实验1:visual foxpro 集成环境及项目管理 实验目的:1.掌握vfp启动与退出的各种方法 2.熟悉vfp的集成操作环境,包括掌握工具栏、命令窗口打开与关闭的方法 3.了解“选项”对话框的内容,并掌握一些常用的设置与命令 4.了解vfp帮助系统的大致结构,掌握其使用方法 5.掌握项目文件建立与打开的方法 6.了解项目管理器的结构及其定制方法 实验内容:

一、vfp的启动与退出 1.vfp的启动 2.vfp的退出

二、工具栏

1、通过菜单命令“编辑”——“工具栏”

“工具栏”对话框

2、右击工具栏无按钮区域,利用快捷菜单打开与关闭快捷菜单 vfp主窗口

“工具栏”快捷菜单

三、“命令”窗口

1、命令窗口的打开与关闭

2、在“命令”窗口中执行命令 练习内容: ①计算并显示算术表达式的值 ;?和??命令的区别

②clear清除vfp主窗口中所有信息;显示默认文件夹中类型为dbf的文件目录 ;显示d盘根文件夹中所有文件的目录

③新建文件夹、复制文件夹、改名文件、删除文件、运行“计算器”

3、命令的编辑与重用

四、“选项”对话框

五、vfp的帮助系统 菜单命令”帮助——vfp帮助主题”

六、创建项目文件 “新建”对话框;“创建”对话框

1、项目文件的打开与关闭

2、项目管理器的定制

3、利用项目管理器管理文件

①添加文件 ②移去文件 ③其他操作

实验心得:通过这次实验,进一步掌握了vfp 启动与退出的各种方法和vfp项目管理器有关的操作,同时也熟悉了vfp的集成操作环境。篇五:vfp--刘子恒--实验报告1 13级电子信息工程班vfp实验报告1 注:

1、一个实验题目编写一个实验报告,每个报告至少占用1页。

2、报告内容必须具体、详实,不得笼统、简单。

第五篇:VFP程序设计总结

班级:电气2013-1 学号:20***9

VFP程序设计

——课设总结

为期几周的VFP数据库设计的课设就快过去了,在这做课设的这段时间,可以说是有苦有甜,令人难忘。因此,有必要写一篇总结,记录一下自己做课设的历程。

刚刚接到老师的课设要求的时候有点傻眼了,得优秀的要求是系统完善、写一篇系统总结、回答老师对于代码方面的提问。第一点似乎都还算能做到,但是对于我们这种连SQL语言的皮毛都没学,对于数据库的系统结构完全不了解的人,怎么能把三点要求都完成。

但是经过一段时间的摸索,我渐渐对vf的数据库系统有了大体的了解知道了什么是项目,数据库就是数据表的集合,搞清了基本表单的制作过程,知道如何用快速报表和报表向导做格式的报表,以及对报表的美化、求和、计算等处理,还有就是如何去制作菜单,以及用菜单调用各种数据文件,最后的主程序是直接复制老师的代码,但是凭着一点点C++和C语言基础,能够看懂代码的意思,这有助于我后期对整个系统进行查错和修改。下面就讲一下我对自己做的系统的总结。

1数据表(.dbf):数据表是整个系统的“原材料”,后期所有的制作处理,都是为了去处理和显示这些数据,去用这些数据,当然也可以说数据表依靠后期的表单等等呈现给用户。

2数据库(.dbc):数据库以我看来就是数据表的集合,可以将无联系的自由表集合到一个容器里,使他们可以产生联系。并且将这些表作为后面其他东西的数据环境。

3表单(.scx):表单就是最后呈现给用户的人机交互界面,并且带有一定的功能。表单的制作首先需要要给他设置数据环境,因为其上面的各种控件都是以数据环境里面的数据实现控件的意义。各种控件比如标签就是用来显示表单上需要显示的一些文字提示,文本框就是用来显示文本内容,组合框可以下拉显示一连串的内容,表格控件可以显示表格数据,可以用生成器做出自定义的表格,按钮控件可以通过某个过程比如单击执行用户需要的事件代码等等。最后表单生成以后,作为整个系统的优良的用户与系统的交互平台。

4菜单(.mnx):菜单就是整个系统调用文件的工具,通过点击菜单,可以调用任意用户想要调用的文件比如表单,数据表,程序等等。

5程序(.prg)程序就是一段代码,生成文件以后可以由其他文件调用并执行,如主程序就是在系统运行时的入口,当然得先设置好主文件;quit程序可以实现系统的退出。

除了以上几个以外,还有工具栏、自定义类等等在系统中都起着重要的作用,最后讲一下设置背景音乐所用的方法,用set bell to的方式定位到文件,用?chr(7)就能对WAV格式的音乐进行播放。

致谢:

整个课设过程收获很多,不仅仅是了解了利用Visual fox 制作系统的方法,而且还增进了同学们之间的友谊。在这里感谢同学们的互相学习以及交流分享,还有老师孜孜不倦的引导,总之,感谢老师,感谢同学,感谢大家!

XXX

下载vfp命令、语句等说明总结[五篇范例]word格式文档
下载vfp命令、语句等说明总结[五篇范例].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    vfp实习总结

    vfp实习总结 开始的时候觉得是实习很让人期待,怀着满心的热情投入到课程设计中,不过这其中也有亲所和曲折,但是更多的是得到收获。 这次课程设计是不到一周的时间,觉得做起来还......

    VFP课程总结

    《Visual FoxPro 程序设计》课程总结 本课程授课班级:外语学院Z0701-06班 《Visual FoxPro 程序设计》是一门具有功能强大的可视话程序设计工具的数据库系统,已经成为社会生活......

    VFP实践总结

    《visual foxpro 程序设计》课程总结本课程授课班级:外语学院z0701-06班《visual foxpro 程序设计》是一门具有功能强大的可视话程序设计工具的数据库系统,已经成为社会生活诸......

    经典MSSQL语句大全和常用SQL语句命令的作用

    下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类型包括数据表中记录的查......

    stata命令总结

    表2-1: 回归分析相关命令一览 命令用途 anova 方差和协方差分析 heckman Heckman 筛选模型 intreg 离散型变量模型,包括Tobit 、cnreg 和intreg ivreg 工具变量法(IV 或2SLS) n......

    stata命令总结

    stata11常用命令 注:JB统计量对应的p大于0.05,则表明非正态,这点跟sktest和swilk检验刚好相反; dta为数据文件; gph为图文件; do为程序文件; 注意stata要区别大小写; 不得用作用户变......

    AutoCAD2017命令总结

    AutoCAD2017命令总结 直线:L+空格 画直线时点三点:C+空格键可以使三条线形成闭合状态 画圆:C+空格 ESC取消一切命令 单击右键可以回到上一步命令(控制在250毫秒内) 正交:F8切换正......

    vfp程序题总结

    五.程序题 1 在Text1中输入一个3位自然数,分解求和的结果存入Text2中x= thisform.text1.value a=int【1 】b=int 【 2】c=【 3】s=【 4】 thisform.text2.value=【5 】 x/10......