型 Character Currency Date 整型 Integer DateTime 通用型 General Logical 备注型 Memo Numeric 仅用于字段的双精度型 浮点型 Double Float 数据类型 3. 数据容器 VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。 (1) 常量(constants): 一个在操作过程中保持不变的数值或字符串。 常用的常量类型 常量类型 表示方式 数值型常量 -25.36 字符型常量 \中国\逻辑型常量 .T. .F. 日期型常量 {^2005/07/10} (2)变量(variables): 是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。 变量的命名习惯: 类型变量代号 如:cStud 、nCj 、dCsrq —— 分别代表一个字符型、数值型、日期型的变量名 变量的赋值方式: 1) 用 STORE 命令 如:STORE \王兰\2) 用赋值操作符 = 如:cStud = \王兰\变量的作用域: 即变量起使用的有效范围。 变量作用域 定义作用域的关键字 特点 只能在一个函数或过程中被访问,其他过程或函数不局部变量 LOCAL 能访问此变量的数据。当其所属程序停止运行时,局local variable(本地变量) 部变量将被释放。 私有变量在 VFP 中是默认的,不需要特殊的关键字定义。但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE 关键字予以声明,以PRIVATE 限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。 可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享PUBLIC 数据,在命令窗口中创建的任何变量自动具有全局属性。 私有变量 private variable 公共变量 public variable 变量的访问: 当变量和字段同名时,字段有优先被访问权。要在变量名前加 m. 或 m -> 以示区别,如 m.cStud (3)数组(array): 是存储在一个变量中由单个变量名引用的有序数据集合。在 VFP中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。 数组元素的标识:通过一个数值下标来引用,如 AA[2],AA[2,3] 数组类型的声明: 私有数组 ——用DECLARE 或 DIMENSION定义 全局数组 ——用PUBLIC命定义 局部数组 ——用LOCAL定义 数组元素的赋值: 用赋值语句: 如 AA=45 用SCATTER从当前记录中取特定字段的值赋给数组: 如: scatter fields xh, xm, xb to aa (数组长度、类型自动与所给字段相同) 用 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程序在任何地方调用。 函数的使用方法:名称、功能、参数、返回值 几个常用函数 名称 字符串截取函数 字符串查找函数 大小命令格式 SUBSTR( expC,expN1[,expN2 ]) LEFT( expC,expN ) RIGHT( expC,expN ) 示例 ? 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 AT ( expC1 , expC2 [ expN ]) LOWER( expC ) 写字母转换函数 UPPER( expC ) ? UPPER(“asdf”) 结果是: ASDF MAX(exp1,exp1[,exp3,…]) 数值函数 MIN(exp1,exp1[,exp3,…]) ABS( expN ) INT( expN ) 压缩空格函数 ALLTRIM( expC ) STR( expN1[,expN2][,expN3]) 类型转换函数 CTOD( expC ) VAL( expC ) DTOC( expD ) 日期时间函数 RECNO( ) 数据库函数 EOF( ) DATE() DATETIME() YEAR( expD ) DBC( ) BOF( ) SEEK( ) FOUND( ) SELECT( ) LOCK( ) FSIZE( ) ? 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( ) EMPTY(exp) 其它BETWEEN(,,) 函数 CHR() TAG() DELETED() INLIST(,,) IIF(,,) ASC() INKEY() RECCOUNT( ) TABLEREVERT( ) TABLEUPDATE( ) 自定义函数: 由用户为自己的应用程序创建的专用函数,可作为独立的程序文件保存在磁盘上也可作为过程文件存放在其他程序中。 3. 表达式 即:变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。 表达式的类型: 算术表达式:由算术操作符和数值型数据构成的表达式。 字符表达式:由字符操作符和字符型数据构成的表达式。 日期表达式:由日期操作符和日期、时间型数据构成的表达式。 逻辑表达式:由逻辑操作符和逻辑型数据构成的表达式。 名称表达式: 由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。 例: DBF_NAME=\学生成绩登记表\USE (DBF_NAME) 宏替换:用宏替换符号 & 表示,它与名称表达式具有相似的作用。 例: 已知 A=\则 C&A&B=\4. 操作符 数值操作符 关系操作符 逻辑操作符 日期和时间操作符 字符操作符: ( ) < ^ 或 ** <= * > / >= %(取余数) + - <> 或 != 或 # = = AND(和) OR (或) ()表达式分组 + + - - NO或!(非) 注意: 日期型: 天数 时间型: 秒数 $ 圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、事件、方两个特殊的操法。 作符 范围转变操作符(::):提供了从一个子类中调用一个父类的方法。 2.3 程序设计基础 1. 基本概念 程 序:为解决某一问题而设计的一系列指令。 主程序:通常被用户直接执行的程序。 子程序:在程序中被调用的程序。 源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。 目标程序: 是源程序经过编译后所产生的机器语言程序。 可执行程序: 源程序被编译后产生的可被机器直接执行的程序,具有 .EXE 扩展名。在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。 应用程序: 指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP中是指一组 Visual FoxPro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。 例行程序: 按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。 2. 程序控制 (1) 顺序语句 即按程序中的语句顺序依次执行。 (2) 分支语句 条件语句: IF 条件 命令组1 [ ELSE 命令组2 ] ENDIF 情况语句: DO CASE CASE 情况1 命令组1 CASE 情况2 命令组2 … [OTHERWISE 其它命令组 ] ENDCASE 3. 循环语句 FOR 循环语句(预知循环次数) FOR 变量 = 初值 TO 终值 [STEP 步长 ] 命令组 ENDFOR | NEXT DO WHILE 条件 命令组 ENDDO SCAN [ 范围 ] [FOR | WHILE 条件 ] 命令组 ENDSCAN DO WHILE 循环语句(未知循环次数) SCAN 循环语句(针对全部记录) 循环结构中的LOOP命令和EXIT命令: LOOP是短路语句,表示从此开始下一次循环; EXIT是退出语句,表示跳出循环。 4. 子程序 子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。 子程序 自定义函数 过程 总是被其他程序调用而不能以一个独立的文件储存,也可是一个程序段,是程序的单独执行,可以调用其他子特点 包含在调用程序中,必须返回一组成部分,一般放在程序程序,不一定要返回一个个值。 的最后。 值。 与程序相同,只是在子程序FUNCTION 函数名 的结尾加需一条返回命令: 或: MODIFY COMMAND 函数RETURN [ 表达式 |TO 名 PROCEDURE 过程名 定义MASTER |TO 程序文件PARAMETERS 数表 PARAMETRS 参数表 方法 名] 命令组 命令组 RETURN 表达式 RETURN 注:用此命令定义的函数以独立的文件形式储存。 调用DO 子程序名[WITH 参方法 数表 ] = 函数名 ( 参数表 ) DO 过程名 WITH 参数表 3. 创建应用程序 方法一: 在命令窗口中输入: MODIFY COMMAND 程序名 方法二:
好文档 - 专业文书写作范文服务资料分享网站