润乾报表函数学习2

来源:互联网 发布:python就业怎么样 编辑:程序博客网 时间:2024/05/29 17:04

     函数说明:
        将一个整数转化成汉字大写
       
    语法:
        chn( intExp{, abbrivateExp{, uppercaseExp }} )
       
    参数说明:
        intExp            整数表达式
        abbrivateExp    为true时采用亿万千百十的写法,
                                    为false时采用一二三四五六七的写法,缺省为false
        uppercaseExp    为false时采用零一二三四五六七八九十百千,
                                    为true时采用壹贰叁肆伍陆柒捌玖拾佰仟,缺省为false
       
    返回值:
        字符型
       
    示例:
        例1:chn(1234567,true)        返回:"一百二十三万四千五百六十七"
       
        例2:chn(1234567)        返回:"一二三四五六七"
       
        例3:chn(1234567,true,true)    返回:"壹佰贰拾叁万肆仟伍佰陆拾柒"
       
        例4:chn(1234567,,false)    返回:"一二三四五六七"

 

    函数说明:
        取得当前单元格所在列的列号
       
    语法:
        col({cellExp})
       
    参数说明:
        cellExp        单元格表达式(不写表示当前单元格)
    返回值:
        整数
       
    举例:
        在B列单元格中写入=col(),返回值为2,如果B列存在横向扩展格,则列号依次改变。

 

    函数说明:
        计算参数的余弦值,其中参数以弧度为单位
        相关的函数有sin()    计算参数的正弦值
                tan()    计算参数的正切值
       
    语法:
        cos(numberExp)
       
    参数说明:
        numberExp        待计算余弦值的弧度数
       
    返回值:
        double型
       
    示例:
        例1:cos(pi())        返回:-1
       
        例2:cos(pi(2))        返回:1

 

 

    函数说明:
        对可扩展单元格或集合表达式进行计数
       
    语法:
        count(expression{,containNull})
       
    参数说明:
        expression    需要被计数的单元格或表达式,一般为可扩展单元格或集合表达式
 containNull   缺省为true,表示对null元素也进行计数;false则相反
       
    返回值:
        整数
       
    示例:
        例1:count(A1:B10,false) 以当前格为基格计算A1和B10之间总共有几个单元格,如果单元格的值为空则不进行计数

 例2:count(A1[1]:B10[3])计算A1扩展出来的第一个格和B10扩展出来的第三个格之间总共有几个单元格
       
        例3:count(arg1) 其中arg1是参数组,统计arg1中有几个数据
       
        例4:count(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的个数
       
        例5:count(B1{`0}{})    表示求得根坐标下所有扩展后的B1单元格的个数
       

    函数说明:
        将字符串转换成日期型数据
       
    语法:
        date(stringExp)
       
    参数说明:
        stringExp        字符串表达式,其结果必须返回合法日期格式的字符串
                        要求格式为yyyy-MM-dd,不含时间,如果含了时间,时间部分不转换
                                   
    返回值:
        日期时间型,但是时间部分都为00:00:00
       
    示例:
        例1:date("1982-08-09")            返回日期:1982-08-09 00:00:00
       
        例2:date("1982-08-09 10:20:30")    返回日期:1982-08-09 00:00:00
       

 

    函数说明:
        将字符串或长整数转换成日期时间
       
    语法:
        dateTime(string)
        dateTime(long)
       
    参数说明:
        string        格式为yyyy-MM-dd HH:mm:ss的字符串
        long        以微秒计的长整数
       
    返回值:
        日期时间
   
    示例:
        例1:dateTime("2006-01-01 10:20:30")        返回:2006-01-01 10:20:30
           
        例2:dateTime("2006-01-01 10:20:30:111")    返回:2006-01-01 10:20:30
       
        例3:dateTime(12345)                返回:1970-01-01 08:00:12

 

    函数说明:
        将各种格式的日期字符串转换成日期时间型数据,转换时可以指定字符串的当前格式
       
    语法:
        datetime2(string, format)
       
    参数说明:
        string        各种格式的日期字符串
        format        用于说明参数1的格式串
       
    返回值:
        日期时间型数据
       
    示例:
        例1:datetime2("12/28/1972","MM/dd/yyyy")            返回:1972-12-28 00:00:00
       
        例2:datetime2("12/28/1972 10:23:43","MM/dd/yyyy hh:mm:ss")    返回:1972-12-28 10:23:43
       
        例3:datetime2("19800227","yyyyMMdd")                返回:1980-02-27 00:00:00
       
        例4:datetime2("1982年12月30日","yyyy年MM月dd日")        返回:1982-12-30 00:00:00

 

    函数说明:
        从日期型数据中获得该日在本月中是几号
       
    语法:
        day(dateExp)
       
    参数说明:
        dateExp        表达式,其结果必须为日期或中国日期时间格式的字符串
       
    返回值:
        整数
       
    示例:
        例1:day(datetime2("19800227","yyyyMMdd"))    返回:27
       
        例2:day(dateTime(12345))            返回:1
       
        例3:day(dateTime("2006-01-15 10:20:30"))    返回:15
       

 

    函数说明:
        从日期型数据中获得该日的星期名称
       
    语法:
        dayName(dateExp)
       
    参数说明:
        dateExp        日期或标准日期格式的字符串,
                    如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
       
    返回值:
        字符型
       
    示例:
        例1:dayName(datetime2("19800227","yyyyMMdd"))    返回:星期三
       
        例2:dayName(dateTime(12345))            返回:星期四
       
        例3:dayName(dateTime("2006-01-15 10:20:30"))    返回:星期日
       
        例4:dayName("12:14:34")            返回:星期四
       
        例5:dayName("1972-11-08")            返回:星期三
       
        例6:dayName("1972-11-08 10:20:30")        返回:星期三

 

    函数说明:
        从日期型数据中,获得该日位于一个星期中的第几天,星期天返回1,星期一返回2,依此类推

    语法:
        dayNo(dateExp)
       
    参数说明:
        dateExp        日期或标准日期格式的字符串,
                    如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss

    返回值:
        整数

    示例:
        例1:dayNo(dateTime2("19800227","yyyyMMdd"))    返回:4
       
        例2:dayNo(dateTime("2006-01-15 10:20:30"))    返回:1
       
        例3:dayNo("1972-11-08 10:20:30")        返回:4

 

    函数说明:
        计算两个日期型数据相差几天
       
    语法:
        daysAfter(dateExp1, dateExp2)
       
    参数说明:
        dateExp1        日期或标准日期格式的字符串,
                        如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
                               
        dateExp2        日期或标准日期格式的字符串,
                        如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
                               
    返回值:
        整数
       
    示例:
        例1:daysAfter(dateTime("1983-12-15 10:20:30"),datetime2("1982年12月30日","yyyy年MM月dd日"))
                返回:-350
       
        例2:daysAfter("1983-12-15 10:20:30","1982-12-30")    返回:-350

 

    函数说明:
        获得指定日期所在月的天数
       
    语法:
        daysInMonth(dateExp)
       
    参数说明:
        dateExp        日期或标准日期格式的字符串,
                    如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
       
    返回值:
        整数
   
    示例:
        例1:daysInMonth(datetime2("19800227","yyyyMMdd"))    返回:29
       
        例2:daysInMonth("1972-11-08 10:20:30")            返回:30
       
        例3:daysInMonth(dateTime("2006-01-15 10:20:30"))    返回:31

 

    函数说明:
        获得指定日期所在年或者指定年份的天数
       
    语法:
        daysInYear(dateExp)
        daysInYear(year)
       
    参数说明:
        dateExp        日期或标准日期格式的字符串,
                    如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
                           
        year        返回整数的表达式
       
    返回值:
        整数
       
    示例:
        例1:daysInYear(datetime2("19800227","yyyyMMdd"))    返回:366
       
        例2:daysInYear(dateTime("2006-01-15 10:20:30"))    返回:365
       
        例3:daysInYear("1972-11-08 10:20:30")            返回:366
       
        例4:daysInYear(2006)                    返回:365

 

 

 

    函数说明:
        将字符串或数字型数值转换成大浮点数
       
    语法:
        deicmal(stringExp)
        decimal(numberExp)
       
    参数说明:
        stringExp        给定数字串,可含小数点
        numberExp        数值,只能少于等于64位,超过64位就要用字符串
       
    返回值:
        大浮点数BigDecimal
       
    示例:
        例1:decimal("123456789012345678901234567890")    返回:123456789012345678901234567890
       
        例2:decimal(1234567890123456)            返回:1234567890123456(BigDecimal类型)

 

    函数说明:
        取单元格的显示值
       
    语法:
        disp( cell )
       
    参数说明:
        cell        单元格
       
    返回值:
        字符型
       
    示例:
        例1:if(disp(A1) like "中国*",true,false)
                表示如果A1单元格的显示值含有中国的字样,返回true,否则返回false。

 

 

 

    函数说明:
        将字符串或数字转换成64位的双精度浮点数
       
    语法:
        double( string )
        double( number )
       
    参数说明:
        string        需要转换的字符串表达式
        number        数字
       
    返回值:
        64位的双精度浮点数
       
    示例:
        例1:double("1234567")    返回:1234567.0
       
        例2:double(1234567)    返回:1234567.0

 

    函数说明:
        按名称取得数据集对象,本函数用于动态改变表达式的数据集对象,用法很灵活,
        但是性能较低,须慎用。
       
    语法:
        ds( stringExp )
       
    参数说明:
        stringExp    数据集的名称
       
    返回值:
        数据集对象
       
    说明:
        本函数的返回值是表达式的一个元素,不能作为单元格的数据值,必须经过二次运算。
       
    示例:
        例1:ds("ds1").select(#0)    表示取出ds1数据集中的记录行号集合

 

 

    函数说明:
        从数据集中,从满足条件的记录中,算出给定字段或表达式的平均值
       
    语法:
        datasetName.avg(selectExp{,filterExp{,rootGroupExp{,containNull}}})
       
    参数说明:
        selectExp        需要计算平均值的字段或表达式,数值类型
        filterExp        过滤条件表达式
        rootGroupExp  是否root数据集表达式
 containNull  是否对null元素进行计数
       
    返回值:
        实数
       
    举例:
        例1:ds1.avg(score,sex=="1")
                表示从数据集的当前记录行集中过滤出sex为"1"的记录集合,
                求得其score字段的平均值,score字段要求为数值型。
               
        例2:ds2.avg(quantity*price)
                表示对数据集的当前记录行集求得表达式quantity*price的平均值

 例2:ds1.avg(score,,,false)
  求得数据集的当前记录行集中score字段的平均值,如果某条记录的score字段值为空
  则此条记录不计入记录数,score字段要求为数值型

 

 

    函数说明:
        此函数功能等同select1(),但是算法不同,采用二分法,适用于数据集记录
        已经按照参考字段排好序的情况,运算速度比select1()快
       
    语法:
        datasetName.bselect_one(selectExp,"referExp1,referDescExp1,referValueExp1
            {,referExp2,referDescExp2,referValueExp2{....}}}"{,rootGroupExp})

        datasetName.bselect1(selectExp,"referExp1,referDescExp1,referValueExp1")

    参数说明:
        selectExp    选出字段或表达式
        referExp1    参考字段表达式
        referDescExp1    参考字段表达式的数据顺序,true表示降序排列,false表示升序排列
        referValueExp1    参考字段的值表达式,一旦找到参考字段和该值相同的记录,即返回selectExp的值
        ......        参考字段及其值可以多个,如果是多个,则找到多个参考字段都和值匹配的记录才返回
        rootGroupExp    是否root数据集表达式

    返回值:
        数据类型不定,由selectExp的运算结果决定

    示例:
        例1:ds1.bselect1(name,"id,false,value()")
            采用二分法,找到数据集ds1中id和当前格的值相等的记录,返回其name字段值

        例2:ds1.bselect1(name,"id,false,value();class,false,A1;sex,true,B1")
            采用二分法,找到数据集ds1中id和当前格的值相等、class和A1相等
        且sex和B1相等的记录,返回其name字段值。注意这三个条件在表达式中的顺序
        必需和它们在数据集中的排序先后相同,也就是说,在数据集中是先对id升序排
        序,再对class升序排序,最后对sex进行降序排序的。

 

 

    函数说明:
        获得数据集的列数
       
    语法:
        datasetName.colcount()
       
    返回值:
        整数
   
    举例:
        例1:ds1.colcount()    获得ds1数据集的列数,整数类型

 

 

    函数说明:
        计算数据集当前记录行集中,满足条件的记录数
       
    语法:
        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不为空的纪录数目

 

 

    函数说明:
        计算数据集当前记录行集中,满足条件的记录数,选出字段记录的行将被视为同一个记录
       
    语法:
        datasetName.dcount(<select_exp>{filterExp,{rootGroupExp}})
       

    参数说明:
        select_exp    要选择的字段列名/列号,,也可以是表达式。
                    列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
        filterExp    条件表达式,如果全部选出,则不要此参数,
        rootGroupExp    是否root数据集表达式

    返回值:
        整数
       
    举例:
        例1:ds1.dcount( name )
                从数据源ds1中选取name字段列的所有值,name相同的纪录被视为同一纪律

 

 

    函数说明:
        从数据集的当前行集中选取符合条件的记录,选出字段相同的行将会只保留第一行
    语法:
        datasetName.dselect( <select_exp>{, filter_exp{,rootGroupExp}} )       

    参数说明:
        select_exp    要选择的字段列名/列号,,也可以是表达式。
                    列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
        filter_exp    数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。
        rootGroupExp    是否root数据集表达式
                               
    返回值:
        一组数据的集合,数据类型由select_exp的运算结果决定
       
    函数示例:
        例1:ds1.dselect( name )
                从数据源ds1中选取name字段列的所有值,name相同的纪录只会保留第一个

 

 

    函数说明:
        根据表达式的不同计算结果,返回不同的值,然后按这些值进行分组。本函数:从左到右计算,先出现的表达式先算,如果出现满足的表达式,
        则返回相应的结果,后面的不再计算。如果没有一个表达式满足条件,而且有缺省值表达式,则返回缺省值,否则返回null。
    语法:
    ds.enumGroup({hasNullGroup{,termExp1,resultExp1{,term2,resultExp2{,...{,defaultExp}}}}})
    参数说明:
 hasNullGroup     布尔表达式,true返回空组,false不返回空组
        termExp(n)          条件表达式
        resultExp(n)        返回结果表达式
        defaultExp          缺省值表达式,如果所有表达式结果都不满足,则返回本表达式计算结果

 

    函数说明:
        获得数据集当前行或者当前组中第一行中,指定列的数据
       
    语法:
        datasetName.field( stringExp )
        datasetName.field( #colNo )
       
    参数说明:
        stringExp    数据集列名的表达式
        #colNo        数据集列号的表式方式,如第二列用#2,行号列用#0
       
    返回值:
        数据集的列对象,只能作为表达式的元素使用,不能作为最终单元格的值
       
    说明:
        此函数性能比较低,请慎用
       
    举例:
        例1:在报表中写入如下表达式
                             A               B
                      ┌─────────┬────────────┐
                    1 │                  │ = to(1,ds2.colcount()) │
                      │                  ├────────────┤
                    2 │                  │  = ds2.fieldname(b1)   │
                      ├─────────┼────────────┤
                    3 │ = ds2.Select(#0) │    = ds2.field(b2)     │
                      └─────────┴────────────┘
                该报表相当于在B1中根据数据集ds2的列数进行横向扩展,在A3中根据
                数据集的行数进行纵向扩展,然后在B2和B3中动态获取列名和列对象,
                算出列值,这种用法可以实现动态列报表
               
                该报表的预览结果如下:

        ┌───────┬───────┬───────┬───────┐
        │   客户编码   │   客户名称   │     电话     │     传真     │
        ├───────┼───────┼───────┼───────┤
        │      1       │无锡食品加工厂│   3454356    │   4575775    │
        ├───────┼───────┼───────┼───────┤
        │      2       │天津长城化工厂│   3452346    │   4562674    │
        ├───────┼───────┼───────┼───────┤
        │      3       │江苏天龙食品集│   4576546    │   7465675    │
        ├───────┼───────┼───────┼───────┤
        │      4       │中国化工原料厂│   4563456    │   5675763    │
        └───────┴───────┴───────┴───────┘

 

 

    函数说明:
        根据列号取数据集的列名
       
    语法:
        datasetName.fieldName( intExp )
       
    参数说明:
       
        intExp        数据集列号的表达式
       
    返回值:
        字符型
       
    举例:
        例1:ds1.fieldName(3)    返回"score",
                    表示数据集ds1中第三列的列名为"score"
       
        例2:运用举例,在报表中写入如下表达式
                             A                B
                      ┌─────────┬────────────┐
                    1 │                  │ = to(1,ds2.colcount()) │
                      │                  ├────────────┤
                    2 │                  │  = ds2.fieldname(b2)   │
                      ├─────────┼────────────┤
                    3 │ = ds2.Select(#0) │    = ds2.field(b2)     │
                      └─────────┴────────────┘
                该报表相当于在B1中根据数据集ds2的列数进行横向扩展,在A3中根据
                数据集的行数进行纵向扩展,然后在B2和B3中动态获取列名和列对象,
                算出列值,这种用法可以实现动态列报表
               
                该报表的预览结果如下:

        ┌───────┬───────┬───────┬───────┐
        │   客户编码   │   客户名称   │     电话     │     传真     │
        ├───────┼───────┼───────┼───────┤
        │      1       │无锡食品加工厂│   3454356    │   4575775    │
        ├───────┼───────┼───────┼───────┤
        │      2       │天津长城化工厂│   3452346    │   4562674    │
        ├───────┼───────┼───────┼───────┤
        │      3       │江苏天龙食品集│   4576546    │   7465675    │
        ├───────┼───────┼───────┼───────┤
        │      4       │中国化工原料厂│   4563456    │   5675763    │
        └───────┴───────┴───────┴───────┘

       

    函数说明:
        从数据集中按顺序检索到符合过滤条件的所有记录,返回纪录的组,注意该函数不能返回具体值,函数只能用在附加数据集中
       
    语法:
        datasetName.filter(filterExp{,rootGroupExp})
       
    参数说明:
        filterExp        过滤条件
        rootGroupExp        是否root数据集表达式
       
    返回值:
        返回行
       
    示例:
        例1:ds1.filter(name=="1")
                返回数据集ds1中记录的name字段是"1"的所有行
               
        例2:ds.filter(score>90)
                从数据集ds1中检索出成绩大于90的记录

 

    函数说明:
        从数据集中按顺序检索到符合过滤条件的第一条记录,返回该行,注意该函数不能返回具体值,函数只能用在附加数据集中
       
    语法:
        datasetName.filter1(filterExp{,rootGroupExp})
       
    参数说明:
        filterExp        过滤条件
        rootGroupExp        是否root数据集表达式
       
    返回值:
        返回行
       
    特别说明:
        当对数据集运用过滤条件后确定只剩一条记录时,虽然filter
        的运算结果一样,但是filter1运算效率高,因为他只要找到符合条件的记录,
        就不继续检索了,而filter要检索完所有的记录才返回。
       
    示例:
        例1:ds1.filter1(name=="1")
                返回数据集ds1中第一条记录的name字段是"1"的行
               
        例2:ds1.filter1(score>90)
                从数据集ds1中检索出成绩大于90的记录