公式语法规则和常用函数说明
一、元素表示
1、如何表示指标
指标用指标名+一对方括号表示,如[利润]、[成本]。
2、如何表示关键字
关键字用关键字名+一对花括号括号表示,如 {年}、{月}、{单位编码}。
二、表达式
1、算术表达式
由指标、关键字、常数、函数、算术运算符组成的计算序列。计算的结果为确定值。
<;算术表达式> ::= <;表达式因子><;算术运算符><;表达式因子>
<;表达式因子> ::= <;指标> | <;关键字> | <;数值>|<;字符串>|<;函数>|'('<;算术表达式>')' <;算术运算符> = '+' |'-'|'*'|'/'
*字符串可以用单引号或双引号括起
2、逻辑表达式
由算术表达式、比较运算符、逻辑运算符组成的计算序列
<;逻辑表达式> ::= <;逻辑表达式因子><;逻辑运算符><;逻辑表达式因子>
<;逻辑表达式因子> = (<;算术表达式><;比较运算符><;算术表达式>)|'('<;逻辑表达式>')' <;比较运算符> = '=' | '>' | '>=' | '<'| '<=' | '<>'| 'LIKE'
<;逻辑运算符> = 'AND' | 'OR'
3、函数及参数使用说明
函数基本格式:函数名(参数)
不同名称的函数具有不同的作用。函数的参数,根据所用函数不同,参数的个数与参数值的类型要求不同,具体可查看各个函数的帮助说明。
函数分类:关键字函数、指标函数、数学函数、字符函数、日期函数、条件函数、业务处理函数等。
说明:
1)函数名不区分大小写;
2)在iUFO 中取数时,建议参数都用引号引起来。否则当参数值过长时,会取不到数。
3)函数中的各参数之间用逗号分隔,即使参数为空,其对应的逗号仍不能省略。
三、通配符
在对字符串的逻辑表达式中,也可以使用'LIKE'运算符并配合通配字符来进行模糊比较运算。以下是可以使用的通配字符:
%: 0/多个字符, 如'AB%'表示"AB"后接任何字符的字符串,AB、AB34\
_ :单个字符,如'_AB'表示"AB"之前为任意字符,iAB,2AB
在用作筛选条件的逻辑表达式中使用通配符,可以筛选出一批符合条件的记录。例如:K(‘单位->单位级次编码’) LIKE DWXX(‘1001’,’单位->单位级次编码’)+’%’表示单位编码为“1001”的单位及其所有下级单位。
四、常用函数
1、数学函数
(1)绝对值函数:ABS(<;算术表达式>)
(2)平方根函数:SQR(<;算术表达式>)
(3)四舍五入函数:ROUND(<;算术表达式>,位数)
(4)正弦函数:SIN(<;算术表达式>)
(5)余弦函数:COS(<;算术表达式>)
(6)正切数:TAN(<;算术表达式>)
(7)余切函数:CTAN(<;算术表达式>)
(8)取整函数:INT(<;算术表达式>)
(9)计算以e为底的对数函数:LN(<;算术表达式>)
(10)计算以10为底的对数函数:LOG(<;算术表达式>)
(11)计算以e为底的指数值函数:EXP(<;算术表达式>)
(12)指数函数,例如参数为2,3那么计算2的3次方函数:POWER(<;算术表达式>, <;算术表达式>)
(13)圆周率函数:PAI()
2、字符处理函数
(1)字符串长度函数:LEN(<;字符串表达式>)
(2)取子串函数:SUBSTR("<;字符串表达式>"[,<;起始位置>][,<;字符长度>])
(3)去空格函数:TRIM(<;字符串表达式>)
(4)字符串转换为小写字母函数:LOWER(<;字符串表达式>)
(5)字符串转换为大写字母函数:UPPER(<;字符串表达式>)
(6)字符串转换为数值 :VAL(<;字符串表达式>)
(7)数值转换为字符串 :STR(<;数值表达式>)
3、时间和日期函数
(1)日函数:DAY()  返回机器时间当前日信息,例如当前服务器时间为2002年7月25日,则DAY()返回值为25。
(2)月份函数:MONTH()  返回机器时间当前月信息,例如当前服务器时间为2002年7月25日,则DAY()返回值为7。
(3)季度函数:SEASON()  返回机器时间当前季信息,例如当前服务器时间为2002年7月25日,则DAY()返回值为3。
(4)年函数:YEAR()  返回机器时间当前年信息,例如当前服务器时间为2002年7月25日,则DAY()返回值为2002。
4、条件赋值/取值函数
IFF(<;逻辑表达式>,<;条件真值>,<;条件假值>)
当逻辑表达式的值为真时,返回<;条件真值>的结果,否则返回<;条件假值>;返回值类型视<;条件真值>和<;条件假值>而定,<;条件真值>和<;条件假值>的类型必须一致
例如:在A1单元定义公式A1=IFF(ZMONTH()=1,0,100),该公式表示:1月份A1单元的值为0,其他月份,A1单元的值为100。
5、统计函数
(1)合计值:PTOTAL(<;区域>,<;区域条件>)
返回指定区域在某一页符合区域筛选条件的数值单元的合计值。
(2)最大值:PMAX(<;区域>,<;区域条件>)
返回指定区域在某一页符合区域筛选条件的数值单元的最大值。
(3)最小值:PMIN(<;区域>,<;区域条件>)
返回指定区域在某一页符合区域筛选条件的数值单元的最小值。
(4)平均值:PAVG(<;区域>,<;区域条件>)
返回指定区域在某一页符合区域筛选条件的数值单元的平均值。
(5)区域单元个数:PCOUNT(区域,区域条件)
返回指定区域在某一页符合区域筛选条件的非表样单元的个数。
(6)区域数值单元的偏方差值:PSTD(区域,区域条件)
返回指定区域在某一页符合区域筛选条件的数值单元的偏方差值。
(7)区域方差值:VAR(区域,区域条件)
返回指定区域在某一页符合区域筛选条件的数值单元的方差值。
统计函数只对数值类型的指标进行统计
另外,统计函数和SELECT函数只对指标的决算类型的值进行统计,并且只统计固定指标。
6、关键字函数
(1)根据当前输入日期返回年:ZYEAR()
例如,报表录入日期为2002年07月25日,则ZYEAR()返回值为2002。
(2)根据当前输入日期返回季:ZSEASON()
例如,报表录入日期为2002年07月25日,则ZSEASON()返回值为3。
(3)根据当前输入日期返回月:ZMONTH()
例如,报表录入日期为2002年07月25日,则ZMONTH()返回值为7。
(4)根据当前输入日期返回旬:ZPERIOD()
例如,报表录入日期为2002年07月25日,则ZPERIOD()返回值为21。
(5)根据当前输入日期返回日:ZDAY()
例如,报表录入日期为2002年07月25日,则ZDAY()返回值为25。
(6)本单位编码:ZDW()
例如,报表录入单位的单位编码为“100A”,则ZDW()返回值为字符串“100A”。(7)关键字1: ZKEY1()
例如,报表录入自定义关键字1的值为“AAA”,则ZKEY1()返回值为字符串“AAA”。(8)关键字2: ZKEY2()
例如,报表录入自定义关键字2的值为“BBB”,则ZKEY2()返回值为字符串“BBB”。(9)关键字3: ZKEY3()
例如,报表录入自定义关键字3的值为“CCC”,则ZKEY3()返回值为字符串“CCC”。7、指标函数
(1) MSELECT(<;指标>,[日期关键字],[日期偏移],[关键字]1,[关键字2],[关键字3])
返回某指标在当前任务中的满足条件的值。此时,单位为当前单位.
日期类型:日期关键字缺省时,为当前任务的日期类型
日期偏移:算术表达式,表示相对于当前日期值的偏移值,如-1, +1, -本月(),缺省为0
关键字1:纯字符串,如"123",缺省为当前关键字1的值
关键字2:纯字符串,如"123",缺省为当前关键字2的值
关键字 3:纯字符串,如"123",缺省为当前关键字3的值
例如,假设当前任务为月任务,MSELECT([收入],{月},-ZMONTH())返回指标“收入”按当前录入月份减去“-ZMONTH()”个月的那一个月的值,因为ZMONTH()的值为当前录入日期的月份数,所以假设当前录入日期为2002年5月,往前倒推5个月,返回值就是指标“收入”2001年12月的数。举例中的公式可用于资产负债表月报中,年初余额的取值。
(2) MSUM(<;指标>,[任务名],[条件])
返回某指标在指定任务中,符合一定条件的值的汇总结果。任务名缺省为当前任务,条件缺省为所有值。
字符串长度规则
例如,任务”统计月报”为月报,公式MSUM([收入],“统计月报”,{单位编码} like “AAA%”and {年}=ZYEAR())返回值为“统计月报”任务中,单位编码是“AAA”的单位及其下属单位,当前年度所有月份“收入”指标的合计值。
(3) MAVG(<;指标>,[任务名],[条件])
返回某指标在指定任务中,符合一定条件的平均值。任务名缺省为当前任务,条件缺省为所有值。
例如,任务”统计月报”为月报,公式MAVG([收入],“统计月报”,{单位编码} like “AAA%”and {年}=ZYEAR())返回值为“统计月报”任务中,单位编码是“AAA”的单位及其下属单位,当前年度月份“收入”指标的平均值。
(4) MCOUNT(<;指标>,[任务名],[条件])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。