nullnull2.4 函数(系统函数)函数是一段程序代码,预先编制好的计算模块
可供VFP程序在任何地方调用
函数格式为:函数名(参数)
函数调用:函数名(参数值)
返回单个值或者不返回值
函数分为系统函数和用户自定义函数主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
主要内容1、数据类型函数
2、数据库类型函数
3、其它类型函数nExp 代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
数值表达式
cExp 代表字符型表达式
dExp 代表日期型表达式
lExp 代表逻辑型表达式
eExp 代表多种类型表达式一、数据类型函数一、数据类型函数1、算术运算函数1.1 取绝对值函数 ABS( ) (absolute)
【格式】ABS(nExp)
【功能】计算nExp的值,并返回该值的绝对值。
【举例】?ABS(-123+23) 结果: 100i=100
?ABS(i+20) 结果:120null1.2.取整函数
格式:INT(nExp)
功能:计算nExp的值,返回该值的整数部分
举例:? INT(10.6) 结果: 格式:CEILING(nExp)
功能:计算nExp的值,返回不小于该值的最小整数
举例:? CEILING(10.6) 结果:格式:FLOOR(nExp)
功能:计算nExp的值,返回不大于该值的最大整数
举例:?FLOOR(10.6) 结果:101110null1.3.四舍五入函数ROUND( )
【格式】ROUND(nExp1,nExp2)
【功能】返回nExp1四舍五入的值,nExp2表示
保留的小数位数。
【举例】? ROUND(12.36,1) 结果:12.4【说明】 当nExp2的值大于等于0时,其表示保
留的小数位数;
其值小于0时,其表示保留的整数位数。null1.4 求余数函数 MOD( )
【格式】MOD(nExp1,nExp2)
【功能】返回nExp1除以nExp2的余数。
【说明】①余数的符号与nExp2相同。
②当两表达式同号时,函数值为两数相除
的余数;当两表达式异号时,函数值为
两数相除的余数再加上除数的值。
举例:
?MOD(36,10)结果:
?MOD(36,-10)结果:
?MOD(-36,10)结果:
?MOD(-36,-10)结果:6-44-6null1.5.求最大值和最小值函数 MAX( ) MIN( )
【格式】MAX(eExp1,eExp2[,eExp3…])
MIN(eExp1,eExp2[,eExp3…])
【功能】MAX()计算各表达式的值,并返回其中最大值.
MIN()计算各表达式的值,并返回其中最小值.
【说明】数字型、字符型、货币型、日期型、日
期时间型等;表达式数据类型必须相同.
举例:
?MAX(4,5,6) 结果:6
?MIN(4,5,6) 结果:4null2、字符型函数2.1字符串长度函数 LEN( )
【格式】LEN(cExp)
【功能】返回cExp的字符个数;
函数值为数值型;。
【举例】?LEN(‘-123+23’) 结果:7null 2.2 大小写转换函数 LOWER( ) UPPER( )
【格式】LOWER (cExp) UPPER (cExp)
【功能】
LOWER()将cExp中字母全部变成小写字母;
UPPER()将cExp中字母全部变成大写字母.
【举例】?UPPER(‘About’) 结果:ABOUT
? LOWER(‘AbouT’) 结果: aboutnull2.3 截取字符串函数
格式:1).SUBSTR(cExp,nExp1[,nExp2])
功能:从cExp中截取子字符串,nExp1表示截取的
开始位置,nExp2表示截取字符的个数。
举例:?SUBSTR(‘荆州师范学院’,5,4)
结果: 师范
说明:若省略nExp2,截取nExp1位开始的所有字符;
举例:? SUBSTR(‘荆州师范学院’,5)
结果: 师范学院null2.3 截取字符串函数
格式:2).LEFT (cExp,nExp)
3).RIGHT (cExp,nExp)
功能:1)从cExp左边截取长度为nExp的字符串。
2)从cExp右边截取长度为nExp的字符串。
举例:
? LEFT(‘荆州师范学院’,4)
结果: 荆州
? RIGHT(‘荆州师范学院’,4)
结果: 学院 null2.4.字符串替换函数 STUFF( )
【格式】STUFF(cExp1,nExp1,nExp2,cExp2)
【功能】用cExp2替换cExp1中从nExp1位置开始
后的nExp2个字符。
【举例】
?STUFF(‘荆州师院
英语
关于好奇心的名言警句英语高中英语词汇下载高中英语词汇 下载英语衡水体下载小学英语关于形容词和副词的题
系’,1,8,‘长江大学’)
结果:长江大学英语系null2.5.空格字符串生成函数 SPACE( )
【格式】SPACE(nExp)
【功能】生成长度为nExp个的空字符串。
【举例】 ? ‘长江’+space(4)+‘大学’
结果:长江 大学2.6.删除字符串空格函数
【格式】ALLTRIM(cExp)
【功能】删除字符串前后所有的空格。
【举例】?ALLTRIM(‘ 长江大学 ’)
结果:长江大学null2.6.删除字符串空格函数
【格式】 LTRIM(cExp)
【功能】 删除指定字符串前导空格。
【举例】 ?LTRIM(‘ 长江大学 ’)
结果:长江大学
【格式】 TRIM(cExp) RTRIM(cExp)
【功能】 两个函数功能相同,删除指定字符串
尾部空格。
【举例】 ?TRIM(‘ 长江大学 ’)
结果: 长江大学null2.7查找子串位置函数
格式: AT(cExp1,cExp2[,nExp])
功能: 当cExp1是cExp2的子串时,函数返回
cExp1在cExp2中的出现的位置,否则返回值为0。
nExp作用指定查找第nExp次出现的位置,默认:1
【举例】?AT(‘AB’,[1CAB4DE])
结果: 3
【说明】 OCCURS(cExp1,cExp2)
cExp1在cExp2中出现的次数null2.8.字符替换函数 CHRTRAN( )
格式:CHRTRAN(cExp1,cExp2,cExp3)
功能:将cExp1中于cExp2相匹配的字符用
cExp3中相应的字符去替换。
说明:1、若<式3>中包含的字符个数少于<式2>中的
字符数,而无对应字符,则<式1>中相匹配的字符将
被删除; 2、若<式3>中包含的字符个数多于<式2>
中的字符数,多余的字符将被忽略。?CHRTRAN(‘ABACAD’,‘ACD’,‘X12’)
?CHRTRAN(‘大家好’,‘大家’,‘您’)
?CHRTRAN(‘计ABC’,‘计’,‘电脑’)XBX1X2您好电ABCnull2.9.字符串匹配函数 LIKE( )
【格式】LIKE(cExp1,cExp2)
【功能】比较两字符串对应位置上的字符,若都匹配,
则返回逻辑值真(.T.),否则则返回逻辑值假(.F.)。
【说明】 cExp1可以包含通配符 * 和 ?
【举例】 ? LIKE(‘abc’,‘abcd’) 结果:.F.
? LIKE(‘ab*’,‘abcd’) 结果:.T.
2.10.字符复制函数 REPLICATE( )
【格式】REPLICATE(cExp,nExp)
【功能】返回将cExp重复nExp指定次数。
【举例】?REPLICATE(‘abc’,3) 结果:abcabcabcnull3.1.系统日期函数 DATE()
【格式】DATE()
【功能】返回当前系统日期,函数值为D型。
3.2.系统时间函数 TIME( )
【格式】 TIME()
【功能】返回当前系统时间;函数值为C型。
时间显示格式为hh:mm:ss。
3.3 系统日期时间函数 DATETIME( )
【格式】 DATETIME()
【功能】 返回当前系统日期时间。
函数值为日期时间型。3、日期和时间函数null3.4 年份函数YEAR( )
【格式】YEAR(日期表达式| 日期时间表达式)
【功能】函数返回<表达式>中年份值。函数值为N型。
3.5 月份函数MONTH( )、CMONTH( )
【格式】MONTH(日期表达式|日期时间表达式)
CMONTH(日期表达式| 日期时间表达式)
【功能】MONTH()函数返回<表达式>中月份数。
函数值为N型。
CMONTH()函数则返回月份的英文名.
函数值为C型。null3.6.日期函数DAY( )
【格式】DAY(日期表达式|日期时间表达式)
【功能】返回表达式中的天数。函数值为N型
3.7.星期函数DOW( )、CDOW( )
【格式】DOW(日期表达式|日期时间表达式)
CDOW(日期表达式|日期时间表达式)
【功能】DOW()函数返回<表达式>中星期的数值。
用1-7表示星期日~星期六。函数值为N型。
CDOW()函数返回星期英文名称。函数值为C型4、转换函数4、转换函数4.1.数值转换成字符函数 STR()
格式:STR(nExp1[,nExp2][,nExp3])
功能:将nExp1换成字符串。函数值为C型。
说明:1)nExp2 返回的字符串的长度
2)nExp3 指定小数的位数,缺省为0null【举例】 n = -123.456
?STR(n,9,2),STR(n,6,2),STR(n,3),
? STR(n,6), STR(n) -123.46 -123.5*** -123-123null4.2.字符数值型转换函数VAL()
格式:VAL (cExp)
功能:将<字符表达式>中数字转换成对应数值,转
换结果取两位小数。函数值为N型。
说明:1).cExp由数字字符(含正负号,小数点)组成;
2).若字符串内出现非数字字符,则只转换前面
部分; 3).若字符串的首字符不是数字字
符,则返回数值0.00;但忽略前导空格。 【举例】 X=‘-123.’ Y=‘45’ Z=‘A45’
? VAL(X+Y), VAL(X+Z), VAL(Z+Y)结果: -123.45 -123.00 0.00null4.3.求字符的ASCII码函数确良ASC( )
【格式】ASC (cExp)
【功能】返回cExp首字符的ASCII码值。函数值为N型。
【举例】? ASC(‘abc’) 结果:97
? ASC(‘a’) 结果:97
? ASC(‘ABC’) 结果:65
? ASC(abc) 结果:找不到变量ABC
4.4.ASCII字符函数CHR( )
【格式】CHR(nExp)
【功能】返回值为nExp的ASCII字符,函数值为C型。
【举例】 ?CHR (97) 结果:anull4.3字符串转换成日期或日期时间函数
【格式】CTOD(cExp)
【功能】将cExp转换成对应日期或日期时间。
【说明】1).<表达式>的日期格式要与 SET DATE TO 命令设置的格式一致,年份可以是四位或二位;
2) set century on 设定是否显示世纪 【举例】SET DATE TO YMD
SET CENTURY ON
d1=CTOD(‘2004/03/08’)
? d1,CTOD(’50/01/01’), null4.4.日期字符型转换函数DTOC( )
【格式】DTOC|TTOC(dExp|tExp[,1])
【功能】把日期型或日期时间型数据转换成相应的字
符串。 函数值为C型。
【说明】1).<表达式>的日期格式与SET DATE TO命令
设置和SET CENTURY ON|OFF
2).DTOC()若使用第二个参数1,则字符串格
式为YYYYMMDD,共8个字符;【举例】 t=DATE()
? T
? DTOC(t),DTOC(t,1)5、测试函数5、测试函数5.1.空值(NULL)测试 ISNULL( )
格式:ISNULL(<表达式>)
功能:判断<表达式>的F运算结果是否为NULL值,
若是则返回逻辑真(.T.),否则返回逻辑假
(.F.)。
5.2.“空”值测试 EMPTY( )
【格式】EMPTY(<表达式>)
【功能】判断<表达式>的F运算结果是否为“空”值,
若是则返回逻辑真(.T.),否则返回逻辑假(.F.)null10.条件测试函数IIF( )
【格式】IIF(<逻辑表达式> ,<表达式1>,<表达式2>)
【功能】<逻辑表达式>值为真(.T.),返回<表达式1>
的值;<逻辑表达式>值为假(.F.),返回<表达
式2>的值。
【说明】 <表达式1>和<表达式2>可以是任意数据类型
的表达式。null开始标志 函数BOF ( )
当前记录 函数RECNO ( )
结束标志 函数EOF ( )记录指针记录开始标志记录结束标志当前记录记录号 2.5 表达式2.5 表达式是变量、操作符、常量、函数、字段名、控件以及属性的组合
有效性规则 —— 逻辑表达式
查询条件 —— 逻辑表达式
表索引---索引表达式
计算结果字段
分类:
字符表达式、日期表达式、算术表达式、逻辑表达式、名称表达式null1. 字符表达式
?"教师"+js.xm+"的基本工资是:"+str(js.jbgz,7,2)
2. 日期表达式 DATE()-{5/13/68}
3. 算术表达式
# DEFINE PI = 3.1415926
r = 10
s = PI * r * r
4. 逻辑表达式
(ximing=“计算机系” OR ximing=“信息管理系”) AND gl>=10 AND xb=“男”null表达式举例
索引表达式:XINMING+DTOC(CSRQ) DTOC函数39页
字段有效性规则:XB=‘男’ OR XB=‘女’
表记录有效性规则:YEAR(DATA())-YEAR(CSRQ)>GL+20
YEAR函数37页
查询条件:SUBSTR(XH,1,2)=‘98’ (查询年级为98级)SUBSTR函数34页null属性(表的触发器为逻辑表达式):CREATE TRIGGER ON JS FOR UPDATE AS JS.GL<=50
计算结果字段:例 SELECT SUBSTR(GH,1,1) AS 部门,MAX(GL) AS 最高工龄
null5. 名称表达式
名称表达式是由圆括号括起来的一个字符表达式,可以用来替换命令和函数中的名称(字段名、变量名、窗口名、菜单名、文件名、对象名)
为命令和函数提供了灵活性
STORE ‘ximing’ TO cVarDept(字段名:ximing )
cVarDept=‘xinming’
REPLACE (cVarDept) WITH ‘应用软件系’null实例
用名称表达式替换命令中变量名
Nvar=100
Var_name=“nvar”
Store 123.4 to (var_name)
?nvar &&123.4
用名称表达式替换命令中的文件名
Dbf_name=“js”
Use (dbf_name)null用名称表达式作为函数的参数
String1=“Visual Foxpro 6.0”
Str_var=“string1”
?substr((str_var),1,6)
用字符表达式来构成一个名称表达式
Db_name=“jxsj”
Dbf_name=“js”
Use (db_name+”!”+dbf_name)
使用名称列表
Use xs
Fld1=“xh”
Fld2=“xm”
Browse fields(fld1),(fld2)null6. 宏替换:
用 & 放在字符内存变量前,告诉VFP此变量值用作名称使用,并用句号(.)来结束这个宏替换
运算规则:同上
例:Browse fields &fld1,&fld2
宏替换的使用范围比名称表达式广。
★ 名称表达式不能代替整个命令、不能构成表达式.比较比较(1)名称表达式运行速度比含有宏替换的要快
(2)宏替换的使用范围更广些
宏替换可以替换整个命令,名称表达式不行
Cmd_name=“DIR”
&cmd1_name
(cmd_name)(出错)null宏替换可用以构成表达式,名名称表达式不能构成表达式
Field_name=“js.xm”
Locate for &field_name=“程东萍”
Locate for (field_name)=“程东萍”(出错)
在某些命令和函数中不能使用名称表达式
Var_name=“cvar3”
&var_name=“test2”
(var_name)=“test2” (error!)
Store “test1” to (var_name)
?&var_name
?(var_name) nullDO CASE CASE THISFORM.TEXT1.VALUE = '1980' USE '1980.DBF' CASE THISFORM.TEXT2.VALUE = '1981' USE '1981.DBF' CASE THISFORM.TEXT2.VALUE = '1982' USE '1982.DBF' ENDCASEC_YEAR = THISFORM.TEXT1.VALUE USE &C_YEAR *上面这一句利用宏替换来根据C_YEAR的值来找打开对应的表,等价于 *Use ‘1999.dbf’,只不过引号的表名是随C_YEAR的值而变罢了null7 空值(.NULL.)
VFP支持.NULL.值,这样降低了表达未知数据 的难度
.NULL.值具有以下特点:
等价于没有任何值
与0、空串、空格不同
排序优先于其他数据null a. 在值和表达式中使用NULL
程序设计中可使用.NULL.标记
字段中可以交互方式键入【Ctrl+0】来赋null值
ISNULL()测试函数
NULL不是一种数据类型,不改变字段或变量的原有类型
实例:
Use ff
Modi stru(xm允许null)
(xm处ctrl+0)
?isnull(xm) (result:.T.)null赋.NULL.值后,字段或变量的数据类型不变
Store 5 to nx
Nx=.null.
?type(“nx”) (n型)
在数值、日期表达式中有.NULL.值,将返回.NULL
在逻辑表达式中Null的行为
在条件表达式中若遇到Null值,该条件表达式非真Null在逻辑表达式中的行为Null在逻辑表达式中的行为