VFP命令、函数及程序语句大全<1>
一、VFP常用命令分类表
类别 | 命令 |
建立文件类 | CREATE,MODIFY,COPY,SAVE等 |
数据库操作类 | USE,CLOSE,COPY,MODIFY STRUCTURE等 |
数据编辑类 | BROWSE,EDIT,CHANG,REPLACE,UPDATE等 |
记录指针操作类 | GOTO,LOCATE,SEEK,FIND,SKIP等 |
记录操作类 | APPEND,DELETE,INSERT等 |
数据显示类 | BROWSE,LIST,DISPLAY等 |
数据统计类 | SUM,COUNT,AVERAGE,TOTAL等 |
存变量操作类 | ACCEPT,INPUT,READ,SAVE等 |
程序控制类 | DO,DO WHILE…ENDDO,IF…ENDIF等 | 逗号分割的字符串转数组
系统设置类 | SET TALK,SET DEFAULT TO等 |
二、 命令格式
VFP命令一般由命令动词和控制短语构成。一般格式:命令动词[FROM<源文件>][TO<目标文件>][记录范围][FOR/WHILE<条件>][FIELDS<字段名表>]( [ ]表示可选,<>表示必选, / 表示或选)
(1)APPEND FROM C:\RSDA.DBF FOR 基本工资>100 FIELDS 编号,姓名,职称,基本工资。(2)COUNT FOR 职称="高工"TO GG
控制短语规定了对数据库操作的限制条件:
1.指向输入输出目标
FROM/TO
APPEND FROM,COPY FILE TO <目标文件>
2.限制记录范围
ALL 所有记录
NEXT<n> 本记录后的第几个记录
RECORD<1> 第1个记录
3.选择字段
FIELDS<字段表>选择输入/输出的字段。
4.限制条件
FOR/WHILE<条件>
FOR 基本工资>100 .AND.基本工资<200
三、 命令格式规则
命令的行为单位,一行书写不完,在未尾加上“;”第二行接着写。必须以命令动词开头,动词后的短语顺序不限。命令中大小写字母等效。命令动词和关键字可以只写前4个字符。
不得用命令动词或关键字作为自定义变量、 函数、程序名。
一.表结构的操作
1.创建表结构
命令1:CREATE [路径][表名]
命令1:CREATE [路径][表名]
命令2:CREATE [新表名] FROM [旧表名]
命令3:COPY STRUCTRUE TO [路径][表名]
2.表结构的显示
命令:LIST STRUCTURE
DISPLAY STRUCTURE
3.表结构的修改
命令:MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
二.表文件的打开和关闭
1.打开
命令:USE 表名 [INDEX 索引文件名] [EXCLUSIVE]
2.关闭
命令:USE
三.记录指针的定位
1. 绝对定位
命令:GO[TO] n|TOP|BOTTOM
说明: n定位到第n条记录,TOP定位到最上面一条记录,BOTTOM定位到最下端一条记录
2.相对定位
命令:SKIP [+|-]n
命令:SKIP [+|-]n
说明:它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一条记录。
四.表数据的添加
1.记录的追加
命令:APPEND [BLANK]
APPEND BLANK
2.记录的插入
命令:INSERT [BLANK][BEFORE]
3.用复制方法建新表记录
命令:COPY TO 新表名 [范围][FIELDS 字段表][FOR 条件]
4.从其他表取数据
命令:APPEND FROM 表名 [FOR 条件]
五.表记录的显示
1.浏览显示
命令:BROWSE [FIELDS 字段表][FOR 条件]
说明:此命令的结果以浏览窗口的形式出现,具有修改功能。
2.显示输出
命令:LIST|DISPLAY [OFF] [<范围>] [FIELDS] <表达式表> [WHILE <条件>] [FOR <条件>] [TO PRINT|TO FILE <文件>]
说明:(1)命令带OFF参数表示不显示记录号
(2)范围指定对哪些记录进行操作,(范围包括:RECORD n :第几号记录;NEXT n: 当前记录开始的几个记录;REST: 自当前记录开始至文件末尾的所有记录;ALL 所有的记录。不选范围则隐含范围为ALL)
(3)字段名表指在结果中需要出现的字段名,字段名与字段名之间用逗号分隔。不带时指显示所有字段。
(4)WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查;FOR后的条件查所有满足条件的记录。
(5)TO PRINT和TO FILE <文件>分别表示将显示结果在打印机上打印出来和将显示结果输出到文件。
(6)DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示,并且在该命令中,如果省略范围仅显示当前记录。LIST不分屏,如果省略范围显示所有记录。
六.修改记录内容
1. 编辑或修改的特定记录
命令:CHANG|EDIT [范围][[FIELDS]字段表][FOR 条件] [WHILE <条件>]
2.成批自动替换记录
命令:REPLACE [范围] 字段 WITH 表达式 [FOR 条件]
七.删除记录
1.逻辑删除
命令:DELETE [范围][FOR 条件] (打删除标记)
2.物理删除
命令: PACK (删除有删除标记的记录)
ZAP (删除所有记录)
八.数据表排序
1.物理排序,生成一个新的表文件。
1.物理排序,生成一个新的表文件。
命令:SORT TO 新表名 ON 字段名 [/A][/D] [范围][FOR 条件]
2.逻辑排序,生成一个索引文件。
(一)标准索引文件:IDX
命令:
新建索引:INDEX ON 字段名表达式 TO 索引文件名
同时打开:USE 表名 INDEX 索引文件名
之后打开:SET INDEX TO 索引文件名
重新索引:INDEX ON 字段名表达式 TO 索引文件名
关闭索引:SET INDEX TO
例子:对当前数据表以“应发合计”从大到小排列。
INDEX ON -应发合计 TO GZ
(二)复合索引文件:CDX
命令:
新建索引:INDEX ON 字段名 TAG 标记 [ASCEDING|DESCENDING]
同时打开:USE 表名 ORDER [TAG] 标记
改变索引:SET ORDER TO [TAG] 标记
重新索引:INDEX ON 字段名 TAG 标记
关闭索引:SET ORDER TO
删除索引:DELETE TAG 标记
九.查记录
1.顺序查
命令:LOCATE FOR 条件 [范围]
继续查命令:CONTINUE
2.索引查
说明:根据当前的索引来查记录。在使用命令前先要按准备查的字段建立索引或排序
命令:FIND 字符串
SEEK 表达式
用FOUND()检查到否
3.查函数
说明: 在使用命令前先要按准备查的字段建立索引或排序
函数:SEEK()
十.统计数据表记录个数
命令:COUNT [范围][FOR 条件][TO 变量]
十一.数据表数值字段的求和
命令:SUM [范围][FOR 条件][TO 变量]
十二.算术平均值的计算
命令:AVERAGE [范围][FOR 条件][TO 变量]
十三.多功能计算
命令:CALCULATE 表达式 [范围][FOR 条件][TO 变量]
一.数值运算函数
函数 | 操作 | 例 | 结果 |
SQRT(x) | 求平方根 | SQRT(9) | 3 |
INT(x) | 取整数 | INT(3.14) | 3 |
ROUND(x) | 四舍五入 | ROUND(3.14159,4) | 3.1416 |
MOD(x,y) | 求X除以Y的余数 | MOD(25,4) | 1 |
MAX(x,y) | 求X,Y中的最大值 | MAX(7,8) | 8 |
MIN(x,y) | 求X,Y中的最小值 | MIN(1,2,3) | 1 |
二.字符中操作函数
函数名 | 操作 | 例 | 结果 |
UPPER(S) | 小写字母 | UPPER(abc) | ABC |
LOWER(S) | 大写字母 | LOWER(ACD) | acd |
LEN(S) | 求字符串的长度 | LEN("中国1号") | 7 |
AT(S1,S2) | 在字符串S2,字符串S1 | AT("H","CHINA") | 2 |
SUBSTR(S,I,N) | 在S字符串中的第I个字符起取N个字符 | SUBSTR('TECHNOLO',3,3) | CHN |
LEFT(S,N) | 从字符串S左边取N个字符 | LEFT(“中国人”,4) | 中国 |
RIGHT(S,N) | 从字符串S右边取N个字符 | S=‘12345’ RIGHT(S,3) | 345 |
SPACE(N) | 生成N个空格 | "合计"+SPACE(2)+"123" | 合计123 |
TRIM(S) | 消除字符串尾部空格 | TRIM("姓名 ") | 姓名 |
ALLTRI(S) | 消除字符串中所有空格 | ALLTRIM("李 丽") | 李丽 |
STUFF(S1,N1,N2,S2) | 用字符串S2替换S1中第N1个字符起的N2个字符 | STUFF("NOW",2,1,"E") | NEW |
& | 宏替换 | P=“G2” USE &P | USE G2 |
三.日期和时间函数
函数名 | 操作 | 例 | 结果 |
DATE() | 求当前日期 | DATE() | 2001/11/12 |
DATETIME() | 求当前日期和时间 | DATETIME() | 2001/11/12/0:22:33am |
YEAR(D) | 求年份 | YEAR(DATE()) | 2001 |
MONTH(D) | 求月份(数值) | MONTH(DATETIME()) | 11 |
CMONTH(D) | 求月份(字符) | MONTH(DATETIME()) | Novenber |
DAY(D) | 求日期 | DAY(DATE()) | 12 |
DOW(D) | 求星期几(数值) | DOW(DATE()) | 1 |
CDOW(D) | 求星期几(英文) | CDOW(DATE()) | sunday |
TIME(D) | 求当前时间 | TIME(DATE()) | 10:20:38am |
四.数据类型转换函数
函数名 | 操作 | 例 | 结果 | |||
ASC(S) | 求第一个字符串的ASCII码 | ASC("what") | 87 | |||
CHR(N) | 求ASCII码的字符 | CHR(87) | w | |||
STR(R,L,D) | 数值转换成字符,L为长度,D为小数位数 | X=3.1415 STR(X,6,2) | 3.14 | |||
VAL(S) | 字符串转换为数值 | VAL("123") | 123.00 | |||
CTOD(S) | 字符串转日期 | CTOD('11/01/2002') | 11/01/2002 | |||
DTOC(D) | 日期转换成字符串 | DTOC(DATE()) | 11/01/2002 | |||
DTOS(D) | 把日期转成年月日式的字符串 | DTOS(DATE()) | 20021101 | |||
CTOT(C) | 字符串转成日期时间型 | CTOT(11/01/2002 10:30:50am) | 11/01/2002 10:30:50am | |||
DTOT(D) | 日期型转为日期时间型 | DTOT(DATE()) | 11/25/2001 00:00:01am | |||
TTOC(T) | 日期时间型转为字符型 | TTOC(DATETIME()) | 11/25/2001 00:00:01am | |||
TTOD(T) | 日期时间型转为日期型 | TTOD(DATETIME()) | 11/25/2001 | |||
IIF(LE,E1,E2) | 逻辑判断 | IIF(A>0,"YES"," | ||||
五.检测函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论