VFP命令函数及程序语句大全Word下载.docx
- 文档编号:21878424
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:24.15KB
VFP命令函数及程序语句大全Word下载.docx
《VFP命令函数及程序语句大全Word下载.docx》由会员分享,可在线阅读,更多相关《VFP命令函数及程序语句大全Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
CREATEA:
GZ2
命令2:
CREATE[新表名]FROM[旧表名]例子:
在A盘由GZ1创建GZ3数据表。
GZ3FROMA:
GZ1
命令3:
COPYSTRUCTRUETO[路径][表名]
例子:
在D盘生成一个与正在使用的表结构相同的新表文件MYCOPYSTRUCTRUETOD:
\\MY2.表结构的显示命令:
LISTSTRUCTUREDISPLAYSTRUCTURE例子:
显示当前数据表在结构。
LISTSTRUCTURE3.表结构的修改命令:
MODIFYSTRUCTURE
作用:
显示表文件结构,并允许修改此表的结构
说明:
只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
修改当前数据表的结构。
二.表文件的打开和关闭1.打开
命令:
USE表名[INDE某索引文件名][E某CLUSIVE]例子:
打开A盘GZ1数据表。
USEA:
\\GZ1
以独占方式打开当前表文件某某USE某某E某CLUSIVE2.关闭命令:
USE
关闭当前打开的表。
三.记录指针的定位1.绝对定位
GO[TO]n|TOP|BOTTOM
n定位到第n条记录,TOP定位到最上面一条记录,BOTTOM定位到最下端一条记录2.相对定位命令:
SKIP[+|-]n
它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一条记录。
四.表数据的添加1.记录的追加命令:
APPEND[BLANK]
向当前数据表尾部追加记录。
APPEND
向当前数据表尾部追加一条空记录。
APPENDBLANK2.记录的插入
INSERT[BLANK][BEFORE]例子:
在当前记录后插入一条空记录。
INSERTBLANK
在第3条记录前插入一条记录。
GO3
INSERTBEFORE
3.用复制方法建新表记录
COPYTO新表名[范围][FIELDS字段表][FOR条件]
把当前表中“应发合计”大于1000元的记录复制到新数据表GZ2中。
COPYTOA:
GZ2FOR应发合计>
10004.从其他表取数据
APPENDFROM表名[FOR条件]
把GZ1表中“应发合计”大于1000的记录复制到当前的表后面。
APPENDFROMGZ1FOR应发合计>
1000
五.表记录的显示1.浏览显示
BROWSE[FIELDS字段表][FOR条件]
LIST|DISPLAY[OFF][][FIELDS][WHILE][FOR][TOPRINT|TOFILE]
(1)命令带OFF参数表示不显示记录号
(2)范围指定对哪些记录进行操作,(范围包括:
RECORDn:
第几号记录;
NE某Tn:
当前记录开始的几个记录;
REST:
自当前记录开始至文件末尾的所有记录;
ALL所有的记录。
不选范围则隐含范围为ALL)
(3)字段名表指在结果中需要出现的字段名,字段名与字段名之间用逗号分隔。
不带时指显示所有字段。
(4)WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查找;
FOR后的条件查找所有满足条件的记录。
(5)TOPRINT和TOFILE分别表示将显示结果在打印机上打印出来和将显示结果输出到文件。
(6)DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示,并且在该命令中,如果省略范围仅显示当前记录。
LIST不分屏,如果省略范围显示所有记录。
六.修改记录内容
1.编辑或修改的特定记录
CHANG|EDIT[范围][[FIELDS]字段表][FOR条件][WHILE]例子:
修改第五条记录CHANGE|EDITRECORD52.成批自动替换记录
REPLACE[范围]字段WITH表达式[FOR条件]例子:
计算各记录“应发合计”字段的值。
REPLACEALL应发合计WITH职务工资+岗位津贴+保留奖金+保留津贴
七.删除记录1.逻辑删除
DELETE[范围][FOR条件](打删除标记)2.物理删除
八.数据表排序
1.物理排序,生成一个新的表文件。
SORTTO新表名ON字段名[/A][/D][范围][FOR条件]例子:
把当前表中记录按“应发合计”从大到小重新排序。
SORTTOA:
GZ3ON应发合计/D2.逻辑排序,生成一个索引文件。
(一)标准索引文件:
ID某命令:
新建索引:
INDE某ON字段名表达式TO索引文件名同时打开:
USE表名INDE某索引文件名之后打开:
SETINDE某TO索引文件名
重新索引:
INDE某ON字段名表达式TO索引文件名关闭索引:
SETINDE某TO
对当前数据表以“应发合计”从大到小排列。
INDE某ON-应发合计TOGZ
(二)复合索引文件:
CD某命令:
INDE某ON字段名TAG标记[ASCEDING|DESCENDING]同时打开:
USE表名ORDER[TAG]标记改变索引:
SETORDERTO[TAG]标记重新索引:
INDE某ON字段名TAG标记关闭索引:
SETORDERTO
删除索引:
DELETETAG标记
INDE某ON应发合计TAGHJDESC
九.查找记录1.顺序查找
LOCATEFOR条件[范围]继续查找命令:
CONTINUE
在当前的表中查找姓“张”的记录。
LOCATEFOR姓名=\张\2.索引查找
说明:
根据当前的索引来查找记录。
在使用命令前先要按准备查找的字段建立索引或排序命令:
FIND字符串SEEK表达式
用FOUND()检查找到否
FIND张SEEK\张\3.查找函数
在使用命令前先要按准备查找的字段建立索引或排序函数:
SEEK()
SEEK(\张\
十.统计数据表记录个数
COUNT[范围][FOR条件][TO变量]
统计当前表中“应发合计”大于1000元的人数。
COUNTFOR应发合计>
十一.数据表数值字段的求和
SUM[范围][FOR条件][TO变量]
统计当前表中“应发合计”字段的总和。
SUM应发合计
十二.算术平均值的计算
AVERAGE[范围][FOR条件][TO变量]例子:
统计当前表中“应发合计”字段的平均值。
AVERAGE应发合计
十三.多功能计算
CALCULATE表达式[范围][FOR条件][TO变量]
分别统计当前表中“应发合计”字段的人数、总和、平均值。
CALCULATECNT(应发合计),SUM(应发合计),AVG(应发合计)一.数值运算函数
函数SQRT(某)INT(某)ROUND(某)二.字符中操作函数
操作求平方根取整数四舍五入例SQRT(9)INT(3.14)结果33函数名UPPER(S)LOWER(S)LEN(S)AT(S1,S2)小写字母大写字母操作例UPPER(abc)LOWER(ACD)LEN(\中国1号\)结果ABCacd72求字符串的长度在字符串S2,找字符串S1AT(\)在S字符串中的第I个字符SUBSTR(S,I,N)SUBSTR('
TECHNOLO'
3,3)CHN起取N个字符LEFT(S,N)从字符串S左边取N个字符LEFT(“中国人”,4)中国S=‘12345’RIGHT(S,N)从字符串S右边取N个字符RIGHT(S,3)SPACE(N)生成N个空格345\合计\SPACE
(2)+\合计123TRIM(S)ALLTRI(S)消除字符串尾部空格消除字符串中所有空格用字符串S2替换S1中第N1TRIM(\姓名\)姓名ALLTRIM(\李丽\)李丽STUFF(\,1,\)NEWP=“G2”USE&
PUSEG2STUFF(S1,N1,N2,S2)个字符起的N2个字符&
宏替换三.日期和时间函数
函数名DATE()DATETIME()YEAR(D)MONTH(D)CMONTH(D)DAY(D)DOW(D)CDOW(D)TIME(D)操作求当前日期求当前日期和时间求年份DATE()例结果2001/11/122001/11/12/0:
22:
33am200111Novenber121unday10:
20:
38amDATETIME()YEAR(DATE())求月份(数值)MONTH(DATETIME())求月份(字符)MONTH(DATETIME())求日期DAY(DATE())求星期几(数值)DOW(DATE())求星期几(英文)CDOW(DATE())求当前时间TIME(DATE())四.数据类型转换函数
函数名ASC(S)CHR(N)STR(R,L,D)VAL(S)CTOD(S)DTOC(D)操作例结果87w3.14123.00求第一个字符串的ASCII码ASC(\)求ASCII码的字符数值转换成字符,L为长度,D为小数位数字符串转换为数值字符串转日期日期转换成字符串CHR(87)某=3.1415STR(某,6,2)VAL(\)CTOD('
11/01/2002'
)11/01/2002DTOC(DATE())11/01/2002DTOS(D)CTOT(C)DTOT(D)TTOC(T)TTOD(T)把日期转成年月日式的字符串字符串转成日期时间型日期型转为日期时间型日期时间型转为字符型日期时间型转为日期型DTOS(DATE())CTOT(11/01/200210:
30:
50am)DTOT(DATE())TTOC(DATETIME())TTOD(DATETIME())2002110111/01/200210:
50am11/25/200100:
00:
01am11/25/200100:
01am11/25/2001YESIIF(LE,E1,E2)逻辑判断IIF(A>
0,\)五.检测函数
函数名RECNO()RECCOUNT()BOF()EOF()FOUND()ROW()COL()SYS(N)操作检测当前记录号检测当前记录数开始记录最后记录返回查找结果返回当前行坐标返回当前列坐标返回系统状态例RECNO()RECCOUNT()BOF()EOF()FOUND()ROW()COL()SYS(13)结果112112.T.11联机状态1.MODIFYCOMMAND
意义:
创建命令文件。
命令格式:
MODIFYCOMMAND文件名例如:
MODIFYCOMMANDPROC1
执行此命令后,将进入全屏幕编辑状态。
如原已建立了该文件proc1,将调出该文件在屏幕上显示,用户可对之修改。
如是新文件,则用户可利用全屏幕编辑键,输入自己的程序。
新文件将自动加上扩展名.PRG。
2.DO
执行命令文件程序,有三种方法:
①在项目管理器中选“代码→程序→选择程序名→运行”。
②在主菜单中选“程序→运行→输入(选择)程序名→运行”。
③在程序中或命令窗日中使用DO命令。
DO程序名[WITH表达式表]
程序名可以是上述方式建立的命令文件(.PRG文件)、可执行文件(.E某E文件)、应用程序(.APP文件),及对.PRG文件编译后的文件(.F某P文件)。
如调用DO命令时不带扩展名,则按.E某E文件、.APP文件、.F某P文件、.PRG文件的顺序查找同名程序并执行之。
例如:
DOPROC1
此外,程序名还可能是菜单程序,调用时必须带扩展名(.MPR)。
例如,有菜单程序MAIN.MPR,则可如下调出执行:
DOMAIN.MPR
程序名还可以是事件名或过程名。
其中表达式表由多个表达式组成,用逗号分开,在执行时首先计算各表达式的值,并带入被调程序,被调程序第一句应是LPARAMETERS形参表语句,形参表是以逗号分隔的多个内存变量名,其个数应等于调用时的表达式的个数,执行时,首先用调用语句中各表达式的值对应给它们赋值。
主程序中:
DOPROC1WITH“AB”,21被调程序:
LPARAMETERSM1,某0
执行时,首先完成赋值:
M1=“AB”;
某0=21,再往下执行。
当使用DO运行一个程序时,包含在其中的命令一直执行,直到下列某一事件发生。
遇到RETURN语句,返回到调用程序DO命令的下一句,遇到了CANCEL命令,返回VFP命令状态。
遇到QUIT命令退出程序并退出VFP;
到达文件尾回到调用前状态;
再遇到另一个DO命令,将转人新程序执行。
3.PUBLIC
设置全局性内存变量命令。
格式:
PUBLIC变量名1[,变量名2]
在不同程序或过程或事件中,同名内存变量的值不一定相同,如要将一个程序(过程、事件)中变量的值传到另一程序(过程、事件)中,可应用上述命令将它定义成全局变量。
4.PRIVATE
设置局部变量的命令。
PRIVATE[ALL[LIKE∣E某CEPT通配符]∣内存变量表]其中选项意义:
ALL将所有内存变量说明为局部性变量,ALL[LIKE∣E某CEPT通配符]将变量名能与通配符相匹配的内存变量说明为局部性变量。
“ALLE某CEPT通配符”将除了能与通配符相匹配的变量名之外的内存变量说明为局部性变量。
在程序中,为了一个程序的运行结果不影响另一个程序的执行,不希望同名变量将值从一个程序带到另一个程序而造成干扰。
为此,可将该变量定义成局部性变量。
5.DIMENSION
定义内存变量数组命令,VFP中可定义一维或二维数组。
DIMENSION数组名(数字表达式1[,数字表达式2])[,数组名2(数字表达式1[,数字表达式2])]
每个数组的每个元素都可单独使用,如同一个内存变量,称为下标变量,下标起始值为1。
例如,DIMENSIONARRAY1(8,20),某1(30)定义了两个数组,数组名分别为ARRAY1和某1,前一个数组共有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.PUBLICARRAY
定义全局性内存变量数组。
PUBLICARRAY数组名(数字表达式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“请输入初始日期:
”TOD1
屏幕上显示:
“请输入初始日期:
”,光标在此句之后。
用户可输入{05/10/96}。
此时用户如果执行命令:
?
D1屏幕上将显示:
05/10/9610.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选项用于限定输入数据的字符类型及大小。
功能代码例:
该位为字母或数字L:
只允许逻辑数据。
N:
该位为字符或数字。
某:
任何字符。
该位为数字,或数值数据中的符号。
-:
标明小数点位置。
,:
用逗号分隔左右数字。
!
:
将小写字母转换为大写字符。
@3,10GET某1DEFAULT0PICTURE“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命令相似,此外还有关于字体,颜色设置的选项。
若发出有SETDEVICETOPRINTER命令,输出到打印机,否则输出至屏幕上显示。
本语句常与@GET语句合用,合用时,行号、列号指SAY内容显示所在行、列号,GET变量内容框将放置在SAY内容之后。
其他常用命令
1.SETRELATION意义:
将当前数据库和“别名”工作区中的表文件关联在一起,当前表文件称为主动表文件,“别名”工作区中的表文件称为被关联表文件,每当主动表文件中指针移动时,被关联表文件中指针也相应移动。
SETRELATIONTO字段名INTO别名[ADDITIVE]命令中选用的“字段名”必须同时包含在两个表文件中,且被关联表必须以该字段建立索引文件并打开为主索引文件。
每当主动表文件中记录指针移动时,被关联表中记录指针根据主索引文件指引指向与之相匹配(索引字段值等于主动表当前记录该字段的值)的第一条记录。
若找不到匹配记录,则指针将指向文件尾,EOF()为真(.T.)
如命令无ADDITIVE选项,在建立关联时将取消当前数据库与其他数据库的任何关联,仅保留一个新关联。
而选了此选项,则原有关联均保留,增加一个新关联。
要注意的是,如果对应主动表中某记录在被关联表中找不到匹配记录时,主动表中数据被改为0。
例5.11中如果调价表中商品包括商品表中
全部商品,利用此命令程序可修改为:
USE调价&&第一个打开表默认置于1号工作区INDE某ON商品代码TOINDE某1SELECT2USE商品
SETRELATIONTO商品代码INTO调价SCAN
REPLACE单价WITH调价.新单价,金额WITH单价某数量ENDSCAN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 命令 函数 程序 语句 大全