润乾报表函数

时间:2023-02-03 17:20:38

 函数示例:

        例1:ds1.select( name )

                从数据源ds1中选取name字段列的所有值,不排序

 

        例2:ds1.select( #2, true )

                从数据源ds1中选取第二个字段列的所有值并降序排列

 

        例3:ds1.select( name,false,sex=='1')

                从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列

 

        例4:ds1.select( name, true, sex=='1', id )

                从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列

=====================================================================   

示例:

        例1:ds1.select1(name)

                返回数据集ds1中第一条记录的name字段值

                

        例2:ds1.select1(name,score>90)

                从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值

======================================================================

示例:

        例1:ds1.group(class)

                把数据集ds1中所有记录按照class字段进行分组,

                并返回每组的class值组成的集合

        

        例2:ds1.group(class, true )

                把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,

                并返回每组的class值组成的集合

        

        例3:ds1.group(class,false,sex=='1')

                从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

        

        例4:ds1.group(class, true, sex=='1', id )

                从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

                

        例5:ds1.group(省份,true,,,sum(工业产值),true)

                对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),

                然后按照这个汇总值对组进行逆序排列

润乾报表:

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、 更改排序表达式和排序顺序参数语法。

举例:

润乾报表函数



======================================================================

    函数说明:

        获得一个枚举的数据集合

        

    语法:

        list(valueExp1{,valueExp2{,valueExp3{,……}}})

        

    参数说明:

        valueExp(n)        可以是常数或表达式,也可以是集合表达式

        

    返回值:

        一组枚举数据的集合

        

    示例:

        例1:list(1,3,5,7,9)

        

        例2:list("abc","def","ghj")

        

        例3:list(arg1,to(1,3),"a","b","c")    假设arg1是个整数组,其值为7,8,9,

                那么该表达式的结果值为{7,8,9,1,2,3,"a","b","c"}

======================================================================

函数说明:

        根据指定位置返回数组或者集合表达式中的某一个元素

        

    语法:

        valueat(arrayexp,suffixExp)

        

    参数说明:

        arrayexp    数组或者集合表达式

        suffixExp    整数,用于指定返回集合中的第几个元素,以0开始计数

        

    返回值:

        集合中的一个元素,数据类型由集合中的元素类型决定

        

    示例:

        例1:valueat(to(5,8),2)        返回值为:7

        

        例2:valueat({"a","b","c"},0)    返回值为:"a"

===================================================

 函数示例:

        例1:ds1.select( name )

                从数据源ds1中选取name字段列的所有值,不排序

 

        例2:ds1.select( #2, true )

                从数据源ds1中选取第二个字段列的所有值并降序排列

 

        例3:ds1.select( name,false,sex=='1')

                从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列

 

        例4:ds1.select( name, true, sex=='1', id )

                从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列

=====================================================================   

示例:

        例1:ds1.select1(name)

                返回数据集ds1中第一条记录的name字段值

                

        例2:ds1.select1(name,score>90)

                从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值

======================================================================

示例:

        例1:ds1.group(class)

                把数据集ds1中所有记录按照class字段进行分组,

                并返回每组的class值组成的集合

        

        例2:ds1.group(class, true )

                把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,

                并返回每组的class值组成的集合

        

        例3:ds1.group(class,false,sex=='1')

                从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

        

        例4:ds1.group(class, true, sex=='1', id )

                从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

                

        例5:ds1.group(省份,true,,,sum(工业产值),true)

                对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),

                然后按照这个汇总值对组进行逆序排列

======================================================================

    函数说明:

        获得一个枚举的数据集合

        

    语法:

        list(valueExp1{,valueExp2{,valueExp3{,……}}})

        

    参数说明:

        valueExp(n)        可以是常数或表达式,也可以是集合表达式

        

    返回值:

        一组枚举数据的集合

        

    示例:

        例1:list(1,3,5,7,9)

        

        例2:list("abc","def","ghj")

        

        例3:list(arg1,to(1,3),"a","b","c")    假设arg1是个整数组,其值为7,8,9,

                那么该表达式的结果值为{7,8,9,1,2,3,"a","b","c"}

======================================================================

函数说明:

        根据指定位置返回数组或者集合表达式中的某一个元素

        

    语法:

        valueat(arrayexp,suffixExp)

        

    参数说明:

        arrayexp    数组或者集合表达式

        suffixExp    整数,用于指定返回集合中的第几个元素,以0开始计数

        

    返回值:

        集合中的一个元素,数据类型由集合中的元素类型决定

        

    示例:

        例1:valueat(to(5,8),2)        返回值为:7

        

        例2:valueat({"a","b","c"},0)    返回值为:"a"

======================================================================
  函数示例:

        例1:ds1.select( name )

                从数据源ds1中选取name字段列的所有值,不排序

 

        例2:ds1.select( #2, true )

                从数据源ds1中选取第二个字段列的所有值并降序排列

 

        例3:ds1.select( name,false,sex=='1')

                从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列

 

        例4:ds1.select( name, true, sex=='1', id )

                从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列

=====================================================================   

示例:

        例1:ds1.select1(name)

                返回数据集ds1中第一条记录的name字段值

                

        例2:ds1.select1(name,score>90)

                从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值

======================================================================

示例:

        例1:ds1.group(class)

                把数据集ds1中所有记录按照class字段进行分组,

                并返回每组的class值组成的集合

        

        例2:ds1.group(class, true )

                把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,

                并返回每组的class值组成的集合

        

        例3:ds1.group(class,false,sex=='1')

                从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

        

        例4:ds1.group(class, true, sex=='1', id )

                从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

                

        例5:ds1.group(省份,true,,,sum(工业产值),true)

                对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),

                然后按照这个汇总值对组进行逆序排列

======================================================================

    函数说明:

        获得一个枚举的数据集合

        

    语法:

        list(valueExp1{,valueExp2{,valueExp3{,……}}})

        

    参数说明:

        valueExp(n)        可以是常数或表达式,也可以是集合表达式

        

    返回值:

        一组枚举数据的集合

        

    示例:

        例1:list(1,3,5,7,9)

        

        例2:list("abc","def","ghj")

        

        例3:list(arg1,to(1,3),"a","b","c")    假设arg1是个整数组,其值为7,8,9,

                那么该表达式的结果值为{7,8,9,1,2,3,"a","b","c"}

======================================================================

函数说明:

        根据指定位置返回数组或者集合表达式中的某一个元素

        

    语法:

        valueat(arrayexp,suffixExp)

        

    参数说明:

        arrayexp    数组或者集合表达式

        suffixExp    整数,用于指定返回集合中的第几个元素,以0开始计数

        

    返回值:

        集合中的一个元素,数据类型由集合中的元素类型决定

        

    示例:

        例1:valueat(to(5,8),2)        返回值为:7

        

        例2:valueat({"a","b","c"},0)    返回值为:"a"

======================================================================
  函数示例:

        例1:ds1.select( name )

                从数据源ds1中选取name字段列的所有值,不排序

 

        例2:ds1.select( #2, true )

                从数据源ds1中选取第二个字段列的所有值并降序排列

 

        例3:ds1.select( name,false,sex=='1')

                从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列

 

        例4:ds1.select( name, true, sex=='1', id )

                从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列

=====================================================================   

示例:

        例1:ds1.select1(name)

                返回数据集ds1中第一条记录的name字段值

                

        例2:ds1.select1(name,score>90)

                从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值

======================================================================

示例:

        例1:ds1.group(class)

                把数据集ds1中所有记录按照class字段进行分组,

                并返回每组的class值组成的集合

        

        例2:ds1.group(class, true )

                把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,

                并返回每组的class值组成的集合

        

        例3:ds1.group(class,false,sex=='1')

                从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

        

        例4:ds1.group(class, true, sex=='1', id )

                从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,

                然后根据class进行分组,并返回每组的class值组成的集合

                

        例5:ds1.group(省份,true,,,sum(工业产值),true)

                对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),

                然后按照这个汇总值对组进行逆序排列

======================================================================

    函数说明:

        获得一个枚举的数据集合

        

    语法:

        list(valueExp1{,valueExp2{,valueExp3{,……}}})

        

    参数说明:

        valueExp(n)        可以是常数或表达式,也可以是集合表达式

        

    返回值:

        一组枚举数据的集合

        

    示例:

        例1:list(1,3,5,7,9)

        

        例2:list("abc","def","ghj")

        

        例3:list(arg1,to(1,3),"a","b","c")    假设arg1是个整数组,其值为7,8,9,

                那么该表达式的结果值为{7,8,9,1,2,3,"a","b","c"}

======================================================================

函数说明:

        根据指定位置返回数组或者集合表达式中的某一个元素

        

    语法:

        valueat(arrayexp,suffixExp)

        

    参数说明:

        arrayexp    数组或者集合表达式

        suffixExp    整数,用于指定返回集合中的第几个元素,以0开始计数

    返回值:

        集合中的一个元素,数据类型由集合中的元素类型决定

        

    示例:

        例1:valueat(to(5,8),2)        返回值为:7

        

        例2:valueat({"a","b","c"},0)    返回值为:"a"

======================================================================
    if 函数

  1. 单个判断
if(@value == null,"空","非空")

2.嵌套判断
if(@value == null,“空”,if(@value ==1,“1”,“非1”))

3.多条件判断
if(@value>1and@value<3,"大于1小于3 ",“小于1 大于3”)

===========================================================

 count()

函数说明: 计算数据集当前记录行集中,满足条件的记录数

语法: datasetName.count({filterExp{,rootGroupExp{,nullCheckExp}}})

参数说明: filterExp 条件表达式,如果全部选出,则不要此参数, rootGroupExp 是否root数据集表达式 nullCheckExp 检查某一条记录是否为空的表达式

返回值: 整数

举例:

例1:ds1.count() 表示对ds1中当前记录行集中所有记录进行计数,返回记录数。

例2:ds1.count(true) 含义同上,但是运算速度比ds1.count()慢,因此当记录全部选出时,建议不要true

例3:ds1.count(quantity>500) 表示从ds1当前记录行集中选出quantity>500的记录进行计数,返回记录数。 例4:ds1.count(,,ID) 表示当前记录行集中ID不为空的记录数目

============================================================================================================================

==============================================================================================================================

ds.sum()

润乾报表:

datasetName.sum(selectExp{,filterExp{,rootGroupExp}})

集算报表:

datasetName.sum(selectExp{,filterExp})

选项:

@r 是否root数据集表达式

主要改变:增加@r函数选项,取代原rootGroupExp表达式参数。

举例:

润乾报表函数

===============================================================================

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.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})

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

举例:

润乾报表函数