集算报表5.0在保留润乾报表V4.x的核心功能外,进行了优化和精简,其中报表函数也做了适当优化,这里就常见计算来比较一下二者函数语法之间的差异。?
对比函数一览表
?
1、数据集函数
1.1ds.group()
润乾报表:
datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
集算报表:
datasetName.group(<selectExp>{,filter_exp};{sort1}{:order1},…;{ groupSortExp }:{ groupOrderExp })
?
选项:@r??????? 是否root数据集表达式。
?
主要改变:
(1)[email protected],取代原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、all()/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})
?
主要改变:函数名称变化。?
?
示例:
?