1、VF 常用命令和程序命令一、主要命令:1、CREATE作用:建立一个新的表。格式:CREATE |?(注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。)说明:文件指建立以.dbf 为扩展名的 VFP 数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。2、MODIFY STRUCTURE作用:显示表文件结构,并允许修改此表的结构。格式:MODIFY STRUCTURE说明:只有在用 USE
2、 命令打开表文件以后,才能显示或修改表文件的结构。3、APPEND作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。格式:APPEND BLANK说明:在 APPEND 命令后面加上 BLANK 参数表示在当前表的尾部添加一条空白记录。无BLANK 参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。4、INSERT作用:在表文件中间插入一个新记录。格式:INSERT BEFORE BLANK说明:INSERT 在当前记录后插入一记录;INSERT BEFORE 在当前记录前插入一记录;INSERT BEFORE BLANK 在当前记录前插入一空记录
3、。5、BROWSE作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。格式:BROWSE6、USE作用:打开和关闭表文件。格式:USE USE说明:前一个命令用来打开指定的表文件,该表如有备注型字段,则同时打开相应的备注文件(.fpt 文件);后一个命令关闭当前打开的表文件。7、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|
4、TO FILE 说明:命令带 OFF 参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:RECORD n 第几号记录、NEXT n 当前记录开始的几个记录、 REST 自当前记录开始至文件末尾的所有记录、ALL 所有的记录。不选范围则隐含范围为 ALL;FIELDS 后跟字段名,字段名与字段名之间用逗号分隔。WHILE 后跟条件,FOR 后面也跟条件,区别是,WHILE 后的条件如果满足,便停止查找;FOR 后的条件查找所有满足条件的记录。TO PRINT 和 TO FILE 分别表示将显示结果在打印机上打印出来和将显示结果输出到文件。DISPLAY 命令在显示记录满屏后,要求用户按
5、任意键继续显示,并且在该命令中,如果省略范围仅显示当前记录。格式中,下面两个命令分别为显示表结构(STRUCTURE)和工作状态(STATUS)。8、记录的定位作用:用记录指针(POINTER) 定位记录。格式:GOTO RECORD n|TOP|BOTTOMnSKIP +|-说明:第一个命令又叫绝对定位,其中,RECORD n 定位到 n 号记录,TOP 定位到第 1个记录,BOTTOM 定位到最后一个记录。第二个命令定位到第 n 个记录,n 是一个数值。第三个命令又叫相对定位,它以当前记录为基准前移(-)或后移(+)n 个记录,不选任选项,则默认记录指针后移一个记录。9、CHANGE 和
6、EDIT作用:显示要编辑或修改的字段。格式:CHANGE|EDIT FIELDS WHILE FOR 10、BROWSE作用:打开一个“浏览“ 窗口,供用户浏览或修改记录。格式:BROWSE FIELDS 11、REPLACE作用:用表达式的值代替命令中与之相对应的字段的内容。格式:REPLACE WITH , WITH FOR WHILE12、DELETE、PACK 、ZAP 和 RECALL作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。格式:DELETE WHILE FOR (特例:DELETE FILE FILENAME.DBF,该命令删除指
7、定的表文件)PACKZAPRECALL FOR WHILE13、SORT 和 INDEX作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式的值从小到大排列,并存入 TO 后指定的索引文件名的文件或复合索引文件的一个标识中。格式:SORT TO ON /A /C /D, /A /C /D.ASCENDING|DESCENDING FOR WHILE FIELDSINDEX ON TO INDEX ON TAG OF FOR 说明:第 1 个命令中,/A 按字段名升序排序,/D 按字段名降序排序,/C 忽略大小写,针对字符型关键字而言,ASCENDING 和 DESC
8、ENDING 分别表示升序和降序。第 1 个命令建立.dbf表文件,第 2 个命令建立.idx 单一索引文件,第 3 个命令建立.cdx 复合索引文件(Compound Index)。14、USE INDEX 、SET INDEX TO 和 SET ORDER TO作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。格式:USE INDEX SET INDEX TO SET ORDER TO (特例:重新索引命令: REINDEX)15、FIND 、SEEK 和 LOCATE 及 CONTINUE作用:前两个命令 FIND 和 SEEK 是在一个已经建立了索引文件的表中,定位到
9、关键字中的内容与命令行中字符串相同的第一个记录。后一个命令在用 USE 打开表文件以后,直接查询表中字段内容。格式:FIND |SEEK LOCATE FOR WHILECONTINUE说明:FIND 命令与 SEEK 命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE 命令找到一个匹配记录后,可用 CONTINUE 命令搜索表的剩余部分来寻找其他匹配的记录。16、COUNT作用:统计当前表文件中符合条件的记录数。格式:COUNT FOR WHILE TO 说明:内存变量名可用除参数外的任意字符。17、SUM作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式
10、累加求和。格式:SUM 数值 TO FOR WHILE18、AVERAGE作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。格式:AVERAGE 数值 TO FOR WHILE二、常用函数 1、数学函数函数 用途ABS( ) 绝对值,|x|CEILING() =自变量的最小整数EXP() 对基 E 的幂,e=2.71828FLOOR() ) 取整(舍尾)自变量LOG() 自变量的自然对数,ln xLOG10( ) 自变量的普通对数,lg xMAX(,) 两个值的最大值MIN(,) 两个值的最小值MOD(,) 求余数RAND() 返回伪随机数ROUND(,) 四舍五入
11、第一个自变量SIGN( ) 自变量的符号SQRT() 平方根(正根)2、字符串操作函数函数 用途& 用于代替内存变量内容LEN() 返回字符串表达式的字符个数SPACE() 生成空格SUBSTR(,) 求子字符串,从指定的字符串表达式第 n 个开始,总长为 L 的字符串LOWER() 将字符串字母转换成小写字母UPPER() 将字符串字母转换成大写字母TRIM( ) 删除字符串尾空格ASC( ) 返回字符串表达式最左边的第一个字符的 ASCII 码CHR() 将数值表达式转换成字符AT(,) 确定字符串表达式 1 在字符串表达式 2 中的位置,n 为字符串表达式第几次出现STR(,) 将数值转
12、换为字符串,L 为数值表达式总长,n 为小数位数VAL() 将数字字符串转换为数字TYPE() 检测表达式值的数据类型LTRIM( ) 删除字符串左部空格RTRIM() 删除字符串右部空格LEFT( ,) 取字符串左边部分字符,n 为返回的字符个数RIGHT(, ) 取字符串右边部分字符,n 从右边截取字符个数3、表(.dbf)操作函数函数 用途BOF() 查表文件开始函数EOF() 表文件结尾测试函数RECNO() 测试当前或指定工作区表的当前记录号DELETED() 记录删除测试函数FILE() 测试文件是否存在函数DBF() 检测表的文件名函数4、日期、时间函数函数 用途DATE() 查
13、系统当前日期函数TIME() 查系统当前时间函数YEAR( |) 由日期查年函数MONTH(|) 从日期查月份函数CMONTH(| ) 由日期查月份名函数DAY(|) 从日期查当月的日函数DOW(|,) 由日期查星期函数CDOW(|) 从日期查星期名函数DTOC(|) 日期转换为字符函数CTOD() 字符串转换为日期函数CTOT( ) 返回日期时间值函数TTOC() 返回字符值5、显示、打印位置函数函数 用途ROW() 判断光标行位置函数COL() 判断光标列位置函数INKEY( ) 检测用户所击键对应的 ASCII 码函数,数值表达式以秒为单位等待击键的时间6、其他函数函数 用途DISKSP
14、ACE() 返回默认磁盘驱动器中可用字节数函数OS() 检测操作系统名称的函数VERSION() 返回 VFP 版本号的函数三、主要程序语句1、条件判断语句格式:(1)IF ENDIF说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,而执行 ENDIF 后的语句。(2)IF ELSEENDIF说明:如果条件为真,执行命令语句组 1,否则执行命令语句组 2。(3)IF IF ELSEENDIF.ELSEENDIF说明:进行多重条件的嵌套选择。(4)DO CASECASE CASE CASE .CASE OTHERWISEENDCASE说明:依次判断条件,转入条件为真的命
15、令语句组中执行。当所有条件都不成立时,若有OTHERWISE 项,则执行命令语句组 N+1,否则执行 ENDCASE 后面的语句。2、循环语句格式:(1)DO WHILE LOOPEXITENDDO说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束循环。(2)SCANENDSCAN说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文件记录完为止。VFP 常用函数使用说明1、数值运算函数函数 操作 例 结果SQRT(x) 求平方根 SQRT(9 ) 3INT(x) 取整数 INT(3.14) 3ROUND(x) 四舍五入 ROUND(3.
16、14159,4) 3.1416MOD(x,y) 求 X 除以 Y 的余数 MOD(25,4) 1MAX(x,y) 求 X,Y 中的最大值 MAX(7,8) 8MIN(x,y) 求 X,Y 中的最小值 MIN(1,2,3) 12、字符中操作函数函数名 操作 例 结果UPPER(S ) 小写字母 UPPER(abc) ABCLOWER(S ) 大写字母 LOWER(ACD) acdLEN(S) 求字符串的长度 LEN(“中国 1 号“) 7AT(S1,S2) 在字符串 S2,找字符串 S1 AT(“H“,“CHINA“) 2SUBSTR(S,I,N) 在 S 字符串中的第 I 个字符起取 N 个字
17、符 SUBSTR(TECHNOLO,3,3) CHNLEFT( S,N) 从字符串 S 左边取 N 个字符 LEFT(“ 中国人“,4 ) 中国RIGHT(S,N) 从字符串 S 右边取 N 个字符 S=12345RIGHT(S,3) 345SPACE(N) 生成 N 个空格 “合计“+SPACE(2)+“123“ 合计 123TRIM(S) 消除字符串尾部空格 TRIM(“姓名 “) 姓名ALLTRI(S) 消除字符串中所有空格 ALLTRIM(“李 丽“) 李丽STUFF(S1,N1,N2,S2) 用字符串 S2 替换 S1 中第 N1 个字符起的 N2 个字符 STUFF(“NOW“,2
18、,1,“E“ ) NEW& 宏替换 P=“G2“USE &P USE G23、日期和时间函数函数名 操作 例 结果DATE() 求当前日期 DATE() 2001/11/12DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33amYEAR( D) 求年份 YEAR(DATE() 2001MONTH(D) 求月份(数值) MONTH(DATETIME() 11CMONTH(D) 求月份(字符) MONTH(DATETIME() NovenberDAY(D) 求日期 DAY(DATE() 12DOW(D) 求星期几(数值) DOW(DATE() 1CD
19、OW(D) 求星期几(英文) CDOW(DATE() sundayTIME(D) 求当前时间 TIME(DATE() 10:20:38am4、数据类型转换函数 函数名 操作 例 结果ASC(S) 求第一个字符串的 ASCII 码 ASC(“what“) 87CHR(N) 求 ASCII 码的字符 CHR(87) wSTR(R,L,D) 数值转换成字符, L 为长度,D 为小数位数 X=3.1415STR(X,6,2) 3.14VAL(S) 字符串转换为数值 VAL(“123“) 123.00CTOD(S) 字符串转日期 CTOD(11/01/2002) 11/01/2002DTOC(D) 日期
20、转换成字符串 DTOC(DATE() 11/01/2002DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE() 20021101CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50amDTOT(D) 日期型转为日期时间型 DTOT(DATE() 11/25/2001 00:00:01amTTOC(T) 日期时间型转为字符型 TTOC(DATETIME() 11/25/2001 00:00:01amTTOD(T) 日期时间型转为日期型 TTOD(DATETIME() 11/25/2001IIF(LE,E1,E2) 逻辑判断 IIF(A0,“YES“,“NO“) YES5、检测函数 函数名 操作 例 结果RECNO() 检测当前记录号 RECNO() 1RECCOUNT() 检测当前记录数 RECCOUNT() 12BOF() 开始记录 BOF() 1EOF() 最后记录 EOF() 12FOUND() 返回查找结果 FOUND() .T.ROW() 返回当前行坐标 ROW() 1COL() 返回当前列坐