集算报表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})
主要改变:函数名称变化。
举例: