用 COPY TO ARRAY从当前记录中取所有字段的值赋给数组: 如: copy to array aa
(数组长度、类型自动与表中全部字段相同) 把数组中的数据传给当前表中的当前记录: gather from 数组名 [fields 字段名表] 用数组向当前表添加记录:
append from array 数组名 [for 条件] [[fields 字段名表] (用二维数组可以同时添加多条记录) 数组处理的常用函数:
排序SORT(),搜索ASCAN(),删除ADEL(),插入AINS() (4) 记录:
表中的一行,由字段组成。 (5) 对象:
对象是类的一个实例,类是对拥有数据和一定行为特征的对象集合的描述。VFP对象可以是表单、表单集、控件。
2.2 VFP 6.0的语言成分
1. 命令 (了解)
即:由用户发出的、指示VFP进行某种操作的指令。 如 USE aaa & 打开 一个名为 aaa.dbf的数据表 2. 函数 (了解)
即:一个预先编制好的模块,可由VFP程序在任何地方调用。 函数的使用方法:名称、功能、参数、返回值
几个常用函数 (全部记住)
11
名称 命令格式
字符SUBSTR( expC,expN1[,expN2 ]) 串截
取函LEFT( expC,expN ) 数
RIGHT( expC,expN )
字符串查
找函AT ( expC1 , expC2 [ expN ]) 数
大小LOWER( expC ) 写字母转
换函UPPER( expC ) 数
MAX(exp1,exp1[,exp3,?]) 数值MIN(exp1,exp1[,exp3,?]) 函数 ABS( expN )
INT( expN )
压缩
空格ALLTRIM( expC ) 函数
STR( expN1[,expN2][,expN3]) 类型CTOD( expC ) 转换
函数VAL(
expC ) DTOC( expD ) DATE() 日期
时间DATETIME() 函数
YEAR( expD )
数据RECNO( ) DBC( ) SEEK( )
示例
? SUBSTR(“ABCDEFG”,2,4) 结果是: BCDE
? LEFT(“ABCDEFG”,2) 结果是: AB ? RIGHTT(“ABCDEFG”,4)
结果是: DEFG
? AT(“B”, “ABCDE”) 结果是: 2
? AT(“A”, “ABCDEASD” ) 结果是: 1
? AT(“A”,“ABCDEASD”,2 ) 结果是: 6
? LOWER(“DFGHa”) 结果是: dfgha ? UPPER(“asdf”) 结果是: ASDF ? MAX(15,23,4,56) 结果是: 56 ? MIN(15,23,4,56) 结果是: 4 ? ABS(-15.83) 结果是: 15.83 ? INT(25.62) 结果是: 25 ? ALLTRIM(\
结果是: AD B G
? STR(789.678,6,2) 结果是: 789.68 ? CTOD(“98/10/15”)
结果是: 98/10/15
? VAL(\结果是: 123.45 ? DTOC({98/12/15})
结果是: 98/12/15
? DATE() 结果是: 2000/03/15 ? DATETIME()
结果是: 2000/03/15 10:15:30 ? YEAR({87/03/25}) 结果是: 1987 其它LEN( )
DELETED()
12
库函EOF( ) BOF( ) FOUND( ) 函数 EMPTY(exp) INLIST(,,) 数 RECCOUNT( ) SELECT( ) BETWEEN(,,) IIF(,,)
TABLEREVERT( ) TABLEUPDATE( ) 自定义函数:
由用户为自己的应用程序创建的专用函数,可作为独立的程序文件保存在磁盘上也可作为过程文件存放在其他程序中。 3. 表达式
即:变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。
表达式的类型: (出现一个表达式,知道他的类型) 算术表达式:由算术操作符和数值型数据构成的表达式。 字符表达式:由字符操作符和字符型数据构成的表达式。 日期表达式:由日期操作符和日期、时间型数据构成的表达式。 逻辑表达式:由逻辑操作符和逻辑型数据构成的表达式。 名称表达式:
由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。 例: DBF_NAME=\学生成绩登记表\ USE (DBF_NAME)
宏替换:用宏替换符号 & 表示,它与名称表达式具有相似的作用。 例: 已知 A=\ 则 C&A&B=\ 4. 操作符(记忆) 数值操作符 ( ) ^ 或 ** 关系操作符 逻辑操作符
<
<=
* >
/
%(取余数) AND(和)
+
- OR (或)
LOCK( ) FSIZE( )
CHR() TAG()
ASC() INKEY()
>= <> 或 != 或 # = =
()表达式分组 NO或!(非)
13
日期和时间操
+ - 注意: 日期型: 天数 时间型: 秒数
作符
字符操作符: + - $
圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、
两个特殊的操事件、方法。 作符 范围转变操作符(::):提供了从一个子类中调用一个父类的
方法。
2.3 程序设计基础
1. 基本概念(了解、知道)
程 序:为解决某一问题而设计的一系列指令。 主程序:通常被用户直接执行的程序。 子程序:在程序中被调用的程序。
源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。 目标程序: 是源程序经过编译后所产生的机器语言程序。 可执行程序:
源程序被编译后产生的可被机器直接执行的程序,具有 .EXE 扩展名。在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。 应用程序:
指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP中是指一组 Visual FoxPro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。 例行程序:
按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。 2. 程序控制 (全部掌握、会应用) (1) 顺序语句
即按程序中的语句顺序依次执行。 (2) 分支语句
14
条件语句:
情况语句:
DO CASE
CASE 情况1
IF 条件
命令组1 命令组1
CASE 情况2 [ ELSE
命令组2 命令组2 ]
?
ENDIF
[OTHERWISE
其它命令组 ]
ENDCASE
3. 循环语句(掌握、会应用)
FOR 变量 = 初值 TO 终值 [STEP 步长 ]
FOR
命令组
循环语句(预知循环次数)
ENDFOR | NEXT DO WHILE 条件
DO WHILE
命令组
循环语句(未知循环次数)
ENDDO
SCAN [ 范围 ] [FOR | WHILE 条件 ]
SCAN
命令组
循环语句(针对全部记录)
ENDSCAN
循环结构中的LOOP命令和EXIT命令: LOOP是短路语句,表示从此开始下一次循环; EXIT是退出语句,表示跳出循环。 4. 子程序 (应用)
子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。
15