集算报表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})

主要改变:函数名称变化。

举例:

\