集算報表5.0在保留潤乾報表V4.x的核心功能外,進行了優化和精簡。當中報表函數也做了適當優化,這里就常見計算來比較一下二者函數語法之間的差異。
對照函數一覽表

1、數據集函數
1.1、ds.group()
潤乾報表:
datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
集算報表:
datasetName.group(<selectExp>{,filter_exp};{sort1}{:order1},…;{groupSortExp }:{ groupOrderExp })
選項:
@r 是否root數據集表達式。
主要改變:
1、 添加@r函數選項。代替原rootGroupExp表達式參數。
2、 取消分組前記錄的排序順序descExp參數。
3、 更改排序表達式和排序順序參數語法。
舉例:

1.2、ds.select()/ds.select1()
潤乾報表:
datasetName.select( <select_exp>{,desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
集算報表:
將原ds.select()和ds.select1()合並為ds.select(),語法例如以下:
datasetName.select(<select_exp>{:order_exp},{ filter_exp },{num_exp},{distinct_exp})
選項:
@r 是否root數據集表達式。
主要改變:
1、 添加@r函數選項。代替原rootGroupExp表達式參數;
2、 取消數據的排序順序descExp參數。
3、 更改排序順序參數語法。
舉例:
1.3、ds.sum()
潤乾報表:
datasetName.sum(selectExp{,filterExp{,rootGroupExp}})
集算報表:
datasetName.sum(selectExp{,filterExp})
選項:
@r 是否root數據集表達式
主要改變:添加@r函數選項,代替原rootGroupExp表達式參數。
舉例:
2、單元格函數
2.1、call()/call2()
潤乾報表:
call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})
call(dbName,sqlStatement{,arg1{,arg2{,arg3{,……}}}})
集算報表:
將原call()和call2()合並為call()。語法例如以下
call(sqlStatement{,arg1{,arg2{,arg3{,……}}}}{;dbName})
主要改變:數據源參數順序改變。並作為可選參數。
舉例:
2.2、if()
潤乾報表:
if(boolExp1,valueExp1{,boolExp2,valueExp2{,boolExp3,valueExp3 {, {defaultExp}}}})
集算報表:
if(x1:y1,…,xk:yk;y)
主要改變:函數參數分隔符變化。
舉例:
2.3、nvl()
潤乾報表:
nvl( valueExp1, valueExp2 )
集算報表:
ifn( valueExp1, valueExp2 )
主要改變:函數名稱變化。
舉例:
2.4、sum()
潤乾報表:
sum(expression)
sum(cellExp,exp)
集算報表:
sum(expression)
sum(cellExp,exp)
主要改變:無。
舉例:
2.5、value()
表示當前單元格的值,集算報表與潤乾報表使用方法同樣,沒有改變。
3、時間日期函數
3.1、date()
潤乾報表:
date(stringExp)
集算報表:
date(stringExp)
date(year,month,day)
主要改變:添加函數參數類型。
舉例:
3.2、datetime()/datetime2()
潤乾報表:
dateTime(string)
dateTime(long)
datetime2(string, format)
集算報表:
將原dateTime()和dateTime2()合並為datetime()。語法例如以下
datetime(string)
datetime(long)
主要改變:無。
舉例:
3.3、daysAfter()
潤乾報表:
daysAfter(dateExp1, dateExp2)
集算報表:
interval (datetimeExp1,datetimeExp2)
選項:
@y 計算兩個日期時間型數據相差幾年。
@q 計算兩個日期時間型數據相差幾季度;
@m 計算兩個日期時間型數據相差幾月;
@s 計算兩個日期時間型數據相差幾秒;
@ms 計算兩個日期時間型數據相差幾毫秒。
@r 計算兩個日期時間型數據間隔。返回實數。
缺省為計算兩個日期時間型數據相差幾天。
主要改變:
1、 函數名稱變化;
2、 添加了若干函數選項,以滿足不同須要。
舉例:

3.4、lastday()/lastmonth()/lastyear()/relDate()/relTime()
潤乾報表:
lastday(dateExp)
lastmonth( dateExp )
lastyear( dateExp )
relDate(dateExp, nExp)
relTime(datetimeExp, nExp)
集算報表:
將原lastday()/lastmonth()/lastyear()/relDate()/relTime()合並為afert(),語法例如以下
after (dateExp, n)
選項:
@y 計算與指定日期相差n年的新日期數據;
@q 計算與指定日期相差n季度的新日期數據。
@m 計算與指定日期相差n月的新日期數據。
@s 計算與指定日期相差n秒的新的日期時間數據。
@ms 計算與指定日期相差n毫秒的新的日期時間數據;
缺省時表示算出給定日期n天后的新日期數據。
主要改變:
1、 函數名稱變化。
2、 添加若干函數選項以滿足不同須要。
舉例:
3.5、monthbegin()/monthend()/queterbegin()/quaterend()/weekbegin()/weekend()
潤乾報表:
monthbegin( dateExp )
monthend( dateExp )
quaterbegin( dateExp )
quaterend( dateExp )
weekbegin(dateExp)
weekend(dateExp)
集算報表:
將原monthbegin()/monthend()/queterbegin()/quaterend()/weekbegin()/weekend()合並為pdate(),語法例如以下
pdate (dateExp)
選項:
@w 獲得指定日期所在星期的星期天;
@we 獲得指定日期所在星期的星期六。
@m 取得指定日期所在月的月首;
@me 取得指定日期所在月的月末;
@q 取得指定日期所在季度的首日。
@qe 取得指定日期所在季度的末日。
缺省為獲得指定日期所在星期的星期天。
主要改變:
1、 函數名稱變化;
2、 添加若干函數選項以滿足不同須要。
舉例:
4、字符串函數
4.1、like()
潤乾報表:
like( stringExp, formatExp{, ignoreCase} )
集算報表:
like( stringExp, formatExp{, ignoreCase} )
主要改變:無。
舉例:
4.2、rplc()
潤乾報表:
rplc( srcExp,subStrA,rplcStrB{,boolExp})
集算報表:
replace( src,a,b)
選項:
@q 引號里的字符不須要進行替換
主要改變:
1、 函數名稱變化;
2、 添加@q選項替代原boolExp參數,使引號里的字符不須要進行替換。
舉例:
4.3、split()
潤乾報表:
split( srcExp,sepExp{,boolExp})
集算報表:
split( srcExp,sepExp{,boolExp})
主要改變:無。
舉例:
5、數據類型轉換函數
5.1、str()
潤乾報表:
str(expression{, format})
集算報表:
string(expression{, format})
主要改變:函數名稱變化。
舉例:

