vf常用函数
- 格式:doc
- 大小:42.00 KB
- 文档页数:10
1 算术运算符:+ - * / %^ **2 关系运算符:> < >= <= != <> =3 逻辑运算符:.and. .or. .not..AND. 与:两边有一个是假值,则为假7>8.or.8<9.OR. 或:两边有一个是真值,则为真.NOT. 非:真变假,假变真4 字符运算符:+ -$+是将两个字符串连接起来例:"ABC "+"DEF" 得ABC DEF- 在连接时将前面字符串的后面的空格删除"ABC "-"DEF" 得ABCDEF$ 子串包含测试例:"ab"$"abcd"5 赋值命令STORE 8 TO X 将数值8赋给变量XX=8,Y=96 常用数值函数求绝对值函数:ABS(数) 例ABS(-8) 结果为8 SIGN()同ABS()求平方根函数:SQRT(数) 例SQRT(16) 结果为4求圆周率函数:PI()求整函数:INT(数) 例INT(3.6) 结果为3四舍五入函数:ROUND(数) 例ROUND(3.5567,1) 结果为3.6求余函数:MOD(数值1,数值2) 例MOD(10,3) 结果为1求最大值函数:MAX(数值列表) 例:MAX(567,3,7,34) 结果为567求最小值函数:MIN(数值列表) 例:MIN(567,3,7,34) 结果为37 常用字符函数求字符串长度:LEN(字符串) 例:LEN("ABCDEF") 结果为6大写转小写:LOWER(字符)小写转大写:UPPER(字符)空格生成函数:SPACE(数值) 例:SPACE(5) 生成5个空格删除左空格函数:LTRIM(字符表达式)例:TRIM("CHINA") 结果为CHIAN删除右空格函数:TRIM(字符表达式)例:TRIM("CHINA") 结果为CHIAN删除前后空格函数:ALLTRIM(字符表达式)例:TRIM(" CHINA") 结果为CHIAN从左面取子串函数:LEFT(字符表达式,长度) 例:LEFT("ABCD",2) 结果为AB从右面取子串函数:RIGHT(字符表达式,长度) 例:RIGHT("ABCD",2) 结果为CD从指定位置取子串函数:SUBSTR(字符表达式,起始位置,长度) 例:SUBSTR("ABCDEF",2,3) 结果为BCD计算子串出现的次数函数:OCCURS(字符表达式1,字符表达式2) 例:OCCURS("AB","ABCDABDEFAB") 结果为 3求子串位置函数:A T(字符表达式1,字符表达式2) 例:A T("中国",“中华人民共和中国”)结果为13求子串位置函数:A TC(字符表达式1,字符表达式2) 同上注意:A T()和A TC()的最大区别是,A TC不区分大小写字符,A T()区分大小写字母子串替换函数:STUFF(字符表达式1,起始位置,长度,字符表达式2)例:STUFF("ABCDEFG",2,4,"1234") 结果为A1234FG 从2位开始用后面的字符串替换,替换4位,注意:如果后面的字符串不足指定的值,则不足的地方删除如果后面的字符串大于指定的值,则多于的插入到里面字符替换函数:CHRTRN(字符表达式1,字符表达式2,字符表达式3) 如果字符表达式1中有字符表达式2的字符串,则用字符表达式3替换例:CHRTRN("ABCDEFGABEFA","AB","12") 结果为12CDEFG12EFA字符匹配函数:LIKE(字符表达式1,字符表达式2) 判断两上字符串的对应位置上的字符是否相等,如果相等,返回真值,否则返回假值8 时间函数日期函数:DA TE()时间函数:TIME()日期时间函数:DA TETIME()求年份函数:YEAR(DA TE())求月份函数:MONTH(DA TE())求天数函数:DA Y(DA TE())求时,分,秒函数:HOUR(DA TETIME()) MINUTE(DA TETIME()) SEC(DA TETIME()) 9 数值型转换成字符型函数格式:STR(数值表达式,长度,小数位)例:STR(567.656,6,2) 结果为567.66 注意:会自动四舍五入10 字符串转换成数值函数格式:V AL(字符表达式) 例:V AL("12.34") 结果为数值型的12.3411 字符转成日期CTOD(字符表达式)12 日期转成字符DTOC(日期)13 字符转成日期时间型CTOT(字符表达式)14 日期时间转成字符型TTOC(日期时间)15 宏替换函数&16 数组数的集合。
VFP常用函数使用说明1、数值运算函数函数操作例结果SQRT(x) 求平方根SQRT(9)3INT(x) 取整数INT(3.14)3ROUND(x) 四舍五入 ROUND(3.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个字符SUBSTR('TECHNOLO',3,3) CHNLEFT(S,N)从字符串S左边取N个字符 LEFT("中国人",4)中国RIGHT(S,N)从字符串S右边取N个字符S=‘12345'RIGHT(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,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())1CDOW(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)日期转换成字符串 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(A>0,"YES","NO") YES5、检测函数函数名操作例结果RECNO()检测当前记录号RECNO()1RECCOUNT()检测当前记录数 RECCOUNT()12BOF()开始记录BOF()1EOF()最后记录EOF()12FOUND()返回查找结果FOUND () .T.ROW()返回当前行坐标ROW()1COL()返回当前列坐VF常用命令和程序命令一、主要命令:1、CREATE作用:建立一个新的表。
数值计算函数1.取绝对值函数ABS(〈数值表达式〉)2.取整函数INTO(〈数值表达式〉)3.四舍五入函数ROUND(〈数值表达式1〉,〈数值表达式2〉)4.平方根函数SQRT(〈数值表达式〉)5.求余函数MOD(〈数值表达式1〉,〈数值表达式2〉)6.指数函数EXP(〈数值表达式〉)7.自然对数函数LOG(〈数值表达式〉)8.最大值函数MAX(〈表达式1〉,〈表达式2〉[,〈表达式3〉…])最小值函数MIN(〈表达式1〉,〈表达式2〉[,〈表达式3〉…]9.∏函数PI()10.上界函数CEILING(〈数值表达式〉)11.下界函数FLOOR(〈数值表达式〉)12.正弦函数SIN(〈数值表达式〉)13.余弦函数COS(〈数值表达式〉)字符处理函数1.字符串长度函数LEN(〈字符表达式〉)2.空格函数SPACE(〈数值表达式〉)3.宏替换函数&〈字符型内存变量〉[.〈字符表达式〉]4.删除字符串空格函数(1)删除字符串前置空格和尾部空格函数ALLTRIM(〈字符表达式〉)(2)删除字符串前置空格函数LTRIM(〈字符表达式〉)(3)删除字符串尾部空格函数RTRIM|TRIM(〈字符表达式〉)5.字符串起始位置函数AT(〈字符表达式1〉, 〈字符表达式2>[,〈数值表达式〉])6.取子串函数(1)取左子串函数LEFT(〈字符表达式>,〈数值表达式〉)(2) 取右子串函数RIGHT(〈字符表达式>,〈数值表达式〉)(3)取子串函数SUBSTR(〈字符表达式>,〈数值表达式1〉[,〈数值表达式2〉]〉7.转换字符串函数(1)字符插入或替换函数STUFF(〈字符表达式1〉,<数值表达式1〉,〈数值表达式2〉〈字符表达式2>〉(2)大小写转换函数UPPER(〈字符表达式〉)LOWER(〈字符表达式〉)8.字符复制函数REPLICATE(〈字符表达式〉, 〈数值表达式〉)日期时间函数1.系统日期函数DA TE()2.系统时间函数TIME([<表达式>])3.日期函数DAY(<日期表达式>)4.星期函数DOW(<日期表达式>)CDOW(<日期表达式>)5.月份函数MONTH(<日期表达式>)CMONTH(<日期表达式>)6.年份函数YEAR(<日期表达式>)数据类型转换函数1.ASCII码转换函数(1)求ASCII字符对应数值函数ASC(〈字符表达式>〉(2)求数值对应的ASCII字符函数CHR(〈数值表达式〉)2.字符日期弄转换函数CTOD(<日期格式字符表达式>)3.日期字符型转换函数DTOC(<日期表达式>[,1])4.数值字符型转换函数STR(〈数值表达式1〉[,<长度>][,小数位>])5.字符数值型转换函数V AL(〈字符表达式>〉6.格式转换函数TRANSFORM(<表达式>,<格式描述符>)测试函数1.测试数据类型函数TYPE(〈字符表达式>〉2.条件测试函数IIF(<逻辑表达式>,<表达式1>,<表达式2>)3.测试光标所在屏幕列坐标和行坐标函数COL() ROW()4.读一键函数INKEY([数值表达式])5.与数据表有关的测试函数(1)表文件开始测试函数BOF([<工作区号或别名>])(2)表文件结束测试函数EOF([<工作区号或别名>])(3)记录号测试函数RECNO([<工作区号或别名>])(4)测试表文件是否打开函数USED([<工作区号或别名>])(5)测试查询结果函数FOUND([<工作区号或别名>])(6)测试文件存在函数FILE(<“文件名”>)(7)记录删除测试函数DELETED([<工作区号或别名>])(8)检测表文件名函数DBF([<工作区号或别名>])(9)检测表文件别名函数ALIAS([<工作区号或别名>])(10)检测工作区号函数SELECT([0/1/别名])(11)检测记录数函数RECCOUNT([<工作区号>|<别名>])(12)测试记录大小函数RECSIZE([<工作区号>|<别名>])使用数据库1.打开数据库OPEN DATABASE[数据库名|?][EXCLUAIVE2.关闭数据库CLOSE DATABASE[ALL]3.修改数据库MODIFY DA TABASE[数据库名|?][NOWAIT][NOEDIT]4.删除数据库DELETE DATABASE[数据库名|?[DELETETABLES][RECYCLE]表记录的浏览与维护1.查询记录LIST|DISPLAY[[FIELDS]〈表达式表〉][〈范围〉][FOR〈条件〉];[WHILE 〈条件〉][OFF][TO PRINT[PROMPT]|TO FILE〈文件〉]2.增加记录(1)APPEND[BLANK](2)INSERT[BLANK][BEFORE]3.删除记录(1)记录逻辑删除命令DELETE[〈范围〉][FOR〈条件〉][WHILE〈条件〉](2)记录物理删除命令PACK(3)记录恢复命令RECALL [〈范围〉][FOR〈条件〉][WHILE〈条件〉](4)记录清除命令ZAP4.修改记录REPLACE〈字段名1〉with〈表达式1〉[ADDITIVE][,〈字段名2〉WITH〈表达式2〉[ADDITIVE]…[<范围>][FOR<条件>][WHILE<条件>]5.定位记录(1)记录的绝对定位GO[TO]TOP|BOTTOMGO[TO]数值表达式(2)记录的相对定位SKIP[<数值表达式>](3)记录的条件定位LOCA TE FOR 数值表达式表的索引INDEX ON〈索引关键字〉TO〈单索文件名〉|〈索引标识名〉[OF〈复合索引文件名〉][FOR 〈条件〉][COMPACT][ASCENDING|DESCENDING][UNIQUE||CANDIDATE][ADDITIVE] 使用索引(1)打开或关闭索引文件①若索引文件已经建立,可在打开表文件的同时打开索引文件USE〈表文件名〉INDDEX〈索引文件表〉②若索引文件已经建立,且表文件已经打开,需单独打开索引文件SET INDEX TO[〈索引文件表〉][ADDITIVE](2)确定主控索引SET ORDER TO[〈数值表达式〉|〈单索引文件名〉|[TAG]〈索引标识〉[ASCENDING|DESENDING]](3)删除索引①删除非结构复合索引文件或结构索引文件中的相应索引标识符号可使用DELETE TAG〈索引标识符1〉[,〈索引标识符2〉]…②如果要删除非结构复合索引文件或结构索引文件中的所有索引标识符可使用DELETE TAG ALL(4)索引查找SEEK表达式[ORDER索引序号|[TAG]索引标识符][ASCENDING][DESCENDING]多表操作选择工作区SELECT〈工作区号〉|〈别名〉表的联接JOIN WITH〈工作区号〉|〈别名〉TO〈文件名〉[FOR〈条件〉][FIELDS〈字段名表〉]建立关联SET RELATION TO〈关键字表达式〉INTO〈别名〉|〈工作区号〉SQL的数据定义功能表的建立CREATE TABLE|DBF TableName1[NAME LongTableName][FREE](FieldName1 FieldType[ (nFieldWidth [,nPrecision]) ][NULL|NOT NULL][CHECK expression1[ERROR cMessageText1]][DEFAULT expression1][PRIMARY KEY|UNIQUE][REFERENCES TableName2[TAG Tagname1]][NOCPTRANS][,FieldName2…][,PRIMARY KEY eExpression2 TAG TagName2][,UNIQUE eExpression3 TAG TagName3][,FOREING KEY eExpression4 TAG TagName4[NODUP]REFERENCES TagName3 [TAG TagName5]][,CHECK 1Expression2[ERROR cMessageText2]])|FROM ARRAY Array Name表结构的修改(1)ALTER TABLE TableName1 ADD| ALTER[COLUMN]FiledName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOT NULL][CHECK 1Expression1[ERROR cMessageText1][DEFAULT eExpression]][PRIMARY KEY|UNIQUE][REFERENCES TableName2[TAG Tagname1]](2)ALTER TABLE TableName1 ALTER[COLUMN] TableName2[NULL|NOT NULL][SET DEFAULT eExpression2][SET CHECK 1Expression2[ERROR cMessageText2]][DROP DEFAULT][DROP CHECK](3)ALTER TABLE TableName1[DROP[COLUMN]FiledName3][SET CHECK 1Expression3[ERROR cMessageText3]][DROP CHECK][ADD PRIMARY KEY eExpression3 TAG TagName2[FOR 1Expression4]][DROP PRIMARY KEY][ADD UNIQUE eExpression4 [TAG TagName3[FOR 1Expression5]]][DROP UNIQUE [TAG TagName4][ADD FOREIGN KEY[eExpression5]TAG TagName4[FOR 1Expression6]REFERENCES TableName2[TAG TagName5]][DROP FOREIGN KEY TAG TagName6[SAVE]][RENAME COLUMN FieldName4 TO FiledName5]表的删除DROP TABLE TableNameSQLR的数据修改功能删除DELETE FROM TableName[WHERE Condition]插入①INSERT INTO TableName[ (FieldName1[,FieldName2,…])]V ALUES(eExpression1[, eExpression2,])②INSERT INTO TableName FROM ARRAY ArrayName|FROM MEMVAR更新UPDATE TableNameSET FieldName1= eExpression1[,FieldName2= eExpression2…][WHERE Conditon]SQL的数据查询SELECT[ALL|DISTINCT][TOP nExpr[PERCENT]][Alias.]Select_Item[As Column_Name][,Alias] Select_Item[As Column_Name]…] FROM[FORCE][DatabaseName!Table[[AS]Local_Alias][[INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]JOINDatabaseName! Table[[AS]Local_Alias][[ON JoinCondition…][[INTO Destination]|[TO FILE FileName[ADDITIVE]|TO PRINTER[PROMPT]|TO SCREEN]][PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOW AIT][WHERE JoinCondition[AND|OR FilterConditon…]]][GROUP BY GroupCondition[,GroupColumn…]][HA VING FilterCondition][UNION[ALL]SELECTCommand][ORDER BY Order_Item[ASC|DESC][,Order_Item[ASC|DESC]…]]。
vf函数命令大全在这里收集了大部分VF函数命令,比如常见mod(x1,x2)命令,它这个命令可以有取小数位的功能,比如:?mod(25.263,1),最后结果为0.263字符及字符串处理函数:1.取子串函数:格式:substr(c,n1,n2)功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型.例:取姓名字符串中的姓.store "王小风" to xm?substr(xm,1,2)结果为:王2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型. trim(字符串):删除字符串的尾部空格alltrim(字符串):删除字符串的前后空格ltrim(字符串):删除字符串的前面的空格例:去掉第一个字符串的尾空格后与第二个字符串连接store "abcd " to xstore "efg" to y?trim(x)+yabcdefg3.空格函数:格式:space(n)说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数).例:定义一个变量dh,其初值为8个空格store space(8) to dh4.取左子串函数:格式:left(c,n)功能:取字符串C左边n个字符.5.取右子串函数:格式:right(c,n)功能:取字符串c右边的n个字符例:a="我是中国人"?right(a,4)国人?left(a,2)我6.empty(c):用于测试字符串C是否为空格.7.求子串位置函数:格式:At(字符串1,字符串2)功能:返回字符串1在字符串2的位置例:?At("教授","副教授")28.大小写转换函数:格式:lower(字符串)upper(字符串)功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写例:bl="FoxBASE"?lower(bl)+space(2)+upper(bl)foxbase FOXBASE9.求字符串长度函数:格式:len(字符串)功能:求指定字符串的长度例:a="中国人"?len(a)6二.数学运算函数:1.取整函数:格式:int(数值)功能:取指定数值的整数部分.例:取整并显示结果?int(25.69)252.四舍五入函数:格式:round(数值表达式,小数位数)功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理例:对下面给出的数四舍五入并显示其结果?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3)3.1416 2049 20003.求平方根函数:格式:sqrt(数值)功能:求指定数值的算术平方根例:?sqrt(100)104.最大值、最小值函数:格式:Max(数值表达式1,数值表达式2)Min(数值表达式1,数值表达式2)功能:返回两个数值表达式中的最大值和最小值例:x1=123.456x2=234.567?max(x1,x2)234.567?min(x1,x2)123.4565.求余数函数:格式:mod(表达式1,表达式2)功能:求表达式1对表达式2的余数例:?mod(10,3)16.求指数、对数函数:格式:exp(数值表达式)log(数值表达式)功能:(1).exp()计算自然数e为底,表达式的值为指数的幂(2).log()计算表达式值的自然对数,返回lnx的值.例:x=1y=exp(x)?exp(x),log(x)2.72 1三.转换函数:1.数值转数字字符串函数:格式:str(n,n1,n2)功能:将数值n转换为字符串,n1为总长度,n2为小数位例:?str(321.56)322 &&隐含四舍五入取整转换为字符型数据?str(321.56,6,2)321.562.字符转数值函数:格式:val(s)功能:将数字字符串s转换为数值例:x="23"y="76"?val(x)+val(y)1003.字符转日期函数:格式:ctod(c)功能:将日期字符串c转换为日期例:set date ansi &&日期格式设为美国标准化协会格式?ctod("^2005.11.14")2005.11.144.日期转字符函数:格式:dtoc(d)功能:将日期d转化为日期字符串例:将日期型数据转化为字符型日期数据并显示汉字日期. set century on &&开启世纪前缀,即日期中年份用4位表示set date ansirq={^2005.11.14}rq=dtoc(rq)?substr(rq,1,4)+"年"+substr(rq,6,2)+"月"+substr(rq,9,2)+"日"2005年11月14日5.时间转字符函数:格式:ttoc(时间)功能:将时间转为时间字符串6.字符转时间函数:格式:ctot(c)功能:将时间字符串转化为时间7.字符串替换函数:格式:stuff(<字符表达式1>,<起始位置>,<字符个数>,<字符表达式2>)功能:从指定位置开始,用<表达式2>的值去替换<表达式1>中指定个数字符.若<字符个数>为零,直接插入;若<表达式2>为空字符串,则删除<表达式1>中指定个数的字符.例:X="祝大家新年好!"?stuff(X,7,4,"春节")祝大家春节好?stuff(X,11,0,"春节")祝大家新年春节好?stuff(x,7,4," ")祝大家好8.字符转ASCⅡ码函数:格式:Asc(<字符表达式>)功能:把<字符表达式>左边第一个字符转成相应的ASCⅡ码值例:x="Foxpro"?Asc(x),Asc(lower(x))70 1029.ASCⅡ码值转字符函数:格式:chr(数值表达式)功能:把数值转成相应的ASCⅡ码字符,返回值为字符型例:?chr(70)+chr(111)+chr(111+9)Fox四.日期函数:1.系统日期函数:格式:date()功能:给出系统的当前日期,返回值是日期型数据.例:显示系统日期?date()11/14/05set date ansiset century on?date()2005.11.142.年、月、日函数:格式:(1).year(日期表达式):从日期表达式中返回一个由四位数字表示的年份.(2).month(日期表达式):从日期表达式中返回一个用数字表示的月份.(3).day(日期表达式):从日期表达式中返回一个用数字表示的日数.例:测试系统日期rq=date()?year(rq),month(rq),day(rq)2005 11 143.系统时间函数:格式:time()功能:得到当前时间字符串例:?time()20:32:264.系统日期时间函数:格式:datetime()功能:得到当前日期时间例:?datetime()2005.11.14 08:35:12 PM5.星期函数:格式:dow(日期表达式)cdow(日期表达式)功能:dow用数字表示星期,1表示星期日,7为星期六;cdow用英文表示星期例:?date()2005.11.15?dow(date()),cdow(date())3 Tuesday五.测试函数:1.测试文件尾函数:格式:eof([n])说明:(1).n指定被测工作区号,其范围为1~32767(2).该函数用于测试指定工作区中的表的记录指针是否指向文件尾,是则返回真值;否则返回假值;省略可选项指当前工作区.例:测试文件记录指针是否指向文件尾use 职工档案go bottom?eof().F.skip?eof().T.2.测试文件头函数:格式:bof([n])说明:(1).n指定被测工作区号,其范围为1~32767(2).用于测试指定工作区中的表的记录指针是否指向文件头,是则返回真值;否则返回假值;省略可选项指当前工作区.例:测试记录指针是否指向文件头use 职工档案go top?bof().f.skip -1?bof().t.3.测试当前记录号函数:格式:recno()功能:得到当前的记录号例:use 职工档案?recno()1skip?recno()24.测试表文件记录数函数:格式:reccount()功能:得到表的记录数例:测试"职工档案"表的记录数use 职工档案?reccount()55.测试表字段数函数:格式:fcount()功能:得到当前的字段数例:测试"职工档案"表共有多少个字段use 职工档案?fcount()96.测试查找记录是否成功函数:格式:found()功能:测试find、seek和locate命令查找记录是否成功.如成功则返回真值,否则为假值.例:在"职工档案"表中查找"小刚"的文化程度use 职工档案locate for 姓名="小刚"?found().t.display7.文件测试函数:格式:file(字符表达式)功能:测试字符表达式指定的文件是否存在例:?file("e:\myvfp\职工档案.dbf").t.8.数据类型测试函数:格式:type(字符表达式)功能:测试表达式的数据类型,返回大写字母:N(数值)、C(字符)、L(逻辑)、D(日期)、M(备注) 例:x=1236y="hello"?type("x")N?type("y")C9.测试工作区函数:格式:select()功能:返回当前工作区的区号10.测试别名函数:格式:alias()功能:测试当前工作区的别名例:select 1use 职工档案alias zgdaselect 2use 工资情况?alias()工资情况&&打开表时,不指定别名,表名即为别名select zgda &&通过别名选择工作区?select()111.表文件名函数:格式:dbf()功能:返回当前工作区打开的表名例:use 工资情况?dbf()e:\myvfp\工资情况六.其它函数:1.宏替换函数:格式:&变量名说明:vfp中只有宏替换函数没有括号.功能是返回指定字符型变量中所存放的字符串.例:为"工资情况"表中每个人加100元工资gz="工资"use 工资情况replace all &gz with &gz+1002.条件函数:格式:iif(表达式,表达式1,表达式2)功能:若表达式值为真,则返回表达式1的值;否则返回表达式2的值;函数返回值类型与表达式1或表达式2类型一致a=3b=5?iif(a>b,"高兴","开心")开心3.消息框函数:格式:messagebox(提示文本[,对话框类型[,对话框标题文本]])功能:显示提示对话框说明:(1)对话框类型见表1:对话框类型功能0 仅"确定"按钮1 "确定"和"取消"按钮2 "终止","重试"和"忽略"按钮3 "是","否"和"取消"按钮4 "是"和"否"按钮5 "重试"和"取消"按钮16 stop图标32 ?图标48 !图标64 i图标0 默认第1个按钮256 默认第2个按钮512 默认第3个按钮(2).返回值见表2:返回值按钮1 确定2 取消3 终止4 重试5 忽略6 是7 否例:分析messagebox("您确实要退出系统吗?",4+64,"提示信息")会弹出什么样的窗口.分析:回头观察此函数的格式,弹出的对话框中的提示文本是"您确实要退出系统吗",对话框标题是"提示信息",函数中间有"4+64",其中4指定对话框中出现"是"和"否"两个按钮(见表1),64指定对话框中出现i图标(见表2)ok,我们在命令窗口依次执行下列命令:tui=messagebox("您确实要退出系统吗?",4+64,"提示信息")&&变量tui用于接收messagebox函数的返回值,弹出的窗口如图1?tui&&变量tui值取决于运行时用户点了哪个按钮,如果点了"是",返回6,如果点了"否",返回7,见表2说明:实际应用中,我们常在系统菜单或在表单的"退出"按钮中添加如下代码:tui=messagebox("您确实要退出系统吗?",4+64,"提示信息")if tui=6 &&如果此条件成立,说明用户点了"是"按钮,执行quit命令,安全退出quitendif。
数值函数:1.绝对值和符号函数格式:ABS(<数值表达式>)SIGN(<数值表达式>)例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=02.求平方根表达式格式:SQRT(<数值表达式>)例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数格式:PI()4.求整数函数格式:INT(<数值表达式>)返回数值表达式的整数部分CEILING(<数值表达式>)返回大于或等于表达式的最小整数FLOOR(<数值表达式>)返回小于或等于表达式的最大整数例如:INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5FLOOR(9.9)=95.四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)功能:返回制定表达式在制定位置四舍五入的结果例如:ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=3506.求余函数格式:MOD(<数值表达式1>,<数值表达式2>)例如:MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1求余数的规律:1.首先按照两数的绝对值求余2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值3.余数取表达式1的正负号4.若两数异好号,余数在加上表达式2的值为最终的结果7. 求最大值和最小值函数MAX(数值表达式列表)MIN (数值表达式列表)例如:MAX(2,3,5)=5 MAX(…2‟,‟12‟,‟05‟)=2MAX(…汽车‟,‟飞机‟,‟轮船‟)字符串比较的规律:字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。
函数对于函数需要大家了解的有:1、函数名2、除了&宏函数外,所有函数必须加 ()3、函数的作用4、函数的参数5、函数的返回值及其类型数值运算函数: INT()、ABS()、MAX()、MIN()、SQRT()、ROUND()、MOD()字符处理函数: LEN()、AT()、SPACE()、SUBSTR()、LEFT()、RIGHT()TRIM=RTRIM(TRIM\ALLTRIM\LTRIM\RTRIM)、STUFF()、&:宏函数转换函数: LOWER()、UPPER()、CTOD()、DTOC()、STR()、VAL() ASC()、CHR()日期时间函数: DATE()、TIME()、YEAR()、MONTH()、DAY()测试函数: RECNO()、BOF()、EOF()、FOUND()、FILE()、DBF()、RECCOUNT()、SELECT()、TYPE()、IIF()、其它:ROW()、COL()、INKEY()、READKEY()1.数值处理函数(1)求绝对值函数ABS()【格式】 ABS(<数值表达式>)【功能】返回<数值表达式>的绝对值,参数的类型为N型,得到的函数值的类型为N型。
【例如】输入语句:?ABS(-26.2),ABS(26.6),ABS(-50)显示结果: 26.2 26.6 50注意:语句 ? <内存变量>|<常量>|<表达式>是非格式输出语句,具有计算功能。
语句在命令窗口输入。
(2)求指数函数EXP()【格式】EXP(<数值表达式>)【功能】返回以e为底,<数值表达式>为幂次的指数值。
【例如】输入语句:?EXP(5.5),EXP(1),EXP(-5),EXP(-6)显示结果: 244.69 2.72 0.01 0.00(3)取整函数INT()【格式】 INT(<数值表达式>)【功能】返回<数值表达式>的整数部分。
VF的一些常用函数常用函数Visual FoxPro提供了一批标准丰富,灵活运用这些函数不仅可以简化许多运算,而且可以加强Visual FoxPro的许多功能。
在使用Visual FoxPro的函数时,应注意以下几点:? 准确地掌握函数功能。
? 每一个函数都有一个返回值。
函数的返回值有确定的类型,因此在使用函数时特别要注意类型匹配。
函数对其参数的类型也有要求,否则将产生类型不匹配的语法错误。
Visual FoxPro的函数按其功能大致可以分为数值运算函数、字符处理函数、转换函数、日期和时间函数、测试函数以及数据库函数等。
求自然对数函数【格式】LOG(<数值表达式>)【功能】求数值表达式值的自然对数。
【例】求ln e的自然对数值。
? LOG(2.718)1.000 && 显示自然对数值四舍五入函数ROUND()【格式】ROUND(<数值表达式1>,<数值表达式2>)【功能】<数值表达式1>是要被四舍五入处理的数值,<数值表达式2> 指定四舍五入后要求保留的小数位数。
本函数按指定的小数位数对数值进行四舍五入处理。
【例】求最大值、最小值函数?ROUND(86.6265,0) 87?ROUND(86.6265,1) 86.63.【格式】MAX | MIN(<数值表达式1>,<数值表达式2>[,<数值表达式3>,…])【功能】求多个数值表达式中的最大值或最小值。
【例】比较值的大小。
?MAX("WE","YOU") YOU?MIN(CTOD("12/20/03"),CTOD("10/14/99"))10/14/99取模函数【格式】MOD(<数值表达式1>,<数值表达式2>)【功能】取数值表达式1除以数值表达式2所得的余数。
VFP常用编程命令及常用函数常用编程命令及常用函数注:在语法中如用方括号“[]”括起来的词句,表示可以不用。
常用命令假设(if...endif) 循环(dowhile...enddo)分支(do case...endcase)赋值(store...to) 调用表单(do form) 调用子程序(do)返回调用程序(return) 启动事件处理(readevents)清除事件处理(clearevents)开关命令执行状态(set talkon/off)结束程序(cancel)常用函数数值转换字符(str()) 字符转换数值(val()) 取系统日期(date())取年份(year()) 取月份(month()) 取天日(day())取整(int()) 四舍五入(round()) 删除标记(delete())记录号(recno()) 记录数(reccount()) 找到记录(found())表结尾(eof()) 表开头(bof()) 消除后续空格(trim())消除前导空格(ltrim())假设语句根据一逻辑表达式的值,有条件的执行一组命令。
语法:IF 逻辑表达式 [THEN]程序组1[ELSE程序组2]ENDIF参数:逻辑表达式代表一逻辑值,如果这逻辑值为真,系统执行程序组1,否则不执行程序组1,如果有else及程序组2的话,则执行程序组2,如没有则什么也不执行,直接执行endif后面的语句。
备注:在if...endif之间还可以有if...endif,即该命令是可以嵌套的。
then可以有也可以没有,对程序没有影响。
else及程序组2可以有也可以没有,但如果有的话,在逻辑表达式的值为假时,程序组2将被执行。
if 与endif必须配对使用,即有一个 if 必须有一个endif,否则程序会出错。
举例:例1:假如分数字段的值大于等于90,则让等级字段的值为“优”,并显示该记录。
程序如下:if 分数>=90replace 等级 with '优'displayendif例2:在数据库中可以把性别字段设为逻辑型,“真”代表“男”,“假”代表“女”,但显示时不能显示真、假,否则别人看不懂,而应显示男、女,因此我们设一变量xb,根据性别字段的具体值,将xb的值设为男或女,然后在需要的时候显示xb的值即可。
常用函数函数是系统为实现一些特定功能而设置的内部程序,作为系统的一部分供用户使用.Visual Foxpro 提供了500多个函数,功能比较强大,为程序设计和软件开发提供了许多方便.函数的基本形式为: 函数名([<操作数表达式>])函数的操作有三种情况:有一部分函数的操作数由系统规定,用户不必输入,此时函数无操作数,其形式为: 函数名(); 有一部分函数的操作数必须由用户输入;还有一部分函数的操作数可以由用户来指定,如用户不指定,系统就按有关规定给出.对于后两种情况,输入的操作数就相当于一般函数的自变量. Visual Foxpro对每个函数自变量的个数、类型以及函数值的类型都有明确的规定,在使用函数时必须遵循这些规定.学习函数必须掌握它输入输出的数据类型.按Visual Foxpro函数的功能和用途,可将函数分为11大类型:数值和数学函数、字符型函数、日期时间函数、转换函数、测试函数、数据库和表函数、数组函数、对象特性函数、SQL查询函数、菜单和窗口函数、其它函数。
我们只介绍部分最常用函数。
一、数值和数学函数该类函数的输入均为数值型。
输出除了其中的确定函数为逻辑型外,其它为数值型。
(一)一般数值函数(1)取整函数格式:INT(<数值表达式>)该函数返回<数值表达式>的整数部分(舍尾).(2)向上取整函数格式:CEILING(<数值表达式>)该函数返回不小于<数值表达式>的最小整数。
(3)向下取整函数格式:FLOOR(<数值表达式>)该函数返回不大于<数值表达式>的最大整数。
例:?INT(3.14),INT(-3.14),CEILING(3.14),CEILING(-3.14),FLOOR(3.14),FLOOR(-3.14)3 -34 -3 3 -4(4)四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)该函数要求保留小数位。
命令结构:
<命令动词> [<范围>] [FIELD 字段列表] [<表达式>] [FOR <条件>] [WHILE <条件>]
范围:ALL NEXT N RECORD N REST
数据类型:
数值(N):12123.5968 222
字符(C):‘gfhghgf’“tytfytf”[rfgff]
逻辑(L):.t. .f .y. .n.
日期(D): 传统{mm/dd/yy} 绝对{^yyyy-mm-dd}
货币(Y): $56565
日期时间(T): 传统{mm/dd/yy, hh:mm:ss A|P} 绝对{^yyyy-mm-dd, hh:mm:ss A|P }
备注(M):
通用(G):
变量:
1.内存变量——直接赋值
2.系统内存变量
3.字段变量:优先于内存变量,如要使用内存变量,可加前缀:M. 或M->
Store <表达式> TO 变量列表
Display memory
List memory
Clear memory
Release 变量列表
Release ALL link 通配符a* ?
数组:
DIMENSION 数组名(下标,下标)
DECLARE
运算符:
算术:+ - * / % ** ^ 关系:> >= < <= != <> # == = 逻辑:AND OR NOT !
常用函数:
Round(76667.878787, -3)
Sqrt(9)
PI()
Date()
Time()
取子串:substr(串,开始位置,取字符数)
Left(串,取字符数)
Right(串,取字符数)
字符串长度:len(串)
消除空格:TRIM(串)
LTRIM(串)
ALLTRIM(串)
At(s1,s2)
?len(dtoc({^2013-09-25}))
?dtoc({^2013-09-25})
?date()
?len(“hjhhjjhhj”)
?ctod(dtoc({^2013-09-25}))
?year(ctod(dtoc({^2013-09-25}))) ?month(ctod(dtoc({^2013-09-25}))) ?day(ctod(dtoc({^2013-09-25}))) Upper(串)
Lower(串)
测试:vartype(表达式)
FOUND()
Eof()
Bof()
建立表结构:
1.设计器:a.windows b.命令
2.命令:create table 表名(字段1 类型(宽度,小数位数), …) create table xsqk(xh c(10),xm c(10),xb c(2),csrq d,gkcj n(5,1),ty l,jl m,zp g)
修改表结构:modify structuer
打开(关闭)表:use [<表名>]
移动记录指针:
[Go[to]] N
Skip [N]
LOCATE for substr(姓名,1,2)="王"
continue
seek
显示记录:
List| display
brows
添加数据:
Append blank
insert
set defa to e:\1205660101
替换:REPLACE 字段名WITH 表达式,…
索引:
主索引:
候选索引:
普通索引:
唯一索引:
建立索引:
1、表设计器:modify struct
2、命令:INDEX ON 字段名TAG 标识[desc] 设置主控索引:SET ORDER TO 标识
快速查找:SEEK <表达式>
排序:SORT TO 新表名ON 字段名[/D]
关联:SET RELAION TO 字段名INTO 子表名
统计命令:
记录个数:COUNT TO 内存变量名
求和:SUM [数值字段] TO 内存变量名
求平均值:A VERAGE [数值字段] TO 内存变量名
将表中当前记录的数据复制到数组:
SCATTER [FIELD <字段列表>] TO <数组名>
将数组中的数据复制到当前记录中。
GATHER FROM <数组名> [FIELD <字段列表>]
视图: 虚拟表
查询:
结构化查询语言:SQL(STRUCTURED QUERY LANGUAGE)
1、建表:create table 表名(字段1 类型(宽度,小数位数), …)
2、插入数据:INSERT INTO 表名[字段1,字段2,…] V ALUES (表达式1,表达式2,…)
3、修改表的结构:ALTER TABLE <表名> [1][2][3][4]
[1]: ADD <字段名及属性>
[2]:ALTER <字段名及属性>
[3]:DROP <字段名>
[4]: RENAME <原字段名> TO <新字段名>
4、删除表:DROP TABLE <表名>
5、给记录作删除标记:
DELETE FROM <表名> [WHERE <条件>]
6 、更新:UPDATE 表名SET 字段1=表达式1,字段2=表达式2,… [WHERE <条件>]
7、查询:
SELECT <字段列表> FROM <表名> [JOIN 表ON 条件] [WHERE <条件>]
[ORDER BY <字段>][TOP 数值]
[GROUP BY <字段>] [HA VING <条件>]
[INTO TABLE [CURSOR][ARRAY]<表名>]
[TO [FILE <文件名> ] [PRINTER] [SCREEN]]
LIKE “王%”
%: 多个字符
_: 一个字符
程序设计:——结构化程序设计
清屏:CLEAR
返回:RETURN
退出寻系统:QUIT
输出:???
输入:
1.INPUT 提示TO 变量*可以是任意类型
2.ACCEPT 提示TO 变量*只能是一个字符串
3.WAIT提示TO 变量*只能是一个字符
编辑命令文件:MODIFY COMMAND 文件名
运行命令文件:DO 文件名
分支结构:
命令组
ELSE
命令组
ENDIF
DO CASE
CASE 条件1
命令组
Case条件1
命令组
OTHERWISE
命令组
ENDCASE
DO WHILE 条件
命令组
ENDDO
FOR 变量=初值TO 终值[STEP 步长] 命令组
ENDFOR
SCAN [范围][FOR 条件]
命令组
ENDSCAN
辅助语句:
EXIT——BREAK
LOOP——CONTINUE
子程序:DO 文件名[with 参数列表]
接收参数:PARAMETERS 变量列表
参数:一个变量时,子程序值回传。
常量或表达式时,不回传。
过程文件:存放多个子程序,每个子程序前面要加PROCEDURE 子程序名
PARAMETERS 变量列表
变量的作用域:
私有变量:从当前程序到下层程序;默认定义公共变量:所有程序;PUBLIC <变量列表>
局部变量:当前程序;LOCAL <变量列表>
隐藏(屏蔽)上层变量:PRIV ATE <变量列表>。