报表系统 表达式详解

 

单元格表达式

单元格表达式直接在单元格中定义,例如:=sum(A1:A2),类似MS Excel计算公式。当前版本支持以下函数:

ABS、ACOS、ACOSH、AND、ASIN、ASINH、ATAN、ATAN2、ATANH、AVERAGE、AVERAGEA、COS、COSH、COUNT、COUNTA、COUNTBLANK、COUNTIF、DATE、DAY、DOLLAR、EXP、FACT、INT、IF、LN、LOG、LOG10、MAX、MIN、MOD、MONTH、NOT、NOW、ODD、OR、PI、POWER、RADIANS、RAND、ROUND、ROUNDDOWN、ROUNDUP、SIGN、SIN、SINH、SQRT、SUM、SUMSQ、TAN、TANH、TIME、TODAY、TRUNC、YEAR、WEEKDAY、FALSE、TRUE、EVEN、TRIM、CEILING、FLOOR、CONCATENATE、DEGREES、FIXED、HOUR、MINUTE、SECOND、ISEVEN、ISODD、ISBLANK、ISNA、ISLOGICAL、ISERR、ISERROR、ISNONTEXT、ISNUMBER、ISTEXT、LEN、LEFT、RIGHT、MID、LOWER、UPPER、SUMIF、COUNTIF、AVERAGEIF、HLOOKUP、VLOOKUP、RANK

每个函数具体如何应用,请参考EXCEL函数帮助文档。

数据列筛选条件表达式

数据列筛选条件表达式由函数、算术运算符、关系运算符以及逻辑运算符构成。

  • 算术运算符包含:+、-、*、/、MOD(取余);

  • 关系运算符包含:=、<>、<、<=、>=、>、LIKE(形如)、IN(属于)、NOTIN(不属于)、BETWEEN(介于)、ISNOTNULL(有值)、ISNULL(无值)

  • 逻辑运算符包含:&&(与)、||(或)、!(非)

  • 函数包含以下几大类:

    • 数值(含货币)函数

    • 日期和时间函数

    • 字符串函数

    • 集合函数

    • 转换函数

    • 类型不定函数

    • 系统函数

    • 常量

数值(含货币)函数

FLOOR(<数值表达式>)

此函数返回数值表达式的整数部分。例如:FLOOR(125.34) 返回结果为:125。参数类型必须是数值型或者货币型。

ROUND(<数值表达式>,整数)

此函数整数部分规定保留的小数点位数。例如:ROUND (125.256,2) 返回结果为:125.26。

RAND()

返回一个0至1之间随机数。

ABS(<数值表达式>)

此函数返回数值表达式的绝对值。例如:ABS (-125) 返回结果为:125。参数类型必须是数值型或者货币型。

日期表达式

YEAR(<日期表达式>)

此函数返回日期表达式的年份值。例如:YEAR(#2007.1.28#) 返回结果为:2007。

MONTH(<日期表达式>)

此函数返回日期表达式的月份值。例如:MONTH(#2007.1.28#) 返回结果为:1。

DAY(<日期表达式>)

此函数返回日期表达式的天数。例如:DAY(#2007.1.28#) 返回结果为:28。

QUARTER(<日期表达式>)

此函数返回日期表达式的季度值。例如:QUARTER(#2007.1.28#) 返回结果为:1。

WEEK(<日期表达式>)

此函数返回日期表达式的周数。例如:WEEK(#2007.1.28#) 返回结果为:4。

DAYOFWEEK(<日期表达式>)

此函数返回日期表达式的星期数。注:星期日返回1,星期一返回2,依次类推。

例如:DAYOFWEEK (#2007.1.28#) 返回结果为:1

HOUR(<日期表达式>)

此函数返回日期表达式的小时数。例如:HOUR(#2007.1.28 09:59:42#) 返回结果为:9

MINUTE(<日期表达式>)

此函数返回日期表达式的分钟数。例如:MINUTE(#2007.1.28 09:59:42#) 返回结果为:59。

SECOND(<日期表达式>)

此函数返回日期表达式的秒数。例如:SECOND(#2007.1.28 09:59:42#) 返回结果为:42。

THISDATE

此函数返回当前日期。

THISYEAR

此函数返回当前年份值。

THISQUARTER

此函数返回当前季度值。

THISMONTH

此函数返回当前月份值。

THISWEEK

此函数返回当前周数。

THISDAYOFWEEK

此函数返回当前星期数。注:星期日返回1,星期一返回2,依次类推

THISHOUR

此函数返回当前时间小时部分。

THISMINUTE

此函数返回当前时间分钟部分。

THISSECOND

此函数返回当前时间秒部分。

YEARBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的年份值。例如:YEARBETWEEN(#2005.07.03#,#2007.07.28#) 返回结果为:2。

MONTHBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的月份值。例如:MONTHBETWEEN(#2007.01.28#,#2007.07.28#) 返回结果为:6。

DAYBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的天数。例如:DAYBETWEEN(#2007.01.03#,#2007.01.28#) 返回结果为:25。

QUARTERBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的季度值。例如:QUARTERBETWEEN(#2007.01.03#,#2007.07.28#) 返回结果为:2。

WEEKBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的周数。例如:WEEKBETWEEN(#2007.01.03#,#2007.01.28#) 返回结果为:3。

HOURBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的小时值。

例如:HOURTWEEN(#2007.01.03 09:59:42#,#2007.01.24 10:59:42#) 返回结果为:1

MINUTEBETWEEN(<日期表达式1>,<日期表达式2>)

此函数返回日期表达式1到日期表达式2的分钟值。

例如:MINUTEBETWEEN(#2007.01.03 09:59:42#,#2007.01.24 10:59:42#) 返回结果为:60

SECONDBETWEEN (<日期表达式1>,<日期表达式2>)

此函数返回日期表达式的秒部分。例如:SECONDBETWEEN(#2007.1.28 09:59:42#) 返回结果为:42

ADDYEAR(<日期表达式>,整数)

此函数返回日期表达式增加指定年数后的日期值。例如:ADDYEAR(#2005.07.03#,2) 返回结果为:#2007.07.03#。

ADDMONTH(<日期表达式>,整数)

此函数返回日期表达式增加指定月数后的日期值。例如:ADDMONTH(#2007.07.03#,2) 返回结果为:#2007.09.03#。

ADDDAY(<日期表达式>,整数)

此函数返回日期表达式增加指定日数后的日期值。例如:ADDDAY(#2005.07.03#,2) 返回结果为:#2005.07.05#。

ADDQUARTER(<日期表达式>,整数)

此函数返回日期表达式增加指定季节数后的日期值。例如:ADDQUARTER(#2007.01.03#,2) 返回结果为:#2007.07.03#。

ADDWEEK(<日期表达式>,整数)

此函数返回日期表达式增加指定周数后的日期值。例如:ADDWEEK(#2007.01.03#,3) 返回结果为:#2007.01.24#。

ADDHOUR(<日期表达式>,整数)

此函数返回日期表达式增加指定小时后的日期值。例如:ADDHOUR(#09:59:42#,1) 返回结果为:#10:59:42#。

ADDMINUTE(<日期表达式>,整数)

此函数返回日期表达式增加指定分钟后的日期值。例如:ADDMINUTE(#09:59:42#,2) 返回结果为:#10:01:42#。

ADDSECOND (<日期表达式>,整数)

此函数返回日期表达式增加指定秒后的日期值。例如:ADDSECOND (#09:59:42#,1) 返回结果为:#09:59:43#。

字符串函数

CONCAT(<字符串表达式1>,<字符串表达式2>,...,<字符串表达式n>)

此函数连接多个字符串。例如:CONCAT(“abc”,”def”,”g”) 返回结果为:”abcdefg”。

TRIM(<字符串表达式>)

此函数截取字符串表达式左右两边多余空格。例如:TRIM(“ abc “) 返回结果为:”abc”。

LTRIM(<字符串表达式>)

此函数截取字符串表达式左边多余空格。例如:LTRIM(“ abc “) 返回结果为:”abc “。

RTRIM(<字符串表达式>)

此函数截取字符串表达式左边多余空格。例如:RTRIM(“ abc “) 返回结果为:” abc”。

SUBSTR(<字符串表达式>,起始位,长度>)

此函数返回字符串表达式从[起始位]开始共[长度]个字符的子串。例如:SUBSTR(“abcd”, 2, 2) 返回结果为:”bc”。

STRLEN(<字符串表达式>)

此函数返回字符串表达式所包含的字符个数。例如:STRLEN(“abcd你好”) 返回结果为:6。

LEFT(<字符串表达式>,长度>)

此函数返回字符串表达式左边开始共[长度]个字符的子串。例如:LEFT(“abcd你好”, 5) 返回结果为:”abcd你”。

RIGHT(<字符串表达式>,长度>)

此函数返回字符串表达式右边开始共[长度]个字符的子串。例如:左串(“abcd你好”, 3) 返回结果为:”d你好”。

STRPOS(<字符串表达式1>,<字符串表达式2>)

此函数返回字符串表达式1中首次出现字符串表达式2的位置,字符位置从1开始计数,未搜索到时返回0。 例如:STRPOS(“abcd你好”, “bcd”) 返回结果为:2。

REPLACE(<待搜索的字符串表达式>,<待查找的字符串表达式>,<替换用的字符串表达式>)

此函数返回用替换用的字符串表达式替换待搜索的字符串表达式中出现的所有待查找的字符串表达式。例如:REPLACE(“abcdefghicde”,”cde”,”xxx”) 返回结果为:abxxxfghixxx。

REG(<字符串表达式>,<正则表达式>)

此函数返回字符串表达式是否满足正则表达式规则,满足返回1,否则返回0。例如:REG(“fo o”, “^fo o$”) 返回结果为:1。

PINYINQUANMA(<字符串表达式>)

返回<字符串表达式>对应的拼音。 例如:PINYINQUANMA(“中国”),返回结果为:zhongguo。

PINYINJIANMA(<字符串表达式>)

返回<字符串表达式>对应的拼音简称。 例如:PINYINJIANMA(“中国”),返回结果为:zg。

集合函数

SET(<表达式1>,<表达式2>,<表达式3>)

例如:集合(1,2,3,4),集合(”abc”,”cde”,”efg”)。

转换函数

STRTODATETIME (<字符串表达式>)

把字符串表达式转换为日期型。

STRTOFLOAT(<字符串表达式>)

把字符串表达式转换为数值型。

FLOATTOSTR(<数值表达式>)

把数值表达式转换为字符型。

FLOATTODATETIME(<数值表达式>)

把数值表达式转换为日期型。

DATETIMETOSTR(<日期表达式>)

把日期表达式转换为字符型。

类型不定函数

IF THEN [ELSE] END

例如:IF 商品=“牛奶” THEN 0.02 ELSE 0.1 END,其中ELSE部分可以省略。

CASE IF cexpr1 THEN expr1 IF cexpr2 THEN expr2 [ELSE exprn] END

例如:CASE IF 商品=“牛奶” THEN 0.02

IF 商品=“面包” THEN 0.015

IF 商品=“电视” THEN 0.15

ELSE 0.1 END

GREATER (表达式1,表达式2)

返回表达式1、表达式2中的较大者。

LESS (表达式1,表达式2)

返回表达式1、表达式2中的较小者。

系统函数

LOGIN_UNIT

返回当前单位名称。

LOGIN_USER

返回当前登录系统的用户姓名。

LOGIN_DEPT

返回当前登录系统的用户所在的部门名称。

LOGIN_PRIV

返回当前登录系统的用户所在的角色名称。

WRITE_DEPT

返回当前数据的创建者所在部门名称。

WRITER

返回当前数据的创建者姓名。

WRITETIME

返回当前数据的创建日期。

SYSDATE

返回系统时间戳。

LOGIN_USER_ID

返回当前登录用户USER_ID。

LOGIN_DEPT_ID

返回当前登录用户所属部门DEPT_ID。

LONG_DEPT_NAME

返回当前登录用户所属部门长部门名称,例如:分公司一/财务部。

LOGIN_OTHER_PRIV

返回当前登录用户辅助角色ID。

LOGIN_UID

返回当前登陆用户UID。

常量

TRUE

FALSE

NULL

#2007.1.28#:

返回2007年1月28日。

#1.28#:

返回本年1月28日。注意:日期常量用"#” 引起来。

"张三”:

返回字符常量张三。注意:字符常量用””(英文半角双引号)引起来。

原文地址:https://www.cnblogs.com/tongdaoa/p/15033272.html