1. 程式人生 > 其它 >報表系統 表示式詳解

報表系統 表示式詳解

單元格表示式

單元格表示式直接在單元格中定義,例如:=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\no”, “\^fo\no$”) 返回結果為: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日。注意:日期常量用"#” 引起來。

"張三”:

返回字元常量張三。注意:字元常量用””(英文半形雙引號)引起來。