润乾报表常用函数

合集下载

润乾分组函数

润乾分组函数

润乾分组函数润干分组函数,在Excel中是一种非常实用的函数,它可以将一列数据按照指定的条件分成数个组,方便我们进行数据分析和处理。

在本文中,我们将详细介绍润干分组函数的使用方法和注意事项。

一、润干分组函数的语法润干分组函数的语法如下:=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])其中,lookup_value表示要查找的值;table_array表示要查找的数据范围;col_index_num表示要返回的列数;[range_lookup]表示是否要进行范围查找,如果为TRUE或省略,则进行范围查找;如果为FALSE,则进行精确查找。

二、润干分组函数的使用方法1. 打开Excel,输入需要分组的数据。

2. 选中需要分组的数据,点击“数据”选项卡中的“分类汇总”。

3. 在分类汇总对话框中,选择“润干分组”。

4. 在润干分组对话框中,选择需要分组的列,设置分组依据和分组方式。

5. 点击“确定”按钮,即可完成分组操作。

三、润干分组函数的注意事项1. 分组依据必须是连续的数字或日期,否则无法进行分组。

2. 分组方式可以选择按照值的大小进行分组,也可以选择按照值的范围进行分组。

3. 润干分组函数会将数据分成数个组,每个组的大小不一定相等。

4. 如果数据中有空值或错误值,润干分组函数会将其归为一组。

5. 分组后的结果可以通过数据透视表进行进一步分析和处理。

四、润干分组函数的应用案例以下是一个应用润干分组函数的案例:假设有一个销售数据表,其中包含销售金额和销售日期两列数据。

我们需要将销售金额按照不同的范围进行分组,并计算每个分组的销售总额和占比。

1. 将销售数据表按照销售金额从小到大排序。

2. 选中销售金额和销售日期两列数据,点击“数据”选项卡中的“分类汇总”。

3. 在分类汇总对话框中,选择“润干分组”。

4. 在润干分组对话框中,选择“销售金额”列作为分组依据,选择“按值的范围”作为分组方式,设置分组范围和分组数目。

润乾报表常用函数

润乾报表常用函数

润乾报表常‎用函数1.to函数说‎明:生成一组连‎续的整数数‎据语法: to(start‎E xp,endEx‎p{,stepE‎x p})参数说明:start‎E xp 整数数据开‎始的表达式‎endEx‎p整数数据结‎束的表达式‎stepE‎x p 整数数据步‎长的表达式‎函数示例:to(1,5)=list(1,2,3,4,5)to(1,5,2)=list(1,3,5)to(-5,-10,-2)=list(-5,-7,-9)to(-10,-8)=list(-10,-9,-8)2.selec‎t函数说明‎:从数据集的‎当前行集中‎选取符合条‎件的记录语法:datas‎e tNam‎e.selec‎t( <selec‎t_exp‎>{, desc_‎e xp{, filte‎r_exp‎{,sort_‎e xp{,rootG‎r oupE‎x p}}}} )datas‎e tNam‎e.selec‎t( <selec‎t_exp‎>, , <filte‎r_exp‎> )//适用于不需‎排序或数据‎集中已排好‎序参数说明:selec‎t_exp‎:要选择的字‎段列名/列号,,也可以是表‎达式。

列号用#n 表示,例如#0代表第0‎列,#1代表第1‎列,依此类推desc_‎e xp: 指定数据排‎序的顺序,true表‎示降序排列‎,false‎表示升序排‎列。

filte‎r_exp‎:数据过滤表‎达式,如果全部选‎出,则此参数省‎略,仅用“,”占位。

sort_‎e xp: 数据排序表‎达式。

当此项为空‎时先检查d‎e sc_e‎x p是否为‎空,如果为空,则不排序,否则使用s‎e lect‎_exp排‎序。

rootG‎r oupE‎x p 是否roo‎t数据集表‎达式返回值:一组数据的‎集合,数据类型由‎s elec‎t_exp‎的运算结果‎决定函数示例:例1:ds1.selec‎t( name ) 从数据源d‎s1中选取‎n ame字‎段列的所有‎值, 不排序例2:ds1.selec‎t( #2, true ) 从数据源d‎s1中选取‎第二个字段‎列的所有值‎并降序排列‎例3:ds1.selec‎t( name,false‎,sex=='1') 从数据源d‎s1中选取‎性别为男性‎的name‎字段列的值‎并升序排列‎例4:ds1.selec‎t( name, true, sex=='1', id ) 从数据源d‎s1中选取‎性别为男性‎的name‎字段列的值‎并按id字‎段降序排列‎3.Int函数‎说明:将字符串或‎数字转换成‎整数语法: int( strin‎g ) int( numbe‎r )参数说明:strin‎g需要转换的‎字符串表达‎式numbe‎r数字,如果带有小‎数位,转换后小数‎位被截掉返回值:32位整数‎示例:例1:int( "100" ) 返回:100例2:int( 100.1 ) 返回:100例3:int(100.9999) 返回:1004.map函数‎说明显示值对照‎表函数,从对照表中‎找出当前单‎元格对应值‎的显示值,没有则返回‎n ull语法: map(value‎L istE‎x p, displ‎a yLis‎t Exp)参数说明:value‎L istE‎x p 真实值列表‎,可以是可扩‎展单元格或‎结果为集合‎列表的表达‎式displ‎a yLis‎t Exp 显示值列表‎,可以是可扩‎展单元格或‎结果为集合‎列表的表达‎式真实值列表‎和显示值列‎表一一对应‎返回值:字符型,和当前格真‎实值对应的‎显示值示例:例1:map(to(1,3),list("男","女","不定"))例2:map(arg1,arg2) 其中arg‎1为1,2,3组成的参‎数组,arg2为‎"男","女","不定"组成的字符‎串组例3:map(list(1,2,3),list("男","女","不定"))5.Selec‎t1函数说‎明:从数据集中‎按顺序检索‎到符合过滤‎条件的第一‎条记录,返回其se‎l ectE‎x p值语法: datas‎e tNam‎e.selec‎t1(selec‎t Exp{,filte‎r Exp{,rootG‎r oupE‎x p}})参数说明: selec‎t Exp 要选择的字‎段列名/列号,,也可以是表‎达式。

润乾报表常用函数

润乾报表常用函数

润乾常用函数数值计算函数说明:abs(numberExp)计算参数的绝对值语法:abs(numberExp)参数说明:numberExp 待计算绝对值的数据返回值:数值型示例:例1:abs(-3245.54) 返回:3245.54例2:abs(-987) 返回:987函数说明:cos(numberExp)计算参数的余弦值,其中参数以弧度为单位相关的函数有sin() 计算参数的正弦值tan() 计算参数的正切值语法:cos(numberExp)参数说明:numberExp 待计算余弦值的弧度数返回值:double型示例:例1:cos(pi()) 返回:-1例2:cos(pi(2)) 返回:1函数说明:eval( StringExp )动态解析并计算表达式语法:eval( StringExp )eval( StringExp, SubRptExp )eval( StringExp, DataSetExp )参数说明:StringExp 待计算的表达式串SubRptExp 嵌入式子报表对象,一般是含有子报表的单元格DataSetExp 数据集对象,一般是ds函数返回值:表达式的结果值,数据类型由表达式决定示例:例1:eval( "1+5" ) 返回6例2:eval("B2+10", A1) 其中A1为嵌入式子报表,表示计算A1子报表中的B2+10 例3:eval("salary+100", ds("ds1")) 表示计算数据集ds1中salary加100函数说明:exp(nExp)计算e的n次幂语法:exp(nExp)参数说明:nExp 指定次幂数返回值:数值型示例:例1:exp(4.3) 返回:73.69979369959579函数说明:fact(nExp)计算参数的阶乘语法:fact(nExp)参数说明:nExp 待计算阶乘的数据返回值:长整数(64位)示例:例1:fact(10) 返回:3628800函数说明:fill(s, n)获得n个s拼成的字符串相关函数:space() 产生一个空串语法:fill(s, n)参数说明:s 用于拼成新串的源串n 新串中包含源串的个数返回值:字符型示例:例1:fill("1 ",10) 返回:"1 1 1 1 1 1 1 1 1 1 "例2:fill("a b",10) 返回:"a ba ba ba ba ba ba ba ba ba b"函数说明:fl oat(string)将单精度浮点数、双精度浮点数、字符串转换为32位的单精度浮点型语法:float(string)float(number)参数说明:string 需要转换的单精度浮点数、双精度浮点数表达式number 数字返回值:32位的单精度浮点数示例:例1:float("1234567") 返回:1234567.0例2:float(1234567.0) 返回:1234567.0例3:float(1234567) 表达式提示错误,因为1234567不是浮点数函数说明:fl oor(numberExp, {nExp})对数据在指定位置上进行截取,剩余部分只要有值全舍去相关的函数有:ceil:对数据在指定位置上进行截取,剩余部分只要有值就进位round:对数据在指定位置上进行截取,剩余部分四舍五入语法:floor(numberExp, {nExp})参数说明:numberExp 需要进行截取的数据nExp 整数,用于指定需要进行截取的位置,>0:从小数点往右位移nExp个位数,<0:从小数点往左移nExp个位数=0:表示当前小数点的位置返回值:数值型示例:例1:=floor(3451231.234,0) 返回:3451231.0例2:=floor(3451231.234,-1) 返回:3451230.0例3:=floor(3451231.234,-2) 返回:3451200.0例4:=floor(3451231.234,1) 返回:3451231.2例5:=floor(3451231.234,2) 返回:3451231.23涵数说明:log(numberExp)计算参数的自然对数相关函数:log10() 计算以10为底的对数语法:log(numberExp参数说明:numberExp 需要计算自然对数的数据返回值:数值型示例:例1:log(54) 返回:3.9889840465642745 函数说明:log10(numberExp)计算以10为底的对数相关函数:log() 计算自然对数语法:log10(numberExp)参数说明:numberExp 需要计算以10为底的对数的数据返回值:数值型示例:例1:log10(54) 返回:1.7323937598229684 函数说明:pi(numberExp)计算圆周率及其倍数语法:pi(numberExp)参数说明:numberExp 倍数,此参数省略,则返回圆周率返回值:圆周率及其倍数示例:例1:pi() 返回:3.141592653589793例2:pi(2) 返回:6.283185307179586函数说明:pow(xExp, nExp)计算x的n次幂语法:pow(xExp, nExp)参数说明:xExp 底数nExp 次幂示例:例1:pow(2,4) 返回:16.0函数说明:round(numberExp, {nExp})对数据在指定位置上进行截取,剩余部分四舍五入相关的函数有:ceil:对数据在指定位置上进行截取,剩余部分只要有值就进位floor:对数据在指定位置上进行截取,剩余部分只要有值全舍去语法:round(numberExp, {nExp})参数说明:numberExp 需要进行截取的数据nExp 整数,用于指定需要进行截取的位置,>0:从小数点往右位移nExp个位数,<0:从小数点往左移nExp个位数=0:表示当前小数点的位置返回值:数值型示例:例1:=round(3451251.274,0) 返回:3451251.0例2:=round(3451251.274,-1) 返回:3451250.0例3:=round(3451251.274,-2) 返回:3451300.0例4:=round(3451251.274,1) 返回:3451251.3例5:=round(3451251.274,2) 返回:3451251.27函数说明:sin(number)计算参数的正弦值,其中参数以弧度为单位相关的函数有cos() 计算参数的余弦值tan() 计算参数的正切值语法:sin(number)参数说明:number 需要计算正弦值的弧度数示例:例1:sin(pi()) 返回:1.2246467991473532E-16例2:sin(pi(2)) 返回:-2.4492935982947064E-16 例3:sin(pi()/2) 返回:1.0函数说明:sqrt(number)计算平方根语法:sqrt(number)参数说明:number 需要计算平方根的数据返回值:数值型示例:例1:sqrt(100) 返回:10.0例2:sqrt(99) 返回:9.9498743710662函数说明:tan(number)计算参数的正切值,其中参数以弧度为单位相关的函数有sin() 计算参数的正弦值cos() 计算参数的余弦值语法:tan(number)参数说明:需要计算正切值的弧度数返回值:double型示例:例1:tan(pi()/2) 返回:1.633123935319537E16例2:tan(pi(2)) 返回:-2.4492935982947064E-16函数说明:sum(expression)对可扩展单元格或集合表达式进行求和语法:sum(expression)sum(cellExp,exp)参数说明:expression 需要被求和的单元格或表达式,一般为可扩展单元格或集合表达式 cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式返回值:实数或者字符型,由被汇总的单元格数据类型决定示例:例1:sum(A1:A10) 求出单元格A1至A10的合计值,被统计单元格可以是数值型也可以是字符型例2:sum(arg1) 其中arg1是参数组,求出arg1中所有元素的合计值例3:sum(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值例4:sum(B1[`0]{}) 表示求得根坐标下所有扩展后的B1单元格的合计值例5:sum(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值日期函数说明:age(dateExp{,typeExp})计算从参数定义的时间到当前间隔的整年数语法:age(dateExp{,typeExp})age(stringExp,formatExp{,typeExp})参数说明:dateExp 日期型表达式,运算的结果是日期型(Date)stringExp 表达式,其结果必须为日期或中国日期时间格式的字符串formatExp 格式化表达式比如"yyyyMMdd","yyyy-MM-dd"等typeExp 计算精确的最小单位1为日,2为月,3为年,缺省为日返回值:整数示例:假设今天为2007.1.1例1:age(datetime2("19800227","yyyyMMdd")) 结果为26例3:age("19800227","yyyyMMdd",3) 结果为27函数说明:date(stringExp)将字符串转换成日期型数据语法: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(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)将各种格式的日期字符串转换成日期时间型数据,转换时可以指定字符串的当前格式语法: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)从日期型数据中获得该日在本月中是几号语法: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)从日期型数据中获得该日的星期名称语法: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") 返回:星期三函数说明:dayNo(dateExp)从日期型数据中,获得该日位于一个星期中的第几天,星期天返回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)计算两个日期型数据相差几天语法: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)获得指定日期所在月的天数语法: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(dateExp)daysInYear(year)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ssyear 返回整数的表达式返回值:整数示例:例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函数说明:hour(datetimeExp)从日期时间型数据中,获得当前时间位于一天中的第几个时辰语法:hour(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss 返回值:整数示例:例1:hour("1983-12-15") 返回:0例2:hour("1983-12-15 10:30:25") 返回:10例3:hour(dateTime("2006-01-15 13:20:30")) 返回:13函数说明:lastday(dateExp)获得指定日期的上一天语法:lastday(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastday("1972-11-08 10:20:30") 返回:1972-11-07 10:20:30例2:lastday(datetime2("19800227","yyyyMMdd")) 返回:1980-02-26 00:00:00 例3:lastday(dateTime("2006-01-15 10:20:30")) 返回:2006-01-14 10:20:30函数说明:lastmonth( dateExp )取得指定日期在上月的同日,若无同一日,则返回上月月末语法:lastmonth( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastmonth(datetime2("19800227","yyyyMMdd")) 返回:1980-01-27 00:00:00 例2:lastmonth("1972-11-08 10:20:30") 返回:1972-10-08 10:20:30例3:lastmonth(dateTime("2006-01-15 10:20:30")) 返回:2005-12-15 10:20:30函数说明:lastyear( dateExp )取得指定日期在去年的同月同日,若无同月同日,则返回去年同月最后一天语法:lastyear( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastyear(datetime2("19800227","yyyyMMdd")) 返回:1979-02-27 00:00:00 例2:lastyear("1972-11-08 10:20:30") 返回:1971-11-08 10:20:30例3:lastyear(dateTime("2006-01-15 10:20:30")) 返回:2005-01-15 10:20:30函数说明:minute(datetimeExp)从日期时间型数据中,获得分钟的信息语法:minute(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:minute(datetime2("19800227","yyyyMMdd")) 返回:0例2:minute("1972-11-08 10:20:30") 返回:20例3:minute(dateTime("2006-01-15 13:20:30")) 返回:20函数说明:month(dateExp)取得指定日期所在的月份语法:month(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:month(datetime2("19800227","yyyyMMdd")) 返回:2例2:month("1972-11-08 10:20:30") 返回:11例3:month(dateTime("2006-01-15 13:20:30")) 返回:1函数说明:monthbegin( dateExp )取得指定日期所在月的月首语法:monthbegin( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:monthbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-0100:00:00例2:monthbegin("1972-11-08 10:20:30") 返回:1972-11-01 10:20:30例3:monthbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30 函数说明:monthend( dateExp )取得指定日期所在月的月末语法:monthend( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:monthend(datetime2("19800227","yyyyMMdd")) 返回:1980-02-29 00:00:00 例2:monthend("1972-11-08 10:20:30") 返回:1972-11-30 10:20:30例3:monthend(dateTime("2006-01-15 13:20:30")) 返回:2006-01-31 13:20:30 函数说明:now()获得系统此刻的日期时间语法:now()返回值:日期时间函数说明:quaterbegin( dateExp )取得指定日期所在季度的首日语法:quaterbegin( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss\ 返回值:日期时间\示例:例1:quaterbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-01-0100:00:00\例2:quaterbegin("1972-11-08 10:20:30") 返回:1972-10-01 10:20:30\例3:quaterbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30\ 函数说明:quaterend( dateExp )取得指定日期所在季度的末日语法:quaterend( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间示例:例1:quaterend(datetime2("19800227","yyyyMMdd")) 返回:1980-03-31 00:00:00 例2:quaterend("1972-11-08 10:20:30") 返回:1972-12-31 10:20:30例3:quaterend(dateTime("2006-01-15 13:20:30")) 返回:2006-03-31 13:20:30 函数说明:relDate(dateExp, nExp)从给定的日期型数据中,算出相差n天后的新的日期数据语法:relDate(dateExp, nExp)参数说明:dateExp 给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss nExp 整数表达式,需要求得nExp天后的新日期返回值:日期时间示例:例1:relDate(datetime2("19800227","yyyyMMdd"),5) 返回:1980-03-03 00:00:00 例2:relDate("1972-11-08 10:20:30",-10) 返回:1972-10-29 10:20:30例3:relDate(dateTime("2006-01-15 13:20:30"),15) 返回:2006-01-30 13:20:30函数说明:relTime(datetimeExp, nExp)从给定的日期时间型数据中,算出相差n秒后的新的日期时间数据语法:relTime(datetimeExp, nExp)参数说明:datetimeExp 给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss nExp 整数表达式,需要求得nExp秒后的新日期时间返回值:日期时间示例:例1:relTime(datetime2("19800227","yyyyMMdd"),5) 返回:1980-02-27 00:00:05 例2:relTime("1972-11-08 10:20:30",-10) 返回:1972-11-08 10:20:20例3:relTime(dateTime("2006-01-15 13:20:30"),15) 返回:2006-01-15 13:20:45 函数说明:second(datetimeExp)从日期时间型数据中,获得秒信息语法:second(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:second(datetime2("19800227","yyyyMMdd")) 返回:0例2:second("1972-11-08 10:20:30") 返回:30例3:second(dateTime("2006-01-15 13:20:45")) 返回:45函数说明:secondsAfter(datetimeExp1,datetimeExp2)计算两个日期时间型数据相差几秒语法:secondsAfter(datetimeExp1,datetimeExp2)参数说明:datetimeExp1 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss datetimeExp2 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:secondsAfter(datetime2("19800227","yyyyMMdd"),dateTime("1980-02-27 00:00:45")) 返回:45例2:secondsAfter("1972-11-08 10:20:30","1972-11-08 10:30:50") 返回:620函数说明:time(stringExp)将字符串转换成时间型数据语法:time(stringExp)参数说明:stringExp HH:mm:ss格式的字符串返回值:时间型数据示例:函数说明:weekbegin(dateExp)获得指定日期所在星期的星期天,这里认定星期天为一周的开始语法:weekbegin(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:weekbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-24 00:00:00 例2:weekbegin("1972-11-08 10:20:30") 返回:1972-11-05 10:20:30例3:weekbegin(dateTime("2006-01-15 13:20:45")) 返回:2006-01-15 13:20:45 函数说明:weekend(dateExp)获得指定日期所在星期的星期六,这里认定星期六为一周的结束语法:weekend(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:weekend(datetime2("19800227","yyyyMMdd")) 返回:1980-03-01 00:00:00 例2:weekend("1972-11-08 10:20:30") 返回:1972-11-11 10:20:30例3:weekend(dateTime("2006-01-15 13:20:45")) 返回:2006-01-21 13:20:45 函数说明:year(dateExp)从日期型数据中获得年信息语法:year(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:year(datetime2("19800227","yyyyMMdd")) 返回:1980例2:year("1972-11-08 10:20:30") 返回:1972例3:year(dateTime("2006-01-15 13:20:45")) 返回:2006字符串函数说明:asc( string{, nPos} )取字符串指定位置的字符的unicode值,如果是ascii字符则返回ascii码(一般来说,英文字符及其扩展字符都是ascii字符,中文、日文、韩文等亚洲字符都是unicode字符,ascii字符为8位,unicode字符为16位(其中有3位用于标志字符类型))相关函数:char() 根据给定的unicode编码或者ascii码取得其对应的字符语法:asc( string{, nPos} )参数说明:string 给定的字符串nPos 整数表达式,缺省为0返回值:整数示例:例1:=asc("def") 返回:100 (ascii)例2:=asc("def",1) 返回:101 (ascii)例3:=asc("中国") 返回:20013 (unicode)例4:=asc("中国",1) 返回:22269 (unicode)函数说明:d eicmal(stringExp)将字符串或数字型数值转换成大浮点数语法:deicmal(stringExp)decimal(numberExp)参数说明:stringExp 给定数字串,可含小数点numberExp 数值,只能少于等于64位,超过64位就要用字符串返回值:大浮点数BigDecimal示例:例1:decimal("123456789012345678901234567890") 返回:123456789012345678901234567890例2:decimal(1234567890123456) 返回:1234567890123456(BigDecimal 类型)函数说明:left(string, n)获得源字符串左边的子串相关函数:mid() 获得源字符串中间的子串right() 获得源字符串右边的子串语法:left(string, n)参数说明:string 获得子串的源串n 获得子串的长度返回值:字符型示例:例1:left("abcdefg",3) 返回:"abc"函数说明:len(s)计算字符串的长度语法:len(s)参数说明:s 待计算长度的字符串返回值:整数示例:例1:len("adfg") 返回:4例2:len(" abd ") 返回:7函数说明:long( string )将字符串或数字转换成64位长整数语法:long( string )long( number )参数说明:string 需要转换的字符串表达式number 数字,如果带有小数,则小数部分被截掉返回值:64位长整数示例:例1:long("1234567") 返回:1234567例2:long(1234567.789) 返回:1234567函数说明:lower(s)将字符串转成小写相关函数:upper() 把字符串转成大写word_cap() 将字符串每一个单词的首字母大写语法:lower(s)参数说明:s 待转成小写的字符串返回值:字符型示例:例1:lower("ABCdef") 返回:"abcdef"例2:lower("defABC") 返回:"defabc"函数说明:ltrim(s)去掉字符串左边的空格相关函数:rrim() 去掉字符串右边的空格trim() 去掉字符串左右的空串语法:ltrim(s)参数说明:s 准备去掉左边空格的源串返回值:字符串型示例:例1:ltrim(" abc def ") 返回:"abc def "例2:ltrim("def abc ") 返回:"def abc "函数说明:maxwidth()求当前列中所有非合并格的显示串的最大字符长度(注意:ASCII码大于255的字符长度为2)语法说明:maxwidth()返回值:整数示例:一般用于列首格中,动态控制列宽例1:在列首格的单元格宽属性中写入8*maxwidth(),表示动态调整当前列宽为单元格显示值最大字符长度*8个像素函数说明:mid(s, start{, end})返回字符串的子串相关函数:left() 获得源字符串左边的子串right() 获得源字符串右边的子串语法:mid(s, start{, end})参数说明:s 待获得子串的源串start 获得子串的起始位置end 获得子串的结束位置,缺省为源串的长度返回值:字符串型示例:例1:mid("abcde",0) 返回:abcde例2:mid("abcde",1,2) 返回:b例3:mid("abcde",3) 返回:de函数说明:pos(s1, s2{, begin})查找母串中子串的位置语法:pos(s1, s2{, begin})参数说明:s1 待查找子串的母串s2 被查找的子串begin 查找的起始位置,缺省为0 返回值:整数示例:例1:pos("abcdef","def") 返回:3例2:pos("abcdefdef","def",5) 返回:6函数说明:right(s, n)获得字符串右边的子串相关函数:left() 获得源字符串左边的子串mid() 获得源字符串中间的子串语法:right(s, n)参数说明:s 待获得子串的源串n 获得子串的长度返回值:字符串型示例:例1:right("abced",2) 返回:"ed"函数说明:rmQuote(exp)删除表达式里的引号,包括单引号和双引号语法:rmQuote(exp)参数说明:exp 表达式返回值:字符串函数说明:rplc( srcExp,subStrA,rplcStrB{,boolExp})将字符串src的子字符串a变为字符串b,语法:rplc( srcExp,subStrA,rplcStrB{,boolExp})参数说明:srcExp 源字符串subStrA 源字符串的子字符串rplcStrB 将要替换成的字符串boolExp 引号里的字符是否需要变换,缺省为true返回值:替换后的字符串示例:例1:rplc("abc'abc'def","a","中国") 返回:"中国bc'中国bc'def"例2:rplc("abc'abc'def","a","中国",false) 返回:"中国bc'abc'def"例3:rplc("abc'abc'def","a","中国",true) 返回:"中国bc'中国bc'def"函数说明:rtrim(s)去掉字符串右边的空格相关函数:ltrim() 去掉字符串左边的空格trim() 去掉字符串左右的空串语法:rtrim(s)参数说明:s 准备去掉右边空格的源串返回值:字符串型示例:例1:rtrim(" abc def ") 返回:" abc def"例2:rtrim("def abc ") 返回:"def abc"函数说明:space(n)产生一个空串相关函数:fill() 获得n个s拼成的字符串语法:space(n)参数说明:n 生成空串的长度返回值:字符串型,获得n个空格拼成的字符串示例:例1:space(5) 返回:" "函数说明:split( srcExp,sepExp{,boolExp})将字符串按分割符分割成多个子串语法:split( srcExp,sepExp{,boolExp})参数说明:srcExp 待分割的字符串表达式sepExp 分隔符表达式boolExp bool型,是否解析引号、括号里的分隔符,为true时解析,为false时不解析,缺省为false返回值:分割后的字符串列表示例:例1:=split("ab;cd;ef;tg;tt",";") 返回数组:["ab","cd","ef","tg","tt"]例2:=split("ab;c'd;e'f;tg;tt",";",false) 返回数组:["ab","c'd;e'f","tg","tt"]不解析引号里的分隔符例3:=split("ab;c[d;e]f;tg;tt",";",false) 返回数组:["ab","c[d;e]f","tg","tt"]不解析括号里的分隔符例4:=split("ab;c'd;e'f;tg;tt",";",true) 返回数组:["ab","c'd","e'f","tg","tt"]解析引号里的分隔符例5:=split("ab;c[d;e]f;tg;tt",";",true) 返回数组:["ab","c[d","e]f","tg","tt"]解析括号里的分隔符函数说明:trim(s)去掉字符串左右的空串相关函数:right_trim() 去掉字符串右边的空格left_trim() 去掉字符串左边的空格语法:trim(s)参数说明:s 待去掉左右空串的源串返回值:字符串型示例:例1:trim(" abc ") 返回:"abc"例2:trim(" a bc ") 返回:"a bc"函数说明:upper(s)把字符串转成大写相关函数:lower() 把字符串转成小写word_cap() 将字符串每一个单词的首字母大写语法:upper(s)参数说明:s 待转成大写的源串返回值:字符串型示例:例1:upper("ABCdef") 返回:"ABCDEF"例2:upper("abcDEF") 返回:"ABCDEF"函数说明:wordCap(s)将字符串每一个单词的首字母大写相关函数:upper() 把字符串转成大写lower() 把字符串转成小写语法:wordCap(s)参数说明:s 需要将单词首字母大写的源串返回值:字符串型示例:例1:wordCap("I love my country") 返回:"I Love My Country"例2:wordCap("she is beautiful") 返回:"She Is Beautiful"单元格函数说明:avg(expression{,containNull})对可扩展单元格或集合表达式求平均值语法:avg(expression{,containNull})average(expression{,containNull})参数说明:expression 需要求平均值的单元格或表达式,一般为可扩展单元格或集合表达式containNull 是否对null元素进行计数返回值:实数示例:例1:avg(A1:B10) 求得A1至B10之间单元格的平均值,注意是以当前格为基格计算A1和B10例2:avg(arg1) 其中arg1是整数组,表示求得arg1中所有数据的平均值例3:avg(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的平均值例4:avg(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的平均值例5:avg(list(2,4,null),false)返回3,如果containNull为true或缺省则返回2函数说明:avg2(cellExp,exp{,containNull})以指定单元格集的元素为基格计算表达式求平均值语法:avg2(cellExp,exp{,containNull})参数说明:cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式expexp 表达式containNull 是否对null元素进行计数返回值:实数示例:例1:avg2(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的平均值函数说明:call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值语法:call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})参数说明:sqlStatement 合法的调用存储过程的sql语句arg(n) sql语句的参数,可以是常数也可以是表达式,如果是输出结果集的参数,对应的参数表达式写成"@@result"返回值:一组数据的集合,由结果集的第一个字段决定数据类型,如果结果集是多列,只返回第一列示例:例1:call("{call ResultSet (?,?,?)}","@@result","000001",A2)表示执行存储过程ResultSet,第一个输出参数输出结果集,第二、三个参数传入"000001",A2作为参数值函数说明:call(dbName,sqlStatement{,arg1{,arg2{,arg3{,……}}}})除第一个参数为数据源连接外,其他参数可call()函数相同,功能也和call()函数相同,通过第一个参数,可以实现不同的单元格连接不同的数据源。

润乾报表if函数

润乾报表if函数
润乾报表的if函数功能强大,能满足多种条件判断需求。在单个判断中,我们可以检查某个值是否为null,例如使用If(@value==null,’空’,’非空’)来判断,如果@value为空,则输出'空',否则输出'非空'。嵌套判断则允许我们在一个if函数内部再进行一次判断,如if(@value==null,'空',if(@value==1,'1','非 1')),这里首先判断@value是否为null,如果是则输出'空',否则再判断@value是否等于1,等于则输出'1',不等于则输出'非1'。多条件判断更为复杂,可以检查一个值是否满足多个条件,例如if(@value>1 and @value<3,'大于 1 小于 3','小于 1 或者大于 3'),这里判断@value是否在1和3之间,如果是则输出'大于1小于3',否则输出'小于1或者大于3'。通过这些判断方式,润乾报表的if函数能灵活处理各种数据情ቤተ መጻሕፍቲ ባይዱ。

润乾报表查询所有汇总

润乾报表查询所有汇总

润乾报表查询手册整理:Yangmc1.怎么实现报表中行(列)的按条件隐藏?在报表设计器中,选择相应报表的主格对应的单元格,在其属性“是否隐藏本行”的表达式中输入if(ds1.count()==0,true,false),具体用法请参考润乾报表的函数帮助。

(设计器中的函数帮助查看对应函数的用法)2.怎么实现报表与jsp文件的无缝结合?在Tag页面中输入<body style="margin: 0px 0px 0px 0px>。

扩展:实现定制结合。

如果还不能达到要求,一般到解析报表文件的那个jsp文件中找错误设置。

如我在应用中遇到这样的情况,我在Tag页面中输入<body style="margin: 0px 0px 0px 0px>,但是在页面顶部还是有一块空白区域,经检查发现是多了一个无用的<table></table>所制。

3.报表中参数传递步骤首先,保证报表中设计没问题,具体表现是在设计器中浏览要达到目标。

其次,在解析报表文件的jsp文件的<% …%>设置参数,具体设置参考testinput.jsp。

最后,在连接中设置传递参数值。

如%root%testinput.jsp?report=””?&param1=””+&param2=””+ …4.报表样式设计报表样式设计是在设计器中进行的,通过相应的前景颜色或背景颜色来设置颜色样式。

通过相关的属性设置其他的样式。

基本可以满足开发的需要。

5.层效果设置选中要实现层效果的行(1,2,3,……)或列(A,B,C,……),在对应行类型或列类型的属性值中选择值(表头区,标题区,……)。

在网通项目应用中,我们是把表头设置在jsp页面中,这样也可以实现我们需要的效果。

至于具体怎么设好,可以根据具体应用以及方便性来实现。

6.显示特殊字符如果想要显示特殊字符,最好是用英文中的特殊字符,如果用GBK中的特殊字符,在设计器中没有问题,但是在发布的时候显示为问号(?)。

润乾报表调用参数

润乾报表调用参数

润乾报表调用参数润乾报表是一种常用的财务报表分析工具,可以帮助企业对财务状况进行全面的分析和评估。

在使用润乾报表时,我们需要了解如何正确调用参数,以获取准确的报表数据。

本文将介绍润乾报表的调用参数及其使用方法,帮助读者更好地使用润乾报表进行财务分析。

一、调用参数的作用和分类润乾报表的调用参数是指在生成报表时需要提供的信息,包括报表类型、时间范围、公司代码等。

不同的调用参数可以实现不同的报表功能。

根据调用参数的不同,润乾报表的调用参数可以分为以下几类:1. 报表类型参数:用于指定要生成的报表类型,比如资产负债表、利润表、现金流量表等。

通过设置不同的报表类型参数,可以获取不同类型的财务报表数据。

2. 时间范围参数:用于指定报表的时间范围,比如年度报表、季度报表、月度报表等。

根据业务需要,可以灵活调整时间范围参数,以获取特定时间段内的财务数据。

3. 公司代码参数:用于指定要查询的公司代码,适用于多公司集团财务分析的场景。

通过设置不同的公司代码参数,可以获取不同公司的财务报表数据。

4. 其他参数:润乾报表还提供了一些其他的调用参数,用于实现更复杂的报表功能。

比如币种参数、科目代码参数、部门代码参数等,可以根据具体需求进行设置。

二、调用参数的使用方法使用润乾报表进行财务分析时,正确设置调用参数是非常重要的。

下面以资产负债表为例,介绍润乾报表调用参数的使用方法。

1. 首先,打开润乾报表软件,在报表模块中选择要生成的报表类型,比如资产负债表。

2. 然后,在报表设置中找到调用参数选项,点击进入参数设置界面。

3. 在参数设置界面中,根据需要设置报表的时间范围参数。

比如如果要生成年度报表,可以选择起始日期和结束日期为一年的时间范围。

4. 接下来,设置公司代码参数。

如果润乾报表支持多公司查询,可以选择要查询的公司代码,以获取相应公司的财务报表数据。

5. 如果需要对报表数据进行进一步筛选,可以设置其他参数,比如币种参数、科目代码参数等。

润乾报表实用技巧大全

润乾报表实用技巧大全

=floor(3451231.234,1)
返回: 3451231.2
round()
对数据在指定位置上 进行截取,剩余部分 四舍五入
=round(3451251.274,1)
返回: 3451251.3
字符串函数
函数名称 函数说明
去掉字符串左右的空 串
实例
实例说明
trim()
trim(" abc ")
常用单元格函数
函数名称 函数说明
对可扩展单元格或集 合表达式求平均值
实例
实例说明 表示当前主格扩 展区域内所有扩 展后的B1单元 格的平均值
avg()
avg(B1{})
if()
根据布尔表达式的不 同计算结果,返回不 同的值。
求当前格的值大 if(value()>100,-65536) 于100时,返回65536颜色值 求当前主格扩展 区域内所有扩展 后的B1单元格 的个数
相同的大小写,并将电子签名文件存放到润乾文件目录下的统一目
录中。如下所示。
2.在需要签名的单元格上右击,选择“数据类型”,在弹出的对话框中 选择图片文件。
制作电子签名
3.修改内容为:=“reportFiles/image/”+RNAM+“.jpg” 点确定保存。
制作电子签名
4.在浏览器中查看签名
网格式填报表-自动计算
• 基本概念
– 在客户端浏览器中跟据输入自动实现单元格值计算
输入自动计算的表达式的规则如下:
• 自动计算的表达式语法规则全部采用 操作 JavaScript 的语法规则。 • 自动计算的表达式中,如果需要相对引用单元格,即当报表进行扩展 注意
打印补空行

润乾报表高级设计(二)

润乾报表高级设计(二)

第39页
练习-行后分页2
要求:做一张下图所示的合同单,一个合同单在 一页里显示
第40页
练习-行后分页3
要求:每一页显示一个合同单,每个合同明细不 足5行的补足空行。
第41页
布局行数/列数
布局行数:如果报表是按照行数分页的,那么一张打印 布局列数:如果报表是按照行数分页的,那么一张打印 举例:
纸上可能打印多页报表,该参数设定一张打印纸上纵向可 以打印几排报表 纸上可能打印多页报表,该参数设定一张打印纸上横向可 以打印几排报表
第55页
尽量在sql里排序
报表中往往需要对数据进行排序,排序运算可以 在数据库中进行,也可以在报表端进行,如果报 表中的排序规则是确定的,那么建议排序操作选 择在数据库端进行,因为数据库中有索引,且数 据库是c语言开发的,数据运算速度快。
第56页
尽量在sql里过滤
报表很多时候并不需要对表中的所有记录进行操 作,而是对部分满足条件的记录进行操作,因此 建议过滤操作在数据库中进行,这样取到报表服 务器端的记录数大大减少,既加快了取数的速度 ,也加快了报表的运算速度,因为报表需要处理 的数据少了。
第51页
练习
主子表 按照上例的表样分别用单数据集和多数据集实现
第52页
2.2 写sql的技巧
尽量在sql里进行group
对于汇总类型的报表,往往需要进行分组聚集运算,如果 在数据库中先进行一次分组聚集,能够大大减少取到报表 服务器的记录数,加快取数和报表运算的速度。
第53页
第一种:select 产品,客户,销量 from 购买记录表
要求:通过里程碑图展现某公司各个项目计划与 实际完成时间的对比
第25页
时间走势图

润乾报表常用语法

润乾报表常用语法
2、单行颜色改变
如果某几行数值为“小计”、“合计”等数值,需要将其背景颜色改变,假设第一列是A5,则点单元格属性-字体-背景色,将其数值修改为if (A5 like '*计*',-592192,-1),这样“小计”、“合计”行的颜色就会变化,而其他行颜色不变。
3、按参数隐藏列
在报表参数中,传入某个数值后,将某一列或几列隐藏,例如当报表日期大于2009年1月1日,则隐藏几列,可以选择该列,在右边的属性中,找到“是否可见”,在表达式中填写if(@reportdate>"20090101",false,true),即可按照输入参数隐藏列。
润乾报表软件是一个常用的java报表工具,使用较为简单,可以轻ቤተ መጻሕፍቲ ባይዱ制作出各种各样的报表,是一个不错的Web报表工具,下面是我分享的一些使用润乾报表工具所总结的经验和技巧,供其他润乾报表的使用者参考。
1、按照千元单位显示
点单元格属性-显示值-表达式,将数值修改为if(value()!=0,value()/1000,0),这样,可以在数据数值不变的情况下将数值按照千元方式显示。
4、报表固定表头
报表在WEB页面输出的时候,需要设置横向、纵向滚动条来固定报表表头,选中需要固定的行或者列,点属性,将其所属区域设置为“表头区”,就可以固定表头。

润乾报表扩展函数

润乾报表扩展函数

润乾报表扩展函数
润乾是一款企业级报表工具,提供了丰富的报表扩展函数以支持各种复杂的报表需求。

以下是一些常用的润乾报表扩展函数:
1. REPLACE函数:用于替换字符串中的指定字符或字符串。

语法:REPLACE(string, find_string, replace_string)
2. UPPER函数和LOWER函数:用于将字符串转换为大写或小写。

语法:UPPER(string) 和 LOWER(string)
3. TRIM函数:用于去除字符串两端的空格。

语法:TRIM(string)
4. CONCAT函数:用于连接两个或多个字符串。

语法:CONCAT(string1, string2, ...)
5. SUBSTR函数:用于截取字符串中的指定部分。

语法:SUBSTR(string, start_position, length)
6. DATE函数和TIME函数:用于获取当前日期和时间。

语法:DATE() 和 TIME()
7. IF函数:用于条件判断,根据条件返回不同的结果。

语法:IF(condition, value_if_true, value_if_false)
8. COUNT函数和SUM函数:用于统计符合条件的记录数或计算符合条件的数值总和。

语法:COUNT(expression) 和 SUM(expression)
这些是润乾报表扩展函数中的一些常用函数,润乾还提供了其他许多函数,具体使用方法可以参考润乾的官方文档或用户手册。

润乾rank函数使用 -回复

润乾rank函数使用 -回复

润乾rank函数使用-回复润乾(rank)函数是一种在电子表格软件中常用的函数,用于确定某个值在一组数据中的排名。

无论是在商业分析、统计学还是金融投资领域,润乾函数都是非常有用的工具。

本文将详细介绍润乾函数的使用方法,包括语法、示例和常见应用场景,帮助读者更好地理解和运用该函数。

润乾函数的语法如下:`RANK(number,ref,[order])`参数解释如下:- `number` 为要进行排名的数值。

- `ref` 是包含要比较的一组数值的单元范围。

- `[order]` 是一个可选参数,用于指定排名的顺序。

默认值为0,表示降序排列;若设置为1,则表示升序排列。

在使用润乾函数之前,我们先来看一个简单的示例:假设有一个电子表格,A列包含学生的姓名,B列包含他们的分数。

我们想要根据分数列的值,确定每个学生在班级中的排名。

我们将使用润乾函数来实现这一目标。

1. 首先,在C列的第一个单元格中(通常是C2),输入`润乾(rank)`函数的公式:`=RANK(B2,B2:B10,0)`2. 在这个例子中,我们的`number`参数为B2,即要进行排名的分数;`ref`参数为B2:B10,即要比较的数值范围,我们将其设置为一个相对范围,其中的``号表示该范围是固定的;`[order]`参数设为0,表示降序排列。

3. 接下来,复制这个公式到C列的其他单元格中。

4. 现在,C列将显示每个学生在班级中的排名。

除了上面的示例,润乾函数还有许多其他的常见应用场景。

下面,我们将介绍几个典型的例子,以帮助读者更好地理解和应用该函数。

1. 排名并计算百分比:除了简单地给出排名,我们还可以计算每个值在一组数据中所占的百分比。

假设我们要确定学生每个人在班级中分数的百分比。

我们可以输入以下公式:`=RANK(B2,B2:B10,0)/COUNT(B2:B10)`。

通过将排名除以数据范围的总数,我们可以得到每个值的百分比。

2. 带有并列排名:在某些情况下,可能会出现多个值在一组数据中并列排名的情况。

润乾rank函数使用

润乾rank函数使用

润乾rank函数使用摘要:1.润乾rank 函数的概念与用途2.润乾rank 函数的算法原理3.润乾rank 函数的使用方法与实例4.润乾rank 函数的优缺点及应用场景正文:【1.润乾rank 函数的概念与用途】润乾rank 函数是一种用于计算排序的函数,其主要用途是对给定的一组数值进行排名。

在实际应用中,润乾rank 函数可以帮助我们快速准确地对一组数据进行排序,以便进行分析和处理。

【2.润乾rank 函数的算法原理】润乾rank 函数的算法原理是基于平均值和标准差的。

其主要思路是,将给定的一组数值与一个均值为0、标准差为1 的正态分布进行比较,从而得到每个数值的排名。

具体来说,润乾rank 函数将给定的数值转换为一个标准正态分布的Z 值,然后查找Z 值对应的排名,即为该数值的润乾rank。

【3.润乾rank 函数的使用方法与实例】在使用润乾rank 函数时,首先需要导入相关的库,例如在Python 中,可以使用scipy 库中的stats 模块。

然后,通过调用stats.rank 函数,传入需要排名的数值,即可得到对应的润乾rank。

例如,对于数值[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5],我们可以通过以下代码得到其润乾rank:```pythonfrom scipy.stats import rankvalues = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]ranks = rank(values)print(ranks)```运行以上代码,将输出:[2.1.5.1.4.3.10.4.1.2.1.],这就是给定数值的润乾rank。

【4.润乾rank 函数的优缺点及应用场景】润乾rank 函数的优点在于其能够快速、准确地对一组数据进行排名,且适用于各种类型的数据。

然而,润乾rank 函数也存在一些缺点,例如对于极小或极大的数值,其排名可能不准确。

在润乾报表里面decode的使用方法

在润乾报表里面decode的使用方法

在润乾报表里面decode的使用方法**在润乾报表中使用Decode 函数的详细指南**在润乾报表中,`Decode` 函数是一个非常实用的工具,它能够帮助用户在数据处理过程中进行条件判断与值替换。

本文将详细介绍如何在润乾报表中使用`Decode` 函数。

### Decode 函数的基础概念`Decode` 函数主要用于根据特定的条件表达式返回不同的结果。

其基本语法结构如下:```plaintextDecode(表达式, 比较值1, 返回值1, 比较值2, 返回值2, ..., 默认值) ```当表达式的结果与某个比较值匹配时,`Decode` 函数将返回对应的返回值。

如果表达式的结果与所有提供的比较值都不匹配,函数将返回默认值。

### 使用场景与示例#### 示例1:简单条件判断假设我们有一个销售报表,需要根据销售区域显示不同的地区名称。

```plaintextDecode(销售区域, "华北", "华北地区", "华东", "华东地区", "华南", "华南地区", "其他")```在这个例子中,如果`销售区域` 字段的值为"华北",函数将返回"华北地区";如果为"华东",则返回"华东地区",以此类推。

如果都不匹配,将返回"其他"。

#### 示例2:多条件组合`Decode` 也可以用于更复杂的条件组合。

```plaintextDecode(销售区域, "华北", Decode(产品类别, "手机", "华北手机", "电脑", "华北电脑", "其他产品"), "华东", Decode(产品类别, "手机", "华东手机", "电脑", "华东电脑", "其他产品"), "华南", Decode(产品类别, "手机", "华南手机", "电脑", "华南电脑", "其他产品"), "其他区域")```在这个例子中,我们嵌套使用了`Decode` 函数,首先判断销售区域,然后根据产品类别返回不同的结果。

润乾报表常用函数

润乾报表常用函数

润乾常用函数数值计算函数说明:abs(numberExp)计算参数的绝对值语法:abs(numberExp)参数说明:numberExp 待计算绝对值的数据返回值:数值型示例:例1:abs(-3245.54) 返回:3245.54例2:abs(-987) 返回:987函数说明:cos(numberExp)计算参数的余弦值,其中参数以弧度为单位相关的函数有sin() 计算参数的正弦值tan() 计算参数的正切值语法:cos(numberExp)参数说明:numberExp 待计算余弦值的弧度数返回值:double型示例:例1:cos(pi()) 返回:-1例2:cos(pi(2)) 返回:1函数说明:eval( StringExp )动态解析并计算表达式语法:eval( StringExp )eval( StringExp, SubRptExp )eval( StringExp, DataSetExp )参数说明:StringExp 待计算的表达式串SubRptExp 嵌入式子报表对象,一般是含有子报表的单元格DataSetExp 数据集对象,一般是ds函数返回值:表达式的结果值,数据类型由表达式决定示例:例1:eval( "1+5" ) 返回6例2:eval("B2+10", A1) 其中A1为嵌入式子报表,表示计算A1子报表中的B2+10 例3:eval("salary+100", ds("ds1")) 表示计算数据集ds1中salary加100函数说明:exp(nExp)计算e的n次幂语法:exp(nExp)参数说明:nExp 指定次幂数返回值:数值型示例:例1:exp(4.3) 返回:73.69979369959579函数说明:fact(nExp)计算参数的阶乘语法:fact(nExp)参数说明:nExp 待计算阶乘的数据返回值:长整数(64位)示例:例1:fact(10) 返回:3628800函数说明:fill(s, n)获得n个s拼成的字符串相关函数:space() 产生一个空串语法:fill(s, n)参数说明:s 用于拼成新串的源串n 新串中包含源串的个数返回值:字符型示例:例1:fill("1 ",10) 返回:"1 1 1 1 1 1 1 1 1 1 "例2:fill("a b",10) 返回:"a ba ba ba ba ba ba ba ba ba b"函数说明:fl oat(string)将单精度浮点数、双精度浮点数、字符串转换为32位的单精度浮点型语法:float(string)float(number)参数说明:string 需要转换的单精度浮点数、双精度浮点数表达式number 数字返回值:32位的单精度浮点数示例:例1:float("1234567") 返回:1234567.0例2:float(1234567.0) 返回:1234567.0例3:float(1234567) 表达式提示错误,因为1234567不是浮点数函数说明:fl oor(numberExp, {nExp})对数据在指定位置上进行截取,剩余部分只要有值全舍去相关的函数有:ceil:对数据在指定位置上进行截取,剩余部分只要有值就进位round:对数据在指定位置上进行截取,剩余部分四舍五入语法:floor(numberExp, {nExp})参数说明:numberExp 需要进行截取的数据nExp 整数,用于指定需要进行截取的位置,>0:从小数点往右位移nExp个位数,<0:从小数点往左移nExp个位数=0:表示当前小数点的位置返回值:数值型示例:例1:=floor(3451231.234,0) 返回:3451231.0例2:=floor(3451231.234,-1) 返回:3451230.0例3:=floor(3451231.234,-2) 返回:3451200.0例4:=floor(3451231.234,1) 返回:3451231.2例5:=floor(3451231.234,2) 返回:3451231.23涵数说明:log(numberExp)计算参数的自然对数相关函数:log10() 计算以10为底的对数语法:log(numberExp参数说明:numberExp 需要计算自然对数的数据返回值:数值型示例:例1:log(54) 返回:3.9889840465642745 函数说明:log10(numberExp)计算以10为底的对数相关函数:log() 计算自然对数语法:log10(numberExp)参数说明:numberExp 需要计算以10为底的对数的数据返回值:数值型示例:例1:log10(54) 返回:1.7323937598229684 函数说明:pi(numberExp)计算圆周率及其倍数语法:pi(numberExp)参数说明:numberExp 倍数,此参数省略,则返回圆周率返回值:圆周率及其倍数示例:例1:pi() 返回:3.141592653589793例2:pi(2) 返回:6.283185307179586函数说明:pow(xExp, nExp)计算x的n次幂语法:pow(xExp, nExp)参数说明:xExp 底数nExp 次幂示例:例1:pow(2,4) 返回:16.0函数说明:round(numberExp, {nExp})对数据在指定位置上进行截取,剩余部分四舍五入相关的函数有:ceil:对数据在指定位置上进行截取,剩余部分只要有值就进位floor:对数据在指定位置上进行截取,剩余部分只要有值全舍去语法:round(numberExp, {nExp})参数说明:numberExp 需要进行截取的数据nExp 整数,用于指定需要进行截取的位置,>0:从小数点往右位移nExp个位数,<0:从小数点往左移nExp个位数=0:表示当前小数点的位置返回值:数值型示例:例1:=round(3451251.274,0) 返回:3451251.0例2:=round(3451251.274,-1) 返回:3451250.0例3:=round(3451251.274,-2) 返回:3451300.0例4:=round(3451251.274,1) 返回:3451251.3例5:=round(3451251.274,2) 返回:3451251.27函数说明:sin(number)计算参数的正弦值,其中参数以弧度为单位相关的函数有cos() 计算参数的余弦值tan() 计算参数的正切值语法:sin(number)参数说明:number 需要计算正弦值的弧度数示例:例1:sin(pi()) 返回:1.2246467991473532E-16例2:sin(pi(2)) 返回:-2.4492935982947064E-16 例3:sin(pi()/2) 返回:1.0函数说明:sqrt(number)计算平方根语法:sqrt(number)参数说明:number 需要计算平方根的数据返回值:数值型示例:例1:sqrt(100) 返回:10.0例2:sqrt(99) 返回:9.9498743710662函数说明:tan(number)计算参数的正切值,其中参数以弧度为单位相关的函数有sin() 计算参数的正弦值cos() 计算参数的余弦值语法:tan(number)参数说明:需要计算正切值的弧度数返回值:double型示例:例1:tan(pi()/2) 返回:1.633123935319537E16例2:tan(pi(2)) 返回:-2.4492935982947064E-16函数说明:sum(expression)对可扩展单元格或集合表达式进行求和语法:sum(expression)sum(cellExp,exp)参数说明:expression 需要被求和的单元格或表达式,一般为可扩展单元格或集合表达式 cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式返回值:实数或者字符型,由被汇总的单元格数据类型决定示例:例1:sum(A1:A10) 求出单元格A1至A10的合计值,被统计单元格可以是数值型也可以是字符型例2:sum(arg1) 其中arg1是参数组,求出arg1中所有元素的合计值例3:sum(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值例4:sum(B1[`0]{}) 表示求得根坐标下所有扩展后的B1单元格的合计值例5:sum(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值日期函数说明:age(dateExp{,typeExp})计算从参数定义的时间到当前间隔的整年数语法:age(dateExp{,typeExp})age(stringExp,formatExp{,typeExp})参数说明:dateExp 日期型表达式,运算的结果是日期型(Date)stringExp 表达式,其结果必须为日期或中国日期时间格式的字符串formatExp 格式化表达式比如"yyyyMMdd","yyyy-MM-dd"等typeExp 计算精确的最小单位1为日,2为月,3为年,缺省为日返回值:整数示例:假设今天为2007.1.1例1:age(datetime2("19800227","yyyyMMdd")) 结果为26例3:age("19800227","yyyyMMdd",3) 结果为27函数说明:date(stringExp)将字符串转换成日期型数据语法: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(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)将各种格式的日期字符串转换成日期时间型数据,转换时可以指定字符串的当前格式语法: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)从日期型数据中获得该日在本月中是几号语法: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)从日期型数据中获得该日的星期名称语法: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") 返回:星期三函数说明:dayNo(dateExp)从日期型数据中,获得该日位于一个星期中的第几天,星期天返回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)计算两个日期型数据相差几天语法: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)获得指定日期所在月的天数语法: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(dateExp)daysInYear(year)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ssyear 返回整数的表达式返回值:整数示例:例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函数说明:hour(datetimeExp)从日期时间型数据中,获得当前时间位于一天中的第几个时辰语法:hour(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss 返回值:整数示例:例1:hour("1983-12-15") 返回:0例2:hour("1983-12-15 10:30:25") 返回:10例3:hour(dateTime("2006-01-15 13:20:30")) 返回:13函数说明:lastday(dateExp)获得指定日期的上一天语法:lastday(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastday("1972-11-08 10:20:30") 返回:1972-11-07 10:20:30例2:lastday(datetime2("19800227","yyyyMMdd")) 返回:1980-02-26 00:00:00 例3:lastday(dateTime("2006-01-15 10:20:30")) 返回:2006-01-14 10:20:30函数说明:lastmonth( dateExp )取得指定日期在上月的同日,若无同一日,则返回上月月末语法:lastmonth( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastmonth(datetime2("19800227","yyyyMMdd")) 返回:1980-01-27 00:00:00 例2:lastmonth("1972-11-08 10:20:30") 返回:1972-10-08 10:20:30例3:lastmonth(dateTime("2006-01-15 10:20:30")) 返回:2005-12-15 10:20:30函数说明:lastyear( dateExp )取得指定日期在去年的同月同日,若无同月同日,则返回去年同月最后一天语法:lastyear( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss返回值:日期时间型示例:例1:lastyear(datetime2("19800227","yyyyMMdd")) 返回:1979-02-27 00:00:00 例2:lastyear("1972-11-08 10:20:30") 返回:1971-11-08 10:20:30例3:lastyear(dateTime("2006-01-15 10:20:30")) 返回:2005-01-15 10:20:30函数说明:minute(datetimeExp)从日期时间型数据中,获得分钟的信息语法:minute(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:minute(datetime2("19800227","yyyyMMdd")) 返回:0例2:minute("1972-11-08 10:20:30") 返回:20例3:minute(dateTime("2006-01-15 13:20:30")) 返回:20函数说明:month(dateExp)取得指定日期所在的月份语法:month(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:month(datetime2("19800227","yyyyMMdd")) 返回:2例2:month("1972-11-08 10:20:30") 返回:11例3:month(dateTime("2006-01-15 13:20:30")) 返回:1函数说明:monthbegin( dateExp )取得指定日期所在月的月首语法:monthbegin( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:monthbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-0100:00:00例2:monthbegin("1972-11-08 10:20:30") 返回:1972-11-01 10:20:30例3:monthbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30 函数说明:monthend( dateExp )取得指定日期所在月的月末语法:monthend( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:monthend(datetime2("19800227","yyyyMMdd")) 返回:1980-02-29 00:00:00 例2:monthend("1972-11-08 10:20:30") 返回:1972-11-30 10:20:30例3:monthend(dateTime("2006-01-15 13:20:30")) 返回:2006-01-31 13:20:30 函数说明:now()获得系统此刻的日期时间语法:now()返回值:日期时间函数说明:quaterbegin( dateExp )取得指定日期所在季度的首日语法:quaterbegin( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss\ 返回值:日期时间\示例:例1:quaterbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-01-0100:00:00\例2:quaterbegin("1972-11-08 10:20:30") 返回:1972-10-01 10:20:30\例3:quaterbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30\ 函数说明:quaterend( dateExp )取得指定日期所在季度的末日语法:quaterend( dateExp )参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间示例:例1:quaterend(datetime2("19800227","yyyyMMdd")) 返回:1980-03-31 00:00:00 例2:quaterend("1972-11-08 10:20:30") 返回:1972-12-31 10:20:30例3:quaterend(dateTime("2006-01-15 13:20:30")) 返回:2006-03-31 13:20:30 函数说明:relDate(dateExp, nExp)从给定的日期型数据中,算出相差n天后的新的日期数据语法:relDate(dateExp, nExp)参数说明:dateExp 给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss nExp 整数表达式,需要求得nExp天后的新日期返回值:日期时间示例:例1:relDate(datetime2("19800227","yyyyMMdd"),5) 返回:1980-03-03 00:00:00 例2:relDate("1972-11-08 10:20:30",-10) 返回:1972-10-29 10:20:30例3:relDate(dateTime("2006-01-15 13:20:30"),15) 返回:2006-01-30 13:20:30函数说明:relTime(datetimeExp, nExp)从给定的日期时间型数据中,算出相差n秒后的新的日期时间数据语法:relTime(datetimeExp, nExp)参数说明:datetimeExp 给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss nExp 整数表达式,需要求得nExp秒后的新日期时间返回值:日期时间示例:例1:relTime(datetime2("19800227","yyyyMMdd"),5) 返回:1980-02-27 00:00:05 例2:relTime("1972-11-08 10:20:30",-10) 返回:1972-11-08 10:20:20例3:relTime(dateTime("2006-01-15 13:20:30"),15) 返回:2006-01-15 13:20:45 函数说明:second(datetimeExp)从日期时间型数据中,获得秒信息语法:second(datetimeExp)参数说明:datetimeExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:second(datetime2("19800227","yyyyMMdd")) 返回:0例2:second("1972-11-08 10:20:30") 返回:30例3:second(dateTime("2006-01-15 13:20:45")) 返回:45函数说明:secondsAfter(datetimeExp1,datetimeExp2)计算两个日期时间型数据相差几秒语法:secondsAfter(datetimeExp1,datetimeExp2)参数说明:datetimeExp1 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss datetimeExp2 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:secondsAfter(datetime2("19800227","yyyyMMdd"),dateTime("1980-02-27 00:00:45")) 返回:45例2:secondsAfter("1972-11-08 10:20:30","1972-11-08 10:30:50") 返回:620函数说明:time(stringExp)将字符串转换成时间型数据语法:time(stringExp)参数说明:stringExp HH:mm:ss格式的字符串返回值:时间型数据示例:函数说明:weekbegin(dateExp)获得指定日期所在星期的星期天,这里认定星期天为一周的开始语法:weekbegin(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:weekbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-24 00:00:00 例2:weekbegin("1972-11-08 10:20:30") 返回:1972-11-05 10:20:30例3:weekbegin(dateTime("2006-01-15 13:20:45")) 返回:2006-01-15 13:20:45 函数说明:weekend(dateExp)获得指定日期所在星期的星期六,这里认定星期六为一周的结束语法:weekend(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:日期时间型示例:例1:weekend(datetime2("19800227","yyyyMMdd")) 返回:1980-03-01 00:00:00 例2:weekend("1972-11-08 10:20:30") 返回:1972-11-11 10:20:30例3:weekend(dateTime("2006-01-15 13:20:45")) 返回:2006-01-21 13:20:45 函数说明:year(dateExp)从日期型数据中获得年信息语法:year(dateExp)参数说明:dateExp 日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或HH:mm:ss 返回值:整数示例:例1:year(datetime2("19800227","yyyyMMdd")) 返回:1980例2:year("1972-11-08 10:20:30") 返回:1972例3:year(dateTime("2006-01-15 13:20:45")) 返回:2006字符串函数说明:asc( string{, nPos} )取字符串指定位置的字符的unicode值,如果是ascii字符则返回ascii码(一般来说,英文字符及其扩展字符都是ascii字符,中文、日文、韩文等亚洲字符都是unicode字符,ascii字符为8位,unicode字符为16位(其中有3位用于标志字符类型))相关函数:char() 根据给定的unicode编码或者ascii码取得其对应的字符语法:asc( string{, nPos} )参数说明:string 给定的字符串nPos 整数表达式,缺省为0返回值:整数示例:例1:=asc("def") 返回:100 (ascii)例2:=asc("def",1) 返回:101 (ascii)例3:=asc("中国") 返回:20013 (unicode)例4:=asc("中国",1) 返回:22269 (unicode)函数说明:d eicmal(stringExp)将字符串或数字型数值转换成大浮点数语法:deicmal(stringExp)decimal(numberExp)参数说明:stringExp 给定数字串,可含小数点numberExp 数值,只能少于等于64位,超过64位就要用字符串返回值:大浮点数BigDecimal示例:例1:decimal("123456789012345678901234567890") 返回:123456789012345678901234567890例2:decimal(1234567890123456) 返回:1234567890123456(BigDecimal 类型)函数说明:left(string, n)获得源字符串左边的子串相关函数:mid() 获得源字符串中间的子串right() 获得源字符串右边的子串语法:left(string, n)参数说明:string 获得子串的源串n 获得子串的长度返回值:字符型示例:例1:left("abcdefg",3) 返回:"abc"函数说明:len(s)计算字符串的长度语法:len(s)参数说明:s 待计算长度的字符串返回值:整数示例:例1:len("adfg") 返回:4例2:len(" abd ") 返回:7函数说明:long( string )将字符串或数字转换成64位长整数语法:long( string )long( number )参数说明:string 需要转换的字符串表达式number 数字,如果带有小数,则小数部分被截掉返回值:64位长整数示例:例1:long("1234567") 返回:1234567例2:long(1234567.789) 返回:1234567函数说明:lower(s)将字符串转成小写相关函数:upper() 把字符串转成大写word_cap() 将字符串每一个单词的首字母大写语法:lower(s)参数说明:s 待转成小写的字符串返回值:字符型示例:例1:lower("ABCdef") 返回:"abcdef"例2:lower("defABC") 返回:"defabc"函数说明:ltrim(s)去掉字符串左边的空格相关函数:rrim() 去掉字符串右边的空格trim() 去掉字符串左右的空串语法:ltrim(s)参数说明:s 准备去掉左边空格的源串返回值:字符串型示例:例1:ltrim(" abc def ") 返回:"abc def "例2:ltrim("def abc ") 返回:"def abc "函数说明:maxwidth()求当前列中所有非合并格的显示串的最大字符长度(注意:ASCII码大于255的字符长度为2)语法说明:maxwidth()返回值:整数示例:一般用于列首格中,动态控制列宽例1:在列首格的单元格宽属性中写入8*maxwidth(),表示动态调整当前列宽为单元格显示值最大字符长度*8个像素函数说明:mid(s, start{, end})返回字符串的子串相关函数:left() 获得源字符串左边的子串right() 获得源字符串右边的子串语法:mid(s, start{, end})参数说明:s 待获得子串的源串start 获得子串的起始位置end 获得子串的结束位置,缺省为源串的长度返回值:字符串型示例:例1:mid("abcde",0) 返回:abcde例2:mid("abcde",1,2) 返回:b例3:mid("abcde",3) 返回:de函数说明:pos(s1, s2{, begin})查找母串中子串的位置语法:pos(s1, s2{, begin})参数说明:s1 待查找子串的母串s2 被查找的子串begin 查找的起始位置,缺省为0 返回值:整数示例:例1:pos("abcdef","def") 返回:3例2:pos("abcdefdef","def",5) 返回:6函数说明:right(s, n)获得字符串右边的子串相关函数:left() 获得源字符串左边的子串mid() 获得源字符串中间的子串语法:right(s, n)参数说明:s 待获得子串的源串n 获得子串的长度返回值:字符串型示例:例1:right("abced",2) 返回:"ed"函数说明:rmQuote(exp)删除表达式里的引号,包括单引号和双引号语法:rmQuote(exp)参数说明:exp 表达式返回值:字符串函数说明:rplc( srcExp,subStrA,rplcStrB{,boolExp})将字符串src的子字符串a变为字符串b,语法:rplc( srcExp,subStrA,rplcStrB{,boolExp})参数说明:srcExp 源字符串subStrA 源字符串的子字符串rplcStrB 将要替换成的字符串boolExp 引号里的字符是否需要变换,缺省为true返回值:替换后的字符串示例:例1:rplc("abc'abc'def","a","中国") 返回:"中国bc'中国bc'def"例2:rplc("abc'abc'def","a","中国",false) 返回:"中国bc'abc'def"例3:rplc("abc'abc'def","a","中国",true) 返回:"中国bc'中国bc'def"函数说明:rtrim(s)去掉字符串右边的空格相关函数:ltrim() 去掉字符串左边的空格trim() 去掉字符串左右的空串语法:rtrim(s)参数说明:s 准备去掉右边空格的源串返回值:字符串型示例:例1:rtrim(" abc def ") 返回:" abc def"例2:rtrim("def abc ") 返回:"def abc"函数说明:space(n)产生一个空串相关函数:fill() 获得n个s拼成的字符串语法:space(n)参数说明:n 生成空串的长度返回值:字符串型,获得n个空格拼成的字符串示例:例1:space(5) 返回:" "函数说明:split( srcExp,sepExp{,boolExp})将字符串按分割符分割成多个子串语法:split( srcExp,sepExp{,boolExp})参数说明:srcExp 待分割的字符串表达式sepExp 分隔符表达式boolExp bool型,是否解析引号、括号里的分隔符,为true时解析,为false时不解析,缺省为false返回值:分割后的字符串列表示例:例1:=split("ab;cd;ef;tg;tt",";") 返回数组:["ab","cd","ef","tg","tt"]例2:=split("ab;c'd;e'f;tg;tt",";",false) 返回数组:["ab","c'd;e'f","tg","tt"]不解析引号里的分隔符例3:=split("ab;c[d;e]f;tg;tt",";",false) 返回数组:["ab","c[d;e]f","tg","tt"]不解析括号里的分隔符例4:=split("ab;c'd;e'f;tg;tt",";",true) 返回数组:["ab","c'd","e'f","tg","tt"]解析引号里的分隔符例5:=split("ab;c[d;e]f;tg;tt",";",true) 返回数组:["ab","c[d","e]f","tg","tt"]解析括号里的分隔符函数说明:trim(s)去掉字符串左右的空串相关函数:right_trim() 去掉字符串右边的空格left_trim() 去掉字符串左边的空格语法:trim(s)参数说明:s 待去掉左右空串的源串返回值:字符串型示例:例1:trim(" abc ") 返回:"abc"例2:trim(" a bc ") 返回:"a bc"函数说明:upper(s)把字符串转成大写相关函数:lower() 把字符串转成小写word_cap() 将字符串每一个单词的首字母大写语法:upper(s)参数说明:s 待转成大写的源串返回值:字符串型示例:例1:upper("ABCdef") 返回:"ABCDEF"例2:upper("abcDEF") 返回:"ABCDEF"函数说明:wordCap(s)将字符串每一个单词的首字母大写相关函数:upper() 把字符串转成大写lower() 把字符串转成小写语法:wordCap(s)参数说明:s 需要将单词首字母大写的源串返回值:字符串型示例:例1:wordCap("I love my country") 返回:"I Love My Country"例2:wordCap("she is beautiful") 返回:"She Is Beautiful"单元格函数说明:avg(expression{,containNull})对可扩展单元格或集合表达式求平均值语法:avg(expression{,containNull})average(expression{,containNull})参数说明:expression 需要求平均值的单元格或表达式,一般为可扩展单元格或集合表达式containNull 是否对null元素进行计数返回值:实数示例:例1:avg(A1:B10) 求得A1至B10之间单元格的平均值,注意是以当前格为基格计算A1和B10例2:avg(arg1) 其中arg1是整数组,表示求得arg1中所有数据的平均值例3:avg(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的平均值例4:avg(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的平均值例5:avg(list(2,4,null),false)返回3,如果containNull为true或缺省则返回2函数说明:avg2(cellExp,exp{,containNull})以指定单元格集的元素为基格计算表达式求平均值语法:avg2(cellExp,exp{,containNull})参数说明:cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式expexp 表达式containNull 是否对null元素进行计数返回值:实数示例:例1:avg2(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的平均值函数说明:call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值语法:call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})参数说明:sqlStatement 合法的调用存储过程的sql语句arg(n) sql语句的参数,可以是常数也可以是表达式,如果是输出结果集的参数,对应的参数表达式写成"@@result"返回值:一组数据的集合,由结果集的第一个字段决定数据类型,如果结果集是多列,只返回第一列示例:例1:call("{call ResultSet (?,?,?)}","@@result","000001",A2)表示执行存储过程ResultSet,第一个输出参数输出结果集,第二、三个参数传入"000001",A2作为参数值函数说明:call(dbName,sqlStatement{,arg1{,arg2{,arg3{,……}}}})除第一个参数为数据源连接外,其他参数可call()函数相同,功能也和call()函数相同,通过第一个参数,可以实现不同的单元格连接不同的数据源。

润乾报表函数

润乾报表函数

润乾报表函数个人中心我的主页好友消息站内消息:无新消息提醒互动请求:2条新系统通知:5条新zln 米老鼠|装扮|设置| 退出糍糍1025的空间主页博客相册|个人档案|好友|i贴吧查看文章润乾报表函数2 转2011-09-05 16:55 函数说明:根据第一个表达式的值是否为空,若为空则返回指定值语法:nvl( valueExp1, valueExp2 )参数说明:valueExp1 需要计算的表达式,其结果不为空时返回其值valueExp2 需要计算的表达式,当valueExp1结果为空时返回此值返回值:valueExp1或valueExp2的结果值示例:例1:nvl(A1,&quot;&quot;) 表示当A1为空时,返回空串,否则返回A1例2:nvl(value(),0) 表示当当前格为空时返回0,否则返回当前格的值函数说明:计算分页后的当前页中所有的单元格(cellExp)的个数,注意,本函数只是在分页后才有效语法:pccount({cellExp})参数说明:cellExp 表达式返回值:当前页中所有的单元格(cellExp)的个数函数示例:pccount(A2{条件}) 返回当前页中所有的A2格的个数函数说明:取得总的页数,注意,本函数只是在分页后才有效语法:pcount({booleanExp})参数说明:booleanExp 表达式返回值:页数。

函数示例:pcount() 返回总的页表中的页数pcount(true) 返回纵向分页的页表中的页数pcount(false) 返回横向分页的页表中的页数函数说明:计算分页后的当前页中所有的单元格(cellExp)的和,注意,本函数只是在分页后才有效语法:pcsum({cellExp})参数说明:cellExp 表达式返回值:当前页中所有的单元格(cellExp)的和函数示例:pcsum(A2{条件}) 返回当前页中所有的A2格之和函数说明:计算圆周率及其倍数语法:pi(numberExp)参数说明:numberExp 倍数,此参数省略,则返回圆周率返回值:圆周率及其倍数示例:例1:pi() 返回:3.141592653589793例2:pi(2) 返回:6.283185307179586函数说明:计算一个值在一个完全划分中的位置语法:plot( valueExp, ListExp{, eqExp}{, ascExp} )参数说明:valueExp 返回值的表达式,值可以是字符串、数值、日期、时间等ListExp 返回同valueExp数据类型相同的数组,要求其中元素从小到大排列eqExp 返回布尔值的表达式,缺省为false,为false表示与ListExp元素比较时不包含等于ascExp 返回布尔值的表达式,缺省为true,即表示ListExp中元素从小到大排列,否则为从大到小排列示例:例1:plot( 0, list(0,10,100) ) 返回1,第一个集合为&lt;0,不包含0,第二个集合为&gt;=0且&lt;10,所以0落在了第二个集合中,集合的编号从0开始起编,依次为0,1,2,3,所以结果为1例2:plot( 0, list(0,10,100),true,true) 返回0例3:plot( 10, list(0,10,100), false ) 返回2例4:plot(10,list(100,10,0),true,false) 返回1详细说明:划分是指将一个集合划分成几个集合,如数组{0,10,100}在eqExp返回false的情况下将整数集或实数集划分成4个集合,依次分别是&lt;0、&lt;10(此集合中元素必定&gt;=0)、&lt;100(此集合中元素必定&gt;=10)及其它(即&gt;=100);在eqExp返回true的情况下将整数集或实数集划分成4个集合,分别是&lt;=0、&lt;=10(且&gt;0)、&lt;=100(且&gt;10)及其它(即&gt;100);对于数组{100,10,0},eqExp为false时也划分成4个集合,分别为&gt;100,&gt;10(且&lt;=100),&gt;0(且&lt;=10)及其它(即&lt;=0);eqExp为true时则为&gt;=100,&gt;=10(且&lt;100),&gt;=0(且&lt;10)及其它(即&lt;0)函数说明:取得当前页的页码,注意,本函数只是在分页后才有效语法:pno({booleanExp})参数说明:booleanExp 表达式返回值:当前页的页码。

润乾报表排序函数

润乾报表排序函数

润乾报表排序函数润乾报表排序函数是一种用于对报表数据进行排序的函数。

它可以根据指定的排序字段和排序方式,对报表中的数据进行排序,以便更好地展示和分析数据。

我们需要明确润乾报表排序函数的使用方法。

该函数的基本语法如下:```SORT(数据区域, 排序字段1, 排序方式1, 排序字段2, 排序方式2, ...)```其中,数据区域是待排序的数据区域,可以是一个单独的列、行或整个表格。

排序字段是指定数据排序的依据,可以是列名、行号或其他标识。

排序方式可以是升序(ASC)或降序(DESC)。

使用润乾报表排序函数可以实现以下几种常见的排序需求:1. 单列排序:通过指定一个排序字段和排序方式,对数据区域中的数据进行排序。

例如,我们可以对销售额列进行升序排序,以便找出销售额最低的产品。

2. 多列排序:通过指定多个排序字段和排序方式,对数据区域中的数据进行排序。

例如,我们可以先按照销售额进行升序排序,然后再按照产品名称进行降序排序,以便找出销售额最低且名称最靠后的产品。

3. 条件排序:通过结合润乾报表的条件函数,可以实现按照条件进行排序的功能。

例如,我们可以对销售额大于10000的产品进行升序排序,以便找出销售额较高的产品。

润乾报表排序函数的使用非常灵活,可以根据具体的需求灵活设置排序字段和排序方式。

同时,润乾报表还提供了其他一些辅助函数,如去重函数、筛选函数等,可以与排序函数结合使用,进一步提升数据处理的效率和准确性。

在实际应用中,润乾报表排序函数被广泛应用于各种报表数据的排序和分析工作中。

它可以帮助用户快速准确地找出数据中的最大值、最小值、前几名、后几名等信息,从而更好地理解和利用数据。

润乾报表排序函数是一种非常实用的数据处理函数,可以帮助用户对报表数据进行快速准确的排序和分析。

通过合理使用该函数,用户可以更好地理解和利用报表数据,为决策提供有力的支持。

润乾报表中点击表头小图标实现排序

润乾报表中点击表头小图标实现排序

集智数据平台的报表中的排序效果是多种多样的,先前已经有过很多点击报表头实现排序的例子,这里我们再介绍一个,在报表头上引入小图标(向上、向下的箭头)来点击,实现字段的排序效果。

实现效果图:(模拟数据)升序:降序:制作方法:1、在Img文件夹中放所需小图标,如下:2、在展现报表的JSP上加入一段引入JS脚本的代码,如下:3、在此JSP上引入img文件夹中的小图标,代码如下:.row-up{background-image:url('../img/up.png');background-position:cen ter right;background-repeat:no-repeat; border:1px solid #D4D4D4;font-weight:bold;}.row-down{background-image:url('../img/down.png');background-position :center right;background-repeat:no-repeat; border:1px solid #D4D4D4;font-weight:bold;}4、在report_sort.js脚本上用函数实现排序和点击表头排序,代码如下://添加排序函数$.fn.sort = function(fun){var d = this;var dom = this.find('tr:gt(0)');dom.each(function(i){dom.each(function(j){if(j<=i){return true;}var dom1 = dom.eq(i);var dom2 = dom.eq(j);if(fun(dom1,dom2)){dom1.before(dom2);dom = d.find('tr:gt(0)');}})})}// 设置点击表头排序$(function(){$('#report1tr:nth-child(1)').find('td').each(function(i){$(this).toggle(function(){$(this).parent().parent().sort(function(dom 1,dom2){var value1 =parseInt(dom1.find('td:eq('+i+')').text());var value2 =parseInt(dom2.find('td:eq('+i+')').text());return value1<value2;})init_table();$(this).addClass('row-down');},function(){$(this).parent().parent().sort(function(dom 1,dom2){var value1 =parseInt(dom1.find('td:eq('+i+')').text());var value2 =parseInt(dom2.find('td:eq('+i+')').text());return value1>value2;})init_table();$(this).addClass('row-up');})})})更多了解各种复杂问题的处理,可以参考:灵活订阅和调度,丰富的图表展现导出打印;几十种静动态统计图和自定义功能满足各种图表展示需求。

自定义函数实现润乾报表call函数功能

自定义函数实现润乾报表call函数功能

自定义函数实现报表call函数功能关键字:自定义增强函数call 存储过程使用前注意由于增强函数是授权控制的功能点,所以这种在简单版本下实现增强函数的功能请慎用。

本文介绍的方式适用于客户开发时使用的全功能临时授权,而正式购买的版本中无增强函数,销售要求在现有版本上实现增强函数的功能。

使用时可根据实际情况适当采用。

问题背景某客户购买的报表开发版(无增强套件),而他们在开发报表阶段使用的是全功能临时授权,报表中使用了大量的call query seq等增强函数,正式上线时发现报表不可用,提示使用了增强函数。

客户处已无预算增购增强套件,销售要求在现有版本上实现报表call函数等功能。

问题分析报表call函数的作用是调用存储过程,并将输出参数返回给报表。

可以通过自定义函数,在程序里调用存储过程,并将输出参数作为自定义函数的返回值返回给报表。

所以在自定义函数中要实现如下几块功能:1、解析自定义函数中的传递的报表表达式参数,如:A1;2、根据相应参数调用存储过程并接收存储过程输出参数;3、将输出参数值返回具体实现自定义函数名:callProcedure,参数:存储过程名,输入参数1、接收参数,并解析// 取得第一个参数,默认为表达式,需要把该表达式算出来,结果才是函数的参数值Expression param1 = (Expression) this.paramList.get(0);Expression param2 = (Expression) this.paramList.get(1);// 算出参数值Object result1 = Variant2.getValue(param1.calculate(ctx, isInput),false, isInput);Object result2 = Variant2.getValue(param2.calculate(ctx, isInput),false, isInput);2、调用存储过程//获取ctx中保存的连接工厂连接conn = ctx.getConnectionFactory("mysqlProc").getConnection();//调用存储过程cstmt = conn.prepareCall("{call "+procName+"(?,?)}");cstmt.setString(1, inParam);//设置第一个输入参数值cstmt.registerOutParameter(2, Types.VARCHAR);//将 OUT 参数注册为 JDBC 类型 sqlTypecstmt.execute();outParam = cstmt.getString(2);//接收输出参数的值3、将输出参数值返回给报表return outParam;//函数返回值源程序:1、mysql存储过程create procedure nameProc(in id varchar(10),out name varchar(50))beginset name =CONCAT(id,'aaa');end2、自定义函数CallProcedure.javapackage customFunction;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Types;import com.runqian.base4.resources.EngineMessage;import com.runqian.base4.resources.MessageManager;import com.runqian.base4.util.ReportError;import com.runqian.report4.model.expression.Expression;import com.runqian.report4.model.expression.Function;import com.runqian.report4.model.expression.Variant2;import ermodel.Context;public class CallProcedure extends Function{public Object calculate(Context ctx, boolean isInput) { /***计算报表参数*///判断参数个数if (this.paramList.size() < 1) {MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+ mm.getMessage("function.missingParam"));}// 取得第一个参数,默认为表达式,需要把该表达式算出来,结果才是函数的参数值Expression param1 = (Expression) this.paramList.get(0);Expression param2 = (Expression) this.paramList.get(1);if (param1 == null) {// 判断参数是否为空MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+mm.getMessage("function.invalidParam"));}if (param2 == null) {// 判断参数是否为空MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+mm.getMessage("function.invalidParam"));}// 算出参数值Object result1 = Variant2.getValue(param1.calculate(ctx, isInput),false, isInput);Object result2 = Variant2.getValue(param2.calculate(ctx, isInput),false, isInput);// 判断第一个参数值是否为空if (result1 == null) {return null;}if (result2 == null) {return null;}String procName = result1.toString();//存储过程名String inParam = result2.toString();//输入参数Connection conn = null;CallableStatement cstmt = null;Statement stmt = null;ResultSet rs = null;String outParam = null;try {//获取ctx中保存的连接工厂连接conn =ctx.getConnectionFactory("mysqlProc").getConnection();//调用存储过程cstmt = conn.prepareCall("{call "+procName+"(?,?)}");cstmt.setString(1, inParam);//设置第一个输入参数值cstmt.registerOutParameter(2, Types.VARCHAR);//将 OUT 参数注册为 JDBC 类型 sqlTypecstmt.execute();outParam = cstmt.getString(2);//接收输出参数的值} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(cstmt!=null)cstmt.close();if(conn!=null)conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return outParam;//函数返回值}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

润乾报表常用函数1.to函数说明:生成一组连续的整数数据语法:to(startExp,endExp{,stepExp})参数说明:startExp 整数数据开始的表达式endExp 整数数据结束的表达式stepExp 整数数据步长的表达式函数示例:to(1,5)=list(1,2,3,4,5)to(1,5,2)=list(1,3,5)to(-5,-10,-2)=list(-5,-7,-9)to(-10,-8)=list(-10,-9,-8)2.select函数说明:从数据集的当前行集中选取符合条件的记录语法:datasetName.select( <select_exp>{, desc_exp{, filter_exp{,sort_exp{,rootGroupExp}}}} )datasetName.select( <select_exp>, , <filter_exp> )//适用于不需排序或数据集中已排好序参数说明:select_exp:要选择的字段列名/列号,,也可以是表达式。

列号用#n 表示,例如#0代表第0列,#1代表第1列,依此类推desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。

filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。

sort_exp: 数据排序表达式。

当此项为空时先检查desc_exp是否为空,如果为空,则不排序,否则使用select_exp排序。

rootGroupExp 是否root数据集表达式返回值:一组数据的集合,数据类型由select_exp的运算结果决定函数示例:例1:ds1.select( name ) 从数据源ds1中选取name字段列的所有值, 不排序例2:ds1.select( #2, true ) 从数据源ds1中选取第二个字段列的所有值并降序排列例3:ds1.select( name,false,sex=='1') 从数据源ds1中选取性别为男性的name字段列的值并升序排列例4:ds1.select( name, true, sex=='1', id ) 从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列3.Int函数说明:将字符串或数字转换成整数语法:int( string ) int( number )参数说明:string 需要转换的字符串表达式number 数字,如果带有小数位,转换后小数位被截掉返回值:32位整数示例:例1:int( "100" ) 返回:100例2:int( 100.1 ) 返回:100例3:int(100.9999) 返回:1004.map函数说明显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回null语法:map(valueListExp, displayListExp)参数说明:valueListExp 真实值列表,可以是可扩展单元格或结果为集合列表的表达式displayListExp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式真实值列表和显示值列表一一对应返回值:字符型,和当前格真实值对应的显示值示例:例1:map(to(1,3),list("男","女","不定"))例2:map(arg1,arg2) 其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组例3:map(list(1,2,3),list("男","女","不定"))5.Select1函数说明:从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值语法:datasetName.select1(selectExp{,filterExp{,rootGroupExp}})参数说明:selectExp 要选择的字段列名/列号,,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推filterExp 过滤条件rootGroupExp 是否root数据集表达式返回值:数据类型不定,由selectExp的运算结果决定特别说明:当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。

示例:例1:ds1.select1(name) 返回数据集ds1中第一条记录的name字段值例2:ds1.select1(name,score>90) 从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值6.Value函数说明:取得当前单元格的值语法:value()返回值:当前单元格的值7.pno函数说明:取得当前页的页码,注意,本函数只是在分页后才有效语法:pno({booleanExp})参数说明:booleanExp 表达式返回值:当前页的页码。

函数示例:pno() 返回前页在总的页表中的页码pno(true) 返回前页在纵向分页的页表中的页码pno(false) 返回前页在横向分页的页表中的页码8.pcsum:计算分页后的当前页中所有的单元格(cellExp)的和,注意,本函数只是在分页后才有效语法:pcsum({cellExp})参数说明:cellExp 表达式返回值:当前页中所有的单元格(cellExp)的和函数示例:pcsum(A2{条件}) 返回当前页中所有的A2格之和9.pccount函数说明:计算分页后的当前页中所有的单元格(cellExp)的个数,注意,本函数只是在分页后才有效语法:pccount({cellExp})参数说明:cellExp 表达式返回值:当前页中所有的单元格(cellExp)的个数函数示例:pccount(A2{条件}) 返回当前页中所有的A2格的个数10.now函数说明:获得系统此刻的日期时间语法:now()返回值:日期时间11.if函数说明根据布尔表达式的不同计算结果,返回不同的值。

本函数从左到右计算,先出现的布尔表达式先算,如果出现为true的表达式,则返回相应的结果,后面的不再计算。

如果没有一个布尔表达式为true,而且有缺省值表达式,则返回缺省值,否则返回null。

语法:if(boolExp1,valueExp1{,boolExp2,valueExp2{,boolExp3,valueExp3 {, {defaultExp}}}})参数说明:boolExp(n) 布尔表达式,如果结果为真,则返回对应的值表达式计算结果valueExp(n) 值表达式,和布尔表达式一一对应defaultExp 缺省值表达式,如果所有布尔表达式结果都为假,则返回本表达式计算结果返回值:数据类型不定,由valueExp(n)的运算结果决定。

示例:例1:if(value()>100,-65536,value()<=100 andvalue()>80,-16776961,-14336 ) 表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且大于80时,返回-16776961颜色值,否则返回-14336颜色值12.row函数说明:取得当前单元格所在行的行号语法:row({cellExp})参数说明: cellExp 单元格表达式(不写表示当前单元格)返回值:整数举例:在第三行单元格中写入=row(),返回值为3,如果第三行存在纵向扩展格,则行号依次改变。

13.group函数说明:根据分组表达式,从数据集中选出一组组集语法:datasetName.group( <selectExp, , <filterExp ) //适用于不需要排序或数据集中已排好序datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,gr oupSortExp{,groupDescExp{,rootGroupExp}}}}}})参数说明:selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推descExp 分组前记录的排序顺序,true为逆序,false为顺序filterExp 过滤表达式sortExp 分组前记录的排序依据表达式groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等groupDescExp 组排序顺序,true为逆序,false为顺序rootGroupExp 是否root数据集表达式返回值:一组数据的集合,数据类型由selectExp的运算结果来决定示例:例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(工业产值),然后按照这个汇总值对组进行逆序排列14.count函数说明:对可扩展单元格或集合表达式进行计数语法: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单元格的个数15.list函数说明:获得一个枚举的数据集合语法: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"}16.Sum单元格函数说明:对可扩展单元格或集合表达式进行求和语法:sum(expression) sum(cellExp,exp)参数说明:expression 需要被求和的单元格或表达式,一般为可扩展单元格或集合表达式cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式返回值:实数或者字符型,由被汇总的单元格数据类型决定示例:例1:sum(A1:A10) 求出单元格A1至A10的合计值,被统计单元格可以是数值型也可以是字符型例2:sum(arg1) 其中arg1是参数组,求出arg1中所有元素的合计值例3:sum(B1{})表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值例4:sum(B1[`0]{}) 表示求得根坐标下所有扩展后的B1单元格的合计值例5:sum(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值默认汇总规则的格式:sum(cell{})。

相关文档
最新文档