内部函数
内部函数需要在表达式中使用,用于实现数学计算,文本处理,日期时间值的运算等等多种功能。相对于命令来说, 函数使用更简便灵活,且它可以在命令内的选项值表达式中使用,有些功能 也只通过函数的方式提供,比如:三角函数,日期时间计算等等,在很多时候用函数也可以极大的简化命令步骤,如需要输 入一个格式化的文本到当前窗口,如果使用命令,则需要两条命令:
- 格式化日期 "2012-12-1 00:00" 并保存到变量 v_datestr
- 输入文本 %v_datestr%
如果使用函数,则只需要一条命令即可,如下:
- 输入文本 %=format_date("2012-12-1 00:00")%
软件包括以下类别的内部函数:
使用函数
任何可以接受表达式的命令中都可以使用函数。函数使用以下列规则:
-
函数只能在表达式中使用。
函数只能包含在表达式中,也就是必须以 %= 百分号+等于号开始,并且以 % 百分号结束。 如下例:
输入文本 "20+RAND( 0, 100 )" //RAND函数将不会执行, 20+RAND( 0, 100 )会被当成一段文本
输入文本 "%=20+RAND( 0, 100 )%" //%=20+RAND( 0, 100 )%是一个正确的表达式
-
函数名称不区分大小写。
在使用函数时,函数名称是不区分大小写的。如:输入文本 %=mid("this is a sample", 4)% 和 输入文本 %=MID("this is a sample", 4)% 都能得到正确的结果。
-
除非特别说明,否则可以在函数参数表达式中使用函数。
如:输入文本 %=UPPER( mid("this is a sample", 4) )% 将得到文本 IS A SAMPLE。
函数定义
使用函数前必须了解函数的定义,也就是函数的名称,需要什么参数,返回的结果是什么类型。本软件中使用下面的方式定义一个函数:
返回值类型 函数的名称( 函数的参数列表 )
例如,对于取文本的函数MID, 它的定义如下:
文本 MID( 文本, 位置, [数量] )
MID函数的定义详解
从左到右顺序 | 说明 |
---|---|
文本 | 表示这个函数会返回一个文本。 |
MID | 函数的名称为MID。 |
( 文本, 位置, [数量] ) | 这个函数有三个参数,前两个是必须的,第三个参数是可选的(使用方括号括起来)。 |
函数参数
需要函数处理的数据必须通过参数的方式传入函数,多个参数间以逗号分隔,并且以从左到右的顺序传入函数。参数可以是固定的数据值, 也可以为表达式,这也就意味着可以把一个函数的返回值做为参数传入另外一个函数。如下例:
- UPPER函数是转换文本为大写,下例是以固定数据值的方式调用:
UPPER( "This is a sample" ) //输出结果为: THIS IS A SAMPLE。
- 下例使用变量做为参数
UPPER( v_txt ) //当v_txt的内容为This时, 输出结果为: THIS。
- 下例使用LEFT函数的结果做为参数
UPPER( LEFT( "This is a sample",4 ) ) //输出结果为: THIS。
可选参数 函数的参数分为普通参数和可选参数,普通参数在使用函数时必须提供,可选参数则可以根据情况提供或是不提供,在不提供的时候,函数内部将会以缺省值处理。 在函数的说明里面用方括号[]表示可选参数,如下例:
MID( 文本, 起始位置, [数量] ) -- 此函数含有一个可选参数“数量”
- MID( "This is a sample", 2, 3 ) //表示取从第2个位置开始,取3个字符,返回结果 s i。
- MID( "This is a sample", 2 ) //表示取从第2个位置开始到末尾,返回结果 s is a sample。
可变参数个数 对于一些函数来说,参数个数可能是不确定的,在函数定义中只要在最后出现三个点 ... 则表示此函数接受不固定参数个数。如下面的函数:
MAX( 数字1, 数字2, [数字3,...] ) -- 此函数求最大值,允许参数个数不固定,但必须至少两个。
- MAX( 1, 2 ) //传入两个参数给函数, 返回结果为数字 2
- MAX( 3, 6, 10, 1, 2 ) //传入五个参数给函数, 返回结果为数字 10
参数数据类型 函数会自动转换参数的数据类型。比如: CHAR函数,它需要一个编码数字,正常调用时需要一个数字,但也可以直接使用文本做为参数,下列的调用例子都是合法的。
- CHAR( 65 ) //返回文本 "A"
- CHAR( "65" ) //函数会自动把文本 "65" 转换成数字 65, 最终返回正确的文本 "A"
更多
有关变量和表达式的更多内容,请点击此处。