條件判斷函數

條件，非零表示滿足條件

條件滿足時的返回值

條件未滿足時的返回值

見參數
=if(getDay(now())<10, '上旬', if(getDay(now())>=20,'下旬','中旬'))
調用頁面的javascript函數
反向調用當前頁面的JavaScript函數(“當前頁面”是指包容當前控件的頁面)

要調用的js函數名

可選, 該js函數的第一個參數

可選, 該js函數的第二個參數，以下以此類推...

由js函數決定
=js('getProd', '1', 'true')<br>當前頁面上應該有名為getProd的js函數，例如：<br>function getProd(index, isOpened)<br>{<br>　...<br>　return 1;<br>}
求和

參數數量可任意

數值
=sum(1, 220, sum(22, 33))<br>在Report中，參數可以含有單元名，例如 sum(D4:D9, B5, B7)
數組求和

參數數量可任意，參數的形式是以某個字符分隔的多個數字

和參數類似的形式
分隔符可以是除空格外的任意字符(或字符串)，但必須保持一致
=sumDim("1.1 / 2.1 / 3", "10 / 20 / 30") 返回的將是串"11.1 / 22.1 / 33"<br>在Report中，參數可以含有單元名，例如 sumDim(D4:D9)
求平均值

參數數量可任意

數值
求最大值

參數數量可任意

數值
求最小值

參數數量可任意

數值
求百分比

數字

可選, 小數位數，默認為0

百分比串，帶'%'符號
=percent(0.12345, 2)，返回值為串“12.35%”
絕對值

數字

正數
四舍五入

數字

小數位數

數值
取整

數字

整數
求余數

被除數

除數

余數
小于n(參數)的最大整數

數字

整數
大于n(參數)的最小整數

數字

整數
平方根

數字

數值
e的n次冪

數字

數值
log

數字

數值
以10為底的log
數值
n(參數)的n次方

底數

冪數

數值
隨機數
0 - 0.99
取串長度(字數)

串

數值
=len('字符串12')，返回值5
取串的左n個字

串

字數

串
取串的右n個字

串

字數

串
取串的中間若干個字

串

位置(從0開始)

字數

串
取子串在串中的位置

串

子串

可選, 開始查找位置，默認為0

可選, 大小寫是否敏感，默認為0(即不敏感)

位置，從0開始，-1表示未找到
串是否以某子串結尾

串

子串

可選, 大小寫是否敏感，默認為0(即不敏感)

1/0, 表示是/否
比較2個串

串1

串2

可選, 大小寫是否敏感，默認為0(即不敏感)

整數，0表示相等；大于0表示串1大于串2；小于0表示串1小于串2
替換串的中間若干個字

串

位置(從0開始)

長度

替換的串

被替換后的串
替換串的中某些子串

串

需要被替換的串

替換的新串

被替換后的串
=replaceAll('ABCA', 'A', '02')，返回值為串“02BC02”
把串中的英文轉換為小寫

串

串
把串中的英文轉換為大寫

串

串
除去串的首尾空格、或任意串

串

可選，要除去的串，默認空格

串
除去串的左側空格、或任意串

串

可選，要除去的串，默認空格

串
除去串的尾部空格、或任意串

串

可選，要除去的串，默認空格

串
對文字進行URI編碼

串

串
encodeURI不會對數字、字母和“-_.!~*'()”進行編碼，也不會對有特殊含義的“;/?:@=+$,#&”進行編碼
=encodeURI('http://www.supcan.cn/supcan?val=碩正RIA')，返回值為串“http://www.supcan.cn/supcan?val=%e7%a1%95%e6%ad%a3RIA”
對更多文字進行URI編碼

串

串
和encodeURI的唯一差別是：會對有特殊含義的“;/?:@=+$,#&”進行編碼
=encodeURIComponent('碩正RIA')，返回值為串“%e7%a1%95%e6%ad%a3RIA”
英文數字

數字

串
=englishNum(10123.24)，返回值為串“ten thousand one hundred and twenty three point twenty four”
中文大寫

0至9之間的數字，允許有多個數字

1 表示普通的中文大寫，0或忽略該參數表示中文金額的大寫

串
=chineseNum(123) 返回值為串“壹貳叁”; =chineseNum(123, 1) 返回值為串“一二三”
人民幣大寫

數字

串
=rmb(10123.24)，返回值為串“壹萬零壹佰貳拾叁元貳角肆分”
按指定掩碼表示日期

日期串

掩碼，如'YYYY.MM.DD hh:mm:ss'、'YY年度'.<br> 上面的Y、M、D、h、m、s為掩碼保留字，次序位置無規定，其含義說明如下：<br> Y - 年，YYYY表示4位顯示, YY表示顯示后2位;<br> M - 月，MM表示2位顯示，不足2位的左側以'0'填補;<br> D - 日，DD表示2位顯示，不足2位的左側以'0'填補;<br> Month(或Mon) - 英文的月份;<br> Month.(或Mon.) - 英文的月份縮寫;<br> Day - 英文的星期;<br> Day. - 英文的星期縮寫;<br> h - 小時，hh表示2位顯示，不足2位的左側以'0'填補;<br> m - 分鐘，mm表示2位顯示，不足2位的左側以'0'填補;<br> s - 秒，ss表示2位顯示，不足2位的左側以'0'填補;<br>

串
=formatdate(now(), 'YYYY年MM月DD日')，返回值例如“2010年08月05日”<br> =formatdate(now(), 'YYYY年M月D日')，返回值例如“2010年8月15日”<br> =formatdate(now(), 'D, Month YYYY, day')，返回值例如“15, August 2010, Sunday”
按指定掩碼表示數值

數值

掩碼，如'#,##0.00'、'共：#.00# 噸'. 掩碼中'0'表示固定位、'#'表示任意位、','表示千位符.

=formatNum(12345.6, '#,##0.00')，返回“12,345.60”;<br> =formatNum(0, '#.#')，返回空串;<br> =formatNum(0, '#,##0.00')，返回"0.00";<br> =formatNum(123456, '編碼 00 - 00 - 00 - 00')，返回"編碼 00 - 12 - 34 - 56";<br> =formatNum(1234.5678, '00.00')，返回"34.56";<br>
最常用的掩碼為"#,##0.00"，表示小數始終顯示2位、整數部分任意但至少有1位、且以千位符分隔.
串
中文的日期表示

日期串

可選, 掩碼，默認是'YYYY年MM月DD日'

串
中國銀行的日期表示

日期串

格式，默認是'YYYY年MM月DD日'

串
=chineseBankDate(now())，返回值例如“貳零壹零年零捌月壹拾伍日”
2個日期的年度之差

日期1

日期2

數值
2個日期的月份之差

日期1

日期2

數值
=dateDifMonths('2010.1.19', '2010.12.21')，返回11
2個日期的天數之差

日期1

日期2

數值
2個日期的小時之差

日期1

日期2

數值
2個日期的分鐘數之差

日期1

日期2

數值
日期增加若干年

日期

數字

新的日期
日期增加若干月

日期

數字

新的日期
日期增加若干天

日期

數字

新的日期
日期增加若干小時

日期

數字

新的日期
日期增加若干分鐘

日期

數字

新的日期
取某日期的年度

日期

數值
取某日期的月份

日期

數值
取某日期的日期號

日期

數值
取某日期時間型串的小時

日期

數值
取某日期時間型串的分鐘

日期

數值
取當前日期

可選, 格式掩碼，默認是'%Y.%m.%d %H:%M:%S'，掩碼含義如下(注意大小寫)：<br> %Y - 4位數字的年;<br> %y - 2位數字的年;<br> %m - 月份(01至12);<br> %d - 月中的某日(01至31);<br> %H - 小時(24小時制，00至23);<br> %I - 小時(12小時制，01至12);<br> %M - 分鐘(00至59);<br> %S - 秒鐘(00至59);<br> %p - AM/PM表示上午/下午;<br> %x - 日期的英文普遍寫法;<br> %X - 時間的英文普遍寫法;<br> %c - 日期時間的英文普遍寫法;<br> %b - 月份的英文縮寫;<br> %B - 月份的英文全稱;<br> %a - 星期的英文縮寫;<br> %A - 星期的英文全稱;<br> %w - 數字表示的星期(0至6, 0是星期天);<br> %j - 相對于1月1日的日期差(001至366);<br> %Z - 和GMT(或UTC)時區的時差;<br> 選項：<br> /Z - 轉換為GMT(或UTC)時間;<br>

日期串
以北京時間2011.1.20 08:00:00為例:<br>now("%Y.%m.%dT%H:%M:%S%Z")將顯示為 2011.01.20T08:00:00+08:00<br>now("%Y.%m.%dT%H:%M:%SZ/Z")將顯示為 2011.01.20T00:00:00Z
比較2個日期大小

日期1

日期2

1、0或-1，分別表示大于、等于或小于
取得某日期的月初日期

日期

日期
取得某日期的季初日期

日期

日期
假如今天是2012.9.5， firstDateOfSeason(now( )) 將返回 “2012.7.1 00:00:00”
取得某日期的年初日期

日期

日期
假如今天是2012.9.5， firstDateOfYear(now( )) 將返回 “2012.1.1 00:00:00”
取得某日期的月末日期

日期

日期
取得某日期的季末日期

日期

日期
假如今天是2012.8.5， lastDateOfSeason(now( )) 將返回 “2012.9.30 23:59:59”
取得某日期的年末日期

日期

日期
假如今天是2012.8.5， lastDateOfYear(now( )) 將返回 “2012.12.31 23:59:59”
判斷某單元格內容是否為null

列名，如果為串"data", 則表示自己(當前列)

1/0 - 是/否
1.僅用于Treelist的表達式中;<br> 2.參數必須以引號圍繞，例如 isNull('price')，否則將無法計算;<br> 3.參數可以帶 @origin 宏，表示取原始數據，例如 isNull('price@origin');<br> 4.只支持數值型、日期型的列，對string列無效;<br> 5.本函數一般用于需要精確判斷 0 或 null 的特定場合，在大多數情況下，直接用 price==0 判斷即可，比如表達式: if(price==0, '未輸入', data), 不管price的值為0或為null, 等式 "price==0" 均是成立的;<br>
例一.列的屬性定義: displayMask="if(isNull('price'), '未輸入', data)"<br> 例二.執行js過濾： var s = AF.func("FindAll", "isNull('price')");
單元格引用函數(僅用于Supcan Report)

行號

列號

可選, 工作表序號(從1開始計數), 默認是當前工作表

單元格內容
為了方便，允許直接用單元名(如B3、C8)代替本函數
=ref(3,2)，等同于 =B3<br>=ref(3,2,1)，等同于=B3@sheet1<br>=sum(ref(1,2,3,4,5))，等同于=sum(B1:D3@sheet5)<br>注："@sheet"的含義請參見下面的“宏”
從其它報表引用數據(僅用于Supcan Report)

行號

列號

其它報表的絕對URL或相對URL(相對于當前頁面)

可選, 工作表序號(從1開始計數), 默認第一張工作表

可選, 1 表示該表加載后需要先經過計算處理，默認是 0

單元格內容
=ref(3,2, "../reports/reportfin2.xml", 8, 1); 表示從"../reports/reportfin2.xml"報表的第八個工作表取數，報表是需要先計算的.
引用某別名的單元格(僅用于Supcan Report)

別名

可選, 工作表序號(從1開始計數), 默認是當前工作表

可選, 其它報表的絕對URL或相對URL(相對于當前頁面)

可選, 1 表示該表加載后需要先經過計算處理，默認是 0

單元格內容
參數2、3的次序可以互換
=refAlias('price'), 等同于=@Aliasprice<br>=refAlias('price', 2), 等同于=@Aliasprice@sheet2<br>=refAlias('price', 1, "../reports/reportfin2.xml");<br>注："@Alias"、"@sheet"的含義請參見下面的“宏”
按條件求sum(僅用于Supcan Report)

以冒號分隔的單元格區域

條件表達式

值
條件表達式的寫法比較靈活，里面可以內嵌函數、引用別的單元格，比如:<br> <b>"data > 100"</b>, 變量 data 表示單元格的數據，也可以和Excel那樣，簡寫成 "> 100";<br> <b>"data >= 100 + A5"</b>, A5是單元格名，表示引用該單元格數據;<br>
=sumif(A2:B20, ">200"); //對A2到B20區域內，數值大于200的內容求和<br> =sumif(A2:B20, "data>K20 and data!=K21"); //對A2到B20區域內，數值大于K20單元格數據、且不等于K21單元格的內容求和<br>
按條件求sum(僅用于Supcan Report)

以冒號分隔的單元格區域，供條件判斷用

條件表達式，參見 語法一 中的備注

以冒號分隔的單元格區域，數據區

值
=sumif(A2:A20, ">200", B2:B20); //A2到A20區域內，數值大于200的內容，對B2:B20對應內容求和<br> =sumif(A2:A20, "left(data, 2)='CA'", B2:B20); //以“CA”開頭的單元格(A2到A20區域內容是字符串)，對應到B2:B20區域內容求和<br> =sumif(A2:@A2, "left(data, 2)='CA'", B2:@B2); //和上例同，只是區域是數據源的填入區
當前打印頁(僅用于Supcan Report)
頁碼，從1開始
請參見demo頁：15.分類匯總
總共打印頁(僅用于Supcan Report)
總頁數
請參見demo頁：15.分類匯總
順序填入數據源中的數據行(僅用于Report組件)

數據源名, 如果是XML類型的臨時數據源，還可以在斜杠"\"后跟隨XML節點名

可選, 可跟隨多個參數, 具體的參數由數據源規定

=dataRow('ds1'); //表示在此處開始填入'ds1'數據源的數據<br> =dataRow('ds1\\node1'); //表示在此處開始填入'ds1'XML數據源中node1節點的數據
填入數據源的標題行(僅用于Report組件)

數據源名, 如果是XML類型的臨時數據源，還可以在斜杠"\"后跟隨XML節點名

可選, 可跟隨多個參數, 具體的參數由數據源規定

=headRow('ds1')，表示本行從本單元格開始填入'ds1'數據源的列標題
取得數據源中的單個數據(僅用于Report組件)

數據源名, 如果是XML類型的臨時數據源，還可以在斜杠"\"后跟隨XML節點名

行號(從1開始計數)

列號或列名

可選, 可跟隨多個參數, 具體的參數由數據源規定

數據源中的數據
=data('ds1', 1, 'price')，表示本單元格(或本文本框)填入'ds1'數據源第一行、price列的數據
取得數據源的單個標題(僅用于Report組件)

數據源名, 如果是XML類型的臨時數據源，還可以在斜杠"\"后跟隨XML節點名

列號或列名

可選, 可跟隨多個參數, 具體的參數由數據源規定

標題串
取得數據源總行數(僅用于Report組件)

數據源名, 如果是XML類型的臨時數據源，還可以在斜杠"\"后跟隨XML節點名

可選, 可跟隨多個參數, 具體的參數由數據源規定

數字
填入數據源中的行號(僅用于Report組件)
備注：同一行中，應該有包含dataRow( )函數的單元格
請參見demo頁：26.從HTML Table數據源取數(2)