目录

单元格函数

 单元格函数

 avg()

函数说明: 对可扩展单元格或集合表达式求平均值

语法: avg(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()

函数说明: 以指定单元格集的元素为基格计算表达式求平均值

语法: avg2(cellExp,exp{,containNull})

参数说明: cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式 containNull 是否对null元素进行计数

返回值: 实数

示例:

例1:avg2(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的平均值

 call()

函数说明: 执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值

语法: call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})

参数说明: sqlStatement 合法的调用存储过程的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式,如果是输出结果集的参数,对应的参数表达式写成"@@result"

返回值: 一组数据的集合,由结果集的第一个字段决定数据类型,如果结果集是多列,只返回第一列

示例:

例1:call("{call ResultSet (?,?,?)}","@@result","000001",A2) 表示执行存储过程ResultSet,第一个输出参数输出结果集,第二、三个参数传入"000001",A2作为参数值

 call2()

函数说明: 除第一个参数为数据源连接外,其他参数可call()函数相同,功能也和call()函数相同,通过第一个参数,可以实现不同的单元格连接不同的数据源。

语法: call(dbName,sqlStatement{,arg1{,arg2{,arg3{,……}}}})

参数说明: dbName 数据源名称 sqlStatement 合法的调用存储过程的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式, 如果是输出结果集的参数,对应的参数表达式写成"@@result"

返回值: 一组数据的集合,由结果集的第一个字段决定数据类型,如果结果集是多列,只返回第一列

示例:

例1:call2("demo","{call ResultSet (?,?,?)}","@@result","000001",A2) 表示对数据源demo执行存储过程ResultSet,第一个输出参数输出结果集,第二、三个参数传入"000001",A2作为参数值

 case()

函数说明: 根据表达式的不同计算结果,返回不同的值。本函数:从左到右计算,先出现的表达式先算,如果出现满足的表达式,则返回相应的结果,后面的不再计算。如果没有一个表达式满足条件,而且有缺省值表达式,则返回缺省值,否则返回null。

语法: case(Exp{,list(valueExp11,valueExp12,...),resultExp1{,list(valueExp21,valueExp22,...),resultExp2{,...{,defaultExp}}}})

参数说明: Exp 判断用到的表达式 valueExp(n) 值表达式 resultExp(n) 返回结果表达式 defaultExp 缺省值表达式,如果所有表达式结果都不满足,则返回本表达式计算结果

函数示例:

case("上海",list("北京","天津"),"1",list("武汉","上海"),"2")运算结果为:"2"

case("上海",list("北京","天津"),"1",list("武汉"),"2","3") 运算结果为:"3"

case("上海",list("北京","天津"),"1",list("武汉"),"2") 运算结果为:null

 cell()

函数说明: 在平面内取单元格,注意这里的单元格是运算后的单元格

语法: cell({cellExp}{,rowOffsetExp{,colOffsetExp}})

参数说明: cellExp 单元格表达式(不写表示当前单元格) rowOffsetExp 整数的相对cellExp的行偏移量表达式 colOffsetExp 整数的相对cellExp的列偏移量表达式

函数示例: cell(,1,-5) 取得当前单元格的下一行,左边5列的单元格 cell(C1) 取得与当前单元格的偏移为“当前单元格的源格与C1的偏移”的格 cell(D1,1,3) 取得D1的下一行,右3列的单元格

 col()

函数说明: 取得当前单元格所在列的列号

语法: col({cellExp}) 参数说明: cellExp 单元格表达式(不写表示当前单元格)

返回值: 整数

举例: 在B列单元格中写入=col(),返回值为2,如果B列存在横向扩展格,则列号依次改变。

 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单元格的个数

 disp()

函数说明: 取单元格的显示值

语法: disp( cell )

参数说明: cell 单元格

返回值: 字符型

示例:

例1:if(like(disp(A1), "中国*"),true,false) 表示如果A1单元格的显示值含有中国的字样,返回true,否则返回false。

 ds()

函数说明: 按名称取得数据集对象,本函数用于动态改变表达式的数据集对象,用法很灵活,但是性能较低,须慎用。

语法: ds( stringExp )

参数说明: stringExp 数据集的名称

返回值: 数据集对象

说明: 本函数的返回值是表达式的一个元素,不能作为单元格的数据值,必须经过二次运算。

示例:

例1:ds("ds1").select(#0) 表示取出ds1数据集中的记录行号集合

 eval()

函数说明: 动态解析并计算表达式

语法: 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

 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 and value()>80,-16776961,-14336 ) 表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且大于80时,返回-16776961颜色值,否则返回-14336颜色值

 inputValue()

函数说明: 取得表达式的填报值

语法: inputValue(Exp)

参数说明: Exp 表达式

返回值: 该表达式对应的填报值。

 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"}

 list2()

函数说明: 本函数与list函数唯一的区别是,本函数对内部的list不展开

语法: list2 (valueExp1{,valueExp2{,valueExp3{,……}}})

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

返回值: 一组枚举数据的集合

示例:

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

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

例3:list2(arg1,to(1,3),"a","b","c") 假设arg1是个整数组,其值为7,8,9,那么该表达式的结果值为{list(7,8,9),list(1,2,3),"a","b","c"}

 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("男","女","不定"))

 max()

函数说明: 对可扩展单元格或集合表达式求最大值

语法: max(expression) max(cellExp,exp)

参数说明: expression 需要求最大值的单元格或表达式,一般为可扩展单元格或集合表达式 cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式

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

示例:

例1:max(A1:A10) 求出单元格A1至A10之间的最大值

例2:max(arg1) 其中arg1是参数组,求出arg1中的最大值

例3:max(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的最大值

例4:max(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的最大值

例5:max(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的最大值

 maxc()

函数说明: 返回输入的单元格(格集)中值最大的单元格组成的List,如果存在多个单元格的 值相等且最大,则这些格都会被返回。

语法: maxc(cellExp1{,cellExp2{,......}})

参数说明: cellExp1 单元格(格集)或单元格(格集)表达式

返回值: 单元格List

示例:

例1:maxc(A1,A2,A3,A4) 求出单元格A1至A4之间值最大的单元格组成的列表

例2:maxc(A1{},A2) 求A1扩展出来的所有单元格和A2中值最大的单元格组成的列表

 maxwidth()

函数说明: 求当前列中所有非合并格的显示串的最大字符长度 (注意:ASCII码大于255的字符长度为2)

语法说明: maxwidth()

返回值: 整数

示例: 一般用于列首格中,动态控制列宽

例1:在列首格的单元格宽属性中写入8*maxwidth(),表示动态调整当前列宽为单元格显示值最大字符长度*8个像素

 min()

函数说明: 对可扩展单元格或集合表达式求最小值

语法: min(expression) min(cellExp,exp)

参数说明: expression 需要求最小值的单元格或表达式,一般为可扩展单元格或集合表达式 cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式

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

示例:

例1:min(A1:A10) 求出单元格A1至A10之间的最小值

例2:min(arg1) 其中arg1是参数组,求出arg1中的最小值

例3:min(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的最小值

例4:min(B1[`0]{}) 表示求得根坐标下所有扩展后的B1单元格的最小值 例5:min(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的最小值

 minc()

函数说明: 返回输入的单元格(格集)中值最小的单元格组成的List,如果存在多个单元格的值相等且最小,则这些格都会被返回。

语法: minc(cellExp1{,cellExp2{,......}}) 参数说明: cellExp1 单元格(格集)或单元格(格集)表达式

返回值: 单元格List

示例:

例1:minc(A1,A2,A3,A4) 求出单元格A1至A4之间值最小的单元格组成的列表

例2:minc(A1{},A2) 求A1扩展出来的所有单元格和A2中值最小的单元格组成的列表

 nvl()

函数说明: 根据第一个表达式的值是否为空,若为空则返回指定值

语法: nvl( valueExp1, valueExp2 )

参数说明: valueExp1 需要计算的表达式,其结果不为空时返回其值 valueExp2 需要计算的表达式,当valueExp1结果为空时返回此值

返回值: valueExp1或valueExp2的结果值

示例: 例1:nvl(A1,"") 表示当A1为空时,返回空串,否则返回A1 例2:nvl(value(),0) 表示当当前格为空时返回0,否则返回当前格的值

 plot()

函数说明: 计算一个值在一个完全划分中的位置

语法: plot( valueExp, ListExp{, eqExp}{, ascExp} )

参数说明: valueExp 返回值的表达式,值可以是字符串、数值、日期、时间等 ListExp 返回同valueExp数据类型相同的数组,要求其中元素从小到大排列 eqExp 返回布尔值的表达式,缺省为false,为false表示与ListExp元素比较时不包含等于 ascExp 返回布尔值的表达式,缺省为true,即表示ListExp中元素从小到大排列,否则为从大到小排列;rootGroupExp    是否root数据集表达式

特别说明:

ascExp为true(即listExp从小到大排列)时,eqExp为true时,与元素比较时采用<=,eqExp为false时,采用<;ascExp为false(即listExp从大到小排列)时,eqExp为true时,与元素比较时采用>=,eqExp为false时,采用>

返回值:

整数组,代表记录按值段分组后组的顺序,如list(0,1,2,3)代表第一组,第二组,第三组,第四组因此,定义完单元格数据值表达式后还需要定义显示值表达式,比如第一组代表不及格,第二组代表及格等等

示例:

例1:plot( 0, list(0,10,100) ) 返回1,第一个集合为<0,不包含0,第二个集合为>=0且<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个集合,依次分别是<0、<10(此集合中元素必定>=0)、<100(此集合中元素必定>=10)及其它(即>=100);在eqExp返回true的情况下将整数集或实数集划分成4个集合,分别是<=0、<=10(且>0)、<=100(且>10)及其它(即>100);对于数组{100,10,0},eqExp为false时也划分成4个集合,分别为>100,>10(且<=100),>0(且<=10)及其它(即<=0); eqExp为true时则为>=100,>=10(且<100),>=0(且<10)及其它(即<0)

 query()

函数说明: 执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语句中有多个字段,则返回第一个字段的结果值

语法: query(sqlStatement{,arg1{,arg2{,arg3{,……}}}})

参数说明: sqlStatement 合法的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式

返回值: 一组数据的集合,数据类型由sql语句的第一个选出字段决定 示例:

例1:query("select name from employee where sex=?","1") 表示从employee表中选出sex="1"的记录,返回其name字段值

 query2()

函数说明: 执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语句中有多个字段,则返回第一个字段的结果值。和query()函数的差别在于多了第一个参数,第一个参数用于制定数据源名称,通过他可以实现不同单元格从不同数据源获取数据

语法: query2(dbname, sqlStatement{,arg1{,arg2{,arg3{,……}}}})

参数说明: dbname 数据库逻辑名,为null表示缺省数据库 sqlStatement 合法的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式

返回值: 一组数据的集合,数据类型由sql语句的第一个选出字段决定

示例: 例1:query2("demo","select name from employee where sex=?","1") 表示从demo数据库的employee表中选出sex="1"的记录,返回其name字段值

 rgb()

函数说明: 将红、绿、蓝、透明度转换成颜色值

语法: rgb( redIntExp, greenIntExp, blueIntExp{, alphaIntExp} )

参数说明: redIntExp 0-255之间的整数表达式,表示红色 greenIntExp 0-255之间的整数表达式,表示绿色 blueIntExp 0-255之间的整数表达式,表示蓝色 alphaIntExp 0-255之间的整数表达式,表示透明度, 0表示完全透明,255表示完全不透明,其他数值呈现不同程度的透明度,缺省值为255

返回值: 64位的长整数

示例:

例1:rgb(123,123,123) 返回:-8684677

例2:rgb(123,123,123,123) 返回:2071690107

例3:rgb(123,123,123,255) 返回:-8684677

例4:rgb(123,123,123,0) 返回:8092539

 row()

函数说明: 取得当前单元格所在行的行号

语法: row({cellExp})

参数说明: cellExp 单元格表达式(不写表示当前单元格)

返回值: 整数

举例: 在第三行单元格中写入=row(),返回值为3,如果第三行存在纵向扩展格,则行号依次改变。

 seq()

函数说明: 取得指定扩展单元格的同源号,即扩展格扩展后,将此单元格的同源格按行(列)号从小到大排序后,此单元格所在的序号。

语法: seq({cellExp})

参数说明: cellExp 单元格表达式,必须返回扩展格

返回值: 整数

举例: 假设A1是扩展格,B1的主格为A1,在B1单元格中写入=seq(A1),则扩展后B1的值将依次从1变到A1扩展出来的单元格的数目。

 sort()

函数说明: 对数组进行排序 语法: sort( arrayExp{, boolExp} )

参数说明: arrayExp 数组表达式,譬如group,select,list等函数 boolExp 布尔表达式,true表示对数组按升序排列,否则降序

返回值: 数组,元素数据类型由参数1决定

示例:

例1:sort({5,2,3,4},true) 返回值为{2,3,4,5}

例2:sort({5,2,3,4}) 返回值为{5,4,3,2}

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的和的合计值

 throwe()

函数说明: 抛出一个ReportError异常

语法: throwe({msg})

参数说明: msg 异常信息字符串

举例: throwe("单元格值有误") 抛出一个异常,显示信息为“单元格值有误”

 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)

 value()

函数说明: 取得当前单元格的值 语法: value()

返回值: 当前单元格的值

 valueat()

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

语法: valueat(arrayexp,suffixExp)

参数说明: arrayexp 数组或者集合表达式 suffixExp 整数,用于指定返回集合中的第几个元素

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

示例:

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

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