VF中常用的函数
1、CREATE
作用:建立一个新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写
2、MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND
作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。格式:APPEND [BLANK
4、INSERT
作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]
说明:INSERT 在当前记录后插入一记录;
5、BROWSE
作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE
6、USE
作用:打开和关闭表文件。
格式:USE [<文件名>]
USE
说明:前一个命令用来打开<文件名>指定的表文件,该表如有备注型字段,则同时打开相应
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|TO FILE <文件>]
说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:RECORD n
8、记录的定位
作用:用记录指针(POINTER)定位记录。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,
BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫
相对定
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后9、CHANGE和EDIT
作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [<范围>] [FIELDS <字段名表>] [WHILE <条件>] [FOR <条件>] 10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS <字段名表>]
10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS <字段名表>]
11、REPLACE
作用:用表达式的值代替命令中与之相对应的字段的内容。
格式:REPLACE [<范围>] <字段1> WITH <表达式1>[,<字段2> WITH <表达式2>] [FOR<条件
12、DELETE、PACK、ZAP和RECALL
作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录13、SORT和INDEX
作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式函数
二、常用函数
1、数学函数
函数用途
ABS(<数值表达式>)绝对值,|x|
CEILING(<数值表达式>)>=自变量的最小整数
EXP(<数值表达式>)对基E的幂,e=2.71828
FLOOR(<数值表达式>)<=自变量的最大整数
INT(<数值表达式>)取整(舍尾)自变量
LOG(<数值表达式>)自变量的自然对数,ln x
LOG10(<数值表达式>)自变量的普通对数,lg x
MAX(<表达式1>,<表达式2>)两个值的最大值
MIN(<表达式1>,<表达式2>)两个值的最小值
MOD(<数值表达式1>,<数值表达式2>)求余数
RAND([<数值表达式1>])返回伪随机数
ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量
SIGN(<数值表达式>)自变量的符号
SQRT(<数值表达式>)平方根(正根)
2、字符串操作函数
函数用途
&<内存变量> 用于代替内存变量内容
LEN(<字符串表达式>)返回字符串表达式的字符个数
SPACE(<数值表达式>)生成空格
SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字
符串表达式第n个开始,总长为L的字符串
LOWER(<字符串表达式>)将字符串字母转换成小写字母
UPPER(<字符串表达式>)将字符串字母转换成大写字母
TRIM(<字符串表达式>)删除字符串尾空格
ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码
CHR(<数值表达式>)将数值表达式转换成字符
AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])确定字符串表达式1在字符
串表达式2中的位置,n为字符串表达式第几次出现
STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值
表达式总长,n为小数位数
VAL(<字符串表达式>)将数字字符串转换为数字
TYPE(<表达式>)检测表达式值的数据类型
LTRIM(<字符串表达式>)删除字符串左部空格
RTRIM(<字符串表达式>)删除字符串右部空格
LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数RIGHT(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数用途
BOF([<工作区号或别名>])查表文件开始函数
EOF([<工作区号或别名>])表文件结尾测试函数
RECNO([<工作区号或别名>])测试当前或指定工作区表的当前记录号
DELETED([<工作区号或别名>])记录删除测试函数
FILE(<"字符串">)测试文件是否存在函数
DBF([<工作区号或别名>])检测表的文件名函数
4、日期、时间函数
函数用途
DATE()查系统当前日期函数
TIME([<数值表达式>])查系统当前时间函数
YEAR(<日期型表达式>|<日期时间型表达式>)由日期查年函数
MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数
CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数
DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数
DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数CDOW(<日期型表达式>|<日期时间型表达式>)从日期查星期名函数
DTOC(<日期型表达式>|<日期时间型表达式>)日期转换为字符函数
CTOD(<字符串表达式>)字符串转换为日期函数
CTOT(<字符串表达式>)返回日期时间值函数
TTOC(<日期时间型表达式>)返回字符值
5、显示、打印位置函数
函数用途
ROW()判断光标行位置函数
COL()判断光标列位置函数
INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等
待击键的时间
6、其他函数
函数用途
DISKSPACE()返回默认磁盘驱动器中可用字节数函数
OS()检测操作系统名称的函数
VERSION()返回VFP版本号的函数
三、主要程序语句
1、条件判断语句
格式:(1)IF <条件>
<命令语句组>
ENDIF
说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,
而执行ENDIF后的语句。
(2)IF <条件>
<命令语句组1>
ELSE
<命令语句组2>
ENDIF
说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。
(3)IF <条件1>
IF <条件2>
<命令语句组1>
ELSE
<命令语句组2>
ENDIF
ELSE
<命令语句组N>
ENDIF
说明:进行多重条件的嵌套选择。
(4)DO CASE
CASE <条件1>
<命令语句组1>
CASE <条件2>
<命令语句组2>
CASE <条件3>
<命令语句组3>
CASE <条件N>
<命令语句组N>
[OTHERWISE]
[<命令语句组N+1>]
ENDCASE
说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。
2、循环语句
格式:(1)DO WHILE <条件>
<命令语句组>
[LOOP]
<命令语句组>
[EXIT]
<命令语句组>
ENDDO
说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束循环。
(2)SCAN
<命令语句组>
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表件记录完为止。
VFP常用函数使用说明
1、数值运算函数
函数操作例结果
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
2、字符中操作函数
函数名操作例结果
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
3、日期和时间函数
函数名操作例结果
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
4、数据类型转换函数
函数名操作例结果
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","NO") YES
5、检测函数
函数名操作例结果
RECNO()检测当前记录号RECNO()1 RECCOUNT()检测当前记录数RECCOUNT()12 BOF()开始记录BOF()1
EOF()最后记录EOF()12
FOUND()返回查找结果FOUND() .T.
ROW()返回当前行坐标ROW()1
COL()返回当前列坐标COL()1
SYS(N)返回系统状态SYS(13)联机状态