报表软件FineReport各类函数大全.docx
- 文档编号:27845750
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:46
- 大小:96.88KB
报表软件FineReport各类函数大全.docx
《报表软件FineReport各类函数大全.docx》由会员分享,可在线阅读,更多相关《报表软件FineReport各类函数大全.docx(46页珍藏版)》请在冰豆网上搜索。
报表软件FineReport各类函数大全
常用函数…………………………………………………………………………2
报表函数…………………………………………………………………………4
数组函数…………………………………………………………………………6
数学和三角函数…………………………………………………………………8
文本函数…………………………………………………………………………16
日期和时间函数…………………………………………………………………22
逻辑函数…………………………………………………………………………28
简单的自定义函数………………………………………………………………29
常用函数
1.SUM
SUM(number1,number2,…):
求一个指定单元格区域中所有数字之和。
Number1,number2,…:
1到30个参数或指定单元格区域中所有数字。
备注:
函数将直接键入参数中的数值、逻辑值及文本表达式计算在内。
若参数是数组或引用,则只对数组或单元格引用的数值进行计算。
示例:
SUM(70,80)等于150。
SUM("70",80,TRUE)等于151,逻辑值"TRUE"作为1来计算;"FALSE"作为0计算;文本"70"作为70来计算。
2.COUNT
COUNT(value1,value2,…):
计算数组或数据区域中所含数字项的个数。
Value1,value2,…:
可包含任何类型数据的参数,但此函数只将数字类型的数据计算在内。
备注:
数字、日期或以文字代表的数字参数将被计算在内;但无法转换成数字的错误值或文本值参数将忽略不计。
如果数组或引用参数中包含可解析文本值、逻辑值、零值或空白单元格,这些值都将参与计算,而不可解析的文本值忽略不计。
3.AVERAGE
AVERAGE(number1,number2,…):
返回指定数据的平均值。
Number1,number2…:
用于计算平均值的参数。
备注:
参数必须是数字,或是含有数字的名称,数组或引用。
如果数组或引用参数中含有文字,逻辑值,或空白单元格,这些值将被忽略;但是,单元格中的零值则参与计算。
示例:
如果A1:
A6被命名为“ages”,分别等于10,23,14,24,33及25,则:
AVERAGE(A1:
A6)等于21.5,AVERAGE(ages)等于21.5。
如果还有一个年龄为18的,求所有年龄的平均值为:
AVERAGE(A1:
A6,18)等于21。
4.CHAR
CHAR(number):
根据指定数字返回对应的字符。
CHAR函数可将计算机其他类型的数字代码转换为字符。
Number:
用于指定字符的数字,介于1-Number:
用于指定字符的数字,介于1-65535之间(包括1和65535)。
示例:
CHAR(88)等于“X”;CHAR(45)等于“-”。
5.DATE
DATE(year,month,day):
返回一个表示某一特定日期的系列数。
Year:
代表年,可为一到四位数。
Month:
代表月份。
若1month12,则函数把参数值作为月;若month>12,则函数从年的一月份开始往上累加。
例如:
DATE(2000,25,2)等于2002年1月2日的系列数。
Day:
代表日。
若日期小于等于某指定月的天数,则函数将此参数值作为日;若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加;若日期大于两个或多个月的总天数,则函数把减去两个月或多个月的余数加到第三或第四个月上,依此类推。
例如:
DATE(2000,3,35)等于2000年4月4日的系列数。
备注:
若需要处理公式中日期的一部分,如年或月等,则可用此公式。
若年,月和日是函数而不是函数中的常量,则此公式最能体现其作用。
示例:
DATE(1978,9,19)等于1978年9月19日。
DATE(1211,12,1)等于1211年12月1日。
6.MAX
MAX(number1,number2,…):
返回参数列表中的最大值。
Number1,number2,…:
1到30个需要找出最大值的参数。
备注:
参数可以是数字、空白单元格、逻辑值或数字的文本表达式。
如果数组或引用参数中包含可解析文本值,逻辑值,零值或空白单元格,这些值都将参与计算,而不可解析的文本值忽略不计。
如果参数中没有任何数字,MAX将返回0。
示例:
MAX(0.1,0,1.2)等于1.2。
7.MIN
MIN(number1,number2,…):
返回参数列表中的最小值。
Number1,number2,…:
1到30个需要找出最小值的参数。
备注:
若参数中没有数字,函数MIN将返回0。
参数应为数字、空白单元格、逻辑值或是表示数值的文本串。
如果参数是错误值时,MIN将返回错误信息。
如果数组或引用参数中包含可解析文本值,逻辑值,零值或空白单元格,这些值都将参与计算,而不可解析的文本值忽略不计。
示例:
如果B1:
B4包含3,6,9,12,则:
MIN(B1:
B4)等于3,MIN(B1:
B4,0)等于0。
8.TIME
TIME(hour,minute,second):
返回代表指定时间的小数。
介于0:
00:
00(12:
00:
00A.M.)与23:
59:
59(,1:
59:
59P.M.)之间的时间可返回0到0.99999999之间的对应数值。
Hour:
介于0到23之间的数。
Minute:
介于0到59之间的数。
Second:
介于0到59之间的数。
示例:
TIME(14,40,0)等于2:
40PM,TIME(19,43,24)等于7:
43PM。
9.RANGE
RANGE(from,to,step)函数表示从整数from开始,以step为每一步的示例:
直到整数to的一个数字序列。
备注:
RANGE函数有三种参数形式RANGE(to),缺省默认from为1,step为1RANGE(from,to),默认的step为1RANGE(from,to,step),个参数的情况参照上面的注释
示例:
RANGE(4)返回[1,2,3,4].RANGE(-5)返回[].RANGE(-1,3)返回[-1,0,1,2,3].RANGE(0,5)返回[0,1,2,3,4,5].RANGE(6,-1,-2)返回[6,4,2,0].RANGE(4,1,1)返回[].
10.ARRAY
ARRAY(arg1,arg2...):
返回一个由arg1,arg2,...组成的数组。
ar1,ar2,...字符串或者数字。
示例:
ARRAY("hello")=["hello"].ARRAY("hello","world")=["hello","world"].ARRAY("hello",98)=["hello",98].ARRAY(67,98)=[67,98].
报表函数
本章节,凡是以tableName或viewName作为参数因子的。
函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
1.CLASS
CLASS(object):
返回object对象的所属的类。
2.CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:
需要转换的数值型的数。
unit:
单位,"s","b","q","w","sw","bw","qw","y","sy","by","qy","wy"分别代表“拾”,“佰”,“仟”,“万”,“拾万”,“佰万”,“仟万”,“亿”,“拾亿”,“佰亿”,“仟亿”,“万亿”。
备注:
单位可以为空,如果为空,则直接将number转换为人民币大写,否则先将number与单位的进制相乘,然后再将相乘的结果转换为人民币大写。
示例:
CNMONEY(1200)等于壹仟贰佰圆整。
CNMONEY(12.5,"w")等于壹拾贰万伍仟圆整。
CNMONEY(56.3478,"bw")等于伍仟陆佰叁拾肆万柒仟捌佰圆整。
CNMONEY(3.4567,"y")等于叁亿肆仟伍佰陆拾柒万圆整。
3.COL
COL()返回当前单元格的列号。
示例:
如果当前单元格是A5,在A5中写入"=col()"则返回1。
如果当前单元格是C6,在C6中写入"=col()"则返回3。
4.COLCOUNT
COLCOUNT(tableData):
返回tableData中列的个数。
tableData:
tableData的名字,字符串形式的。
备注:
先从私有数据源中查找,然后再从公有数据源中查找,返回的是第一个查找到的tableData中列数。
示例:
以我们提供的数据源FRDemo为例COLCOUNT("Check")等于6。
COLCOUNT("country")等于5。
5.COLNAME
COLNAME(tableData,colIndex)返回的是tableData中列序号colIndex的列名。
tableData:
表示TableData的名字,字符串形式。
colIndex:
表示列序号。
备注:
TableData先从私有数据源中查找,再从公有数据源中查找。
示例:
COLNAME("Check",3)等于AcceName。
COLNAME("country",4)等于Area。
6.EVAL
EVAL(exp):
返回表达式exp计算后的结果。
exp:
一个表达式形式字符串。
备注:
只要EVAL中的参数exp最终可以转化成一表达式形式的字符串,比如"sum(2,4)","2+7"等等,那么它就可以被计算。
示例:
EVAL("2+5")等于7。
EVAL("count(2,3)")等于2。
EVAL("sum"+"(2,3,5)")等于10。
EVAL(IF(true,"sum","count")+"(1,2,3,4)")等于10。
EVAL(IF(false,"sum","count")+"(1,2,3,4)")等于4。
7.FIELDS
FIELDS(connectionName,tableName):
返回tableName这个表中的所有字段名。
示例:
数据库BASE中有个名叫task的表的内容如下:
namestartenda20082009b20092012那么FIELDS("BASE","task")等于[name,start,end]。
8.FORMAT
FORMAT(object,format):
返回object的format格式。
object:
需要被格式化对象,可以是String,数字,Object(常用的有Date,Time)。
format:
格式化的样式。
备注:
此处的格式中大小写必须严格按照上面例子中的规则,月份:
大写MM,年份:
小写yyyy或yy,天份:
小写dd.此处作为参数因子的格式可以用''也可以用""引用。
示例:
Format(TODAY(),'yyyy-MM-dd')结果是2008-11-01
9.INMAP
INMAP(key,value,mapName):
判断数据字典mapName中是否包含键值为key,值为value的数据对。
返回值为布尔型。
有返回TRUE,没有返回FALSE。
key:
检测的key。
value:
检测的value。
mapName:
指定的数据字典名。
备注:
mapName必须为String型的。
示例:
INMAP(1,2,"customerdic")返回Boolean.TRUE(布尔型的)。
10.ISNULL
ISNULL(object):
判断对象中所有的值是否全部都是Primitive.NULL。
11.MAP
MAP(object,string,int,int):
四个参数分别是索引值,数据集的名字,索引值所在列序号,返回值所在列序号。
根据数据集的名字,找到对应的数据集,找到其中索引列的值为key所对应的返回值。
数据集的查找方式是依次从报表数据集找到服务器数据集。
索引列序号与返回值序列号的初始值为1。
示例:
MAP(1001,"employee",1,2)返回employee数据集,第1列中值为1001那条记录中第2列的值。
12.RECORDS
RECORDS(connection,table,field):
返回数据库表table中字段名field下的所有元素。
示例:
数据库BASE中有个名叫task的表的内容如下:
namestartenda20082009b20092012那么RECORDS("BASE","task","end")等于[2009,2012]。
RECORDS(connection,table,field,row)返回table中field字段下的第row行的记录,field可以为列名也可以为列号。
RECORDS("BASE","task","end",2)等于2012.。
RECORDS("BASE","task",2,2)等于2009。
13.REVERSE
REVERSE(value):
返回与value相反的逻辑值。
示例:
REVERSE(true)等于false。
14.ROW
ROW()返回当前单元格的行号,须使用于条件属性中。
示例:
如果当前单元格为A5,在A5中写入"=ROW()"则返回5。
如果当前单元格为B8,在B8中写入"=ROW()"则返回8。
具体示例:
见条件属性专题章节中,条件属性中的Row()函数的内容。
15.ROWCOUNT
ROWCOUNT(tableData)返回tableData的行数。
tableData:
TableData的名字,字符串形式的。
备注:
先从私有数据源中查找,然后再从公有数据源中查找,返回的是tableData的行数。
示例:
以我们提供的数据源FRDemo为例ROWCOUNT("Check")等于3。
ROWCOUNT("country")等于18。
16.TABLEDATAFIELDS
TABLEDATAFIELDS(tableData):
返回tableData中所有的字段名。
备注:
先从报表数据集中查找,然后再从服务器数据集中查找,返回的是tableData的列名组成的数组。
示例:
TABLEDATAFIELDS("国家")等于[名字,首都,大陆,面积,人口]
17.TABLEDATES
TABLEDATAS():
返回报表数据集和服务器数据集名字。
示例:
服务器数据集有:
ds1,ds2,ds3;报表数据集有dsr1,dsr2.TABLEDATAS()等于[dsr1,dsr2,ds1,ds2,ds3].而TABLEDATAS(0)返回服务器数据集名字;TABLEDATAS
(1)返回报表数据集名字;TABLEDATAS(0)等于[ds1,ds2,ds3];TABLEDATAS
(1)等于[dsr1,dsr2]。
18.TABLES
TABLEAS(connectionName):
返回名为connectionName的数据库中的所有表名。
示例:
假设在FRDemo这个数据库中,有3个表:
a,b,c;那么TABLES("FRDemo")等于[a,b,c].
19.VALUE
VALUE(tableData,row,col)返回tableData中行号为row,列号为col的值。
tableData:
tableData的名字,字符串形式的。
row:
行号。
col:
列号。
备注:
先从私有数据源中查找,然后再从公有数据源中查找,返回的是tableData的符合条件的值。
示例:
VALUE("country",5,3)等于SouthAmerica。
VALUE("Simple",8,3)等于jonnason。
数组函数
1.ADD2ARRAY
ADDARRAY(array,insertArray,start):
在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4,1,5,7],[23,43,22],3)返回[3,4,23,43,22,1,5,7].ADDARRAY([3,4,1,5,7],"测试",3)返回[3,4,"测试",1,5,7].注意:
如果start为小于1的数或者不写start参数,则默认从数组的第一位开始插入数组元素ARRAYARRAY(arg1,arg2...):
返回一个由arg1,arg2,...组成的数组.arg1,arg2,...:
字符串或者数字.示例:
ARRAY("hello")=["hello"].ARRAY("hello","world")=["hello","world"].ARRAY("hello",98)=["hello",98].ARRAY(67,98)=[67,98].
2.GETARRAYELEMENT
GETARRAYELEMENT(array,index):
函数返回数组array的第index个元素。
示例:
String[]array={"a","b","c","d"}GETARRAYELEMENT(array,3)等于c.GETARRAYELEMENT(array,1)等于a.
3.GREPARRAY
GREPARRAY(array,fn):
函数(返回true或者false)是条件,过滤此数组,最后形成一个新数组。
示例:
GREPARRAY([3,4,2,3,6,8,7],"item!
=3")等于[4,2,6,8,7]注意:
该函数的第二个参数是一个字符串。
4.INARRAY
INARRAY(co,array):
返回co在数组array中的位置,如果co不在array中,则返回0.示例:
String[]arr={"a","b","c","d"}那么INARRAY("b",arr)等于2。
5.INDEX
INDEX(key,val1,val2,...):
返回key在val1,val2,...所组成的序列中的位置,不存在于序列中则返回参数的个数.备注:
key和valn可以是任意类型示例:
INDEX(2,2)等于1。
INDEX(2,1,2)等于2。
INDEX(2,4,5,6)等于4。
INDEX("b","b","o","y")等于1。
6.INDEXOFARRAY
INDEXOFARRAY(array,index):
返回数组array的第index个元素。
示例:
INDEXOFARRAY(["第一个","第二个","第三个"],2)返回"第二个"。
7.MAPARRAY
MAPARRAY(array,fn):
把一个数组中的项目转换到另一个数组中。
array(Array):
要转换的数组fn(Function):
处理数组项目的函数示例:
MAPARRAY([3,4,2,3,6,8,7],"item!
=3")等于[false,true,true,false,true,true,true].
8.RANGE
RANGE(from,to,step)函数表示从整数from开始,以step为每一步的示例:
直到整数to的一个数字序列。
备注:
RANGE函数有三种参数形式RANGE(to),缺省默认from为1,step为1RANGE(from,to),默认的step为1RANGE(from,to,step),个参数的情况参照上面的注释示例:
RANGE(4)返回[1,2,3,4].RANGE(-5)返回[].RANGE(-1,3)返回[-1,0,1,2,3].RANGE(0,5)返回[0,1,2,3,4,5].RANGE(6,-1,-2)返回[6,4,2,0].RANGE(4,1,1)返回[].
9.REMOVEARRAY
REMOVEARRAY(array,start,deleteCount):
从数组array中删除从第start个元素开始的deleteCount个数组元素,并返回删除后的数组。
示例:
REMOVEARRAY([3,4,4,2,6,7,87],4,2)返回[3,4,4,7,87]。
10.REVERSEARRAY
REVERSEARRAY(array):
返回数组array的倒序数组。
示例:
REVERSEARRAY(["第一个","第二个","第三个"])返回["第三个","第二个","第一个"]。
11.SLICEARRAY
SLICEARRAY(array,start,end):
返回数组从第start个到第end个元素(包括第end个元素)。
示例:
SLICEARRAY([3,4,4,5,1,5,7],3,6)返回[4,5,1,5]。
当不使用end参数时,返回从start开始到数组结束之间的元素。
SLICEARRAY([3,4,4,5,1,5,7],3)返回[4,5,1,5,7]。
12.SORTARRAY
SORTARRAY(array):
返回数组array排过序的数组。
示例:
SORTARRAY([3,4,4,5,1,5,7])返回[1,3,4,4,5,5,7].注意:
数组array的元素类型必须一样,并且要可比较。
13.UNIQUEARRAY
UNIQUEARRAY(array):
去掉数组array中的重复元素。
示例:
UNIQUEARRAY([14,2,3,4,3,2,5,6,2,7,9,12,3])返回[14,2,3,4,5,6,7,9,12]。
数学和三角函数
1.ABS
ABS(number):
返回指定数字的绝对值。
绝对值是指没有正负符号的数值。
Number:
需要求出绝对值的任意实数。
示例:
ABS(-1.5)等于1.5。
ABS(0)等于0。
ABS(2.5)等于2.5。
2.ACOS
ACOS(number):
返回指定数值的反余弦值。
反余弦值为一个角度,返回角度以弧度形式表示。
Number:
需要返回角度的余弦值。
备注:
函数的参数必须在-1和1之间,包括-1和1。
返回的角度值在0和Pi之间。
如果要把返回的角度用度数来表示,用180/PI()乘返回值即可。
示例:
ACOS
(1)等于0(弧度)。
ACOS(0.5)等于1.047197551(Pi/3弧度)。
ACOSACOSH(0.5)*180/PI()等于60(度)。
ACOSHACOSH(number):
返回给定数值的反双曲余弦。
Number:
返回值的双曲余弦。
备注:
参数number的值必须大于或等于1。
ACOSH(COSH(number))=number。
示例:
ACOSH
(1)等于0。
ACOSH(8)等于2.768659383。
ACOSH(5.5)等于2.389526435。
3.ASIN
ASIN(number):
返回指定数值的反正弦值。
反正弦值为一个角度,返回角度以弧度形式表示。
Number:
需要返回角度的正弦值。
备注:
指定数值必须在-1到1之间(含1与-1)。
返回角度在-pi/2到pi/2之间(含-pi/2与pi/2)。
用角度形式返回数值时,可以用返回数值乘以180/PI()。
示例:
ASIN(0.5)等于0.523598776(pi/6弧度)。
ASIN
(1)等于1.570796327(pi/2弧度)。
ASIN(0.5)*180/PI()等于30(度)。
4.ASINH
ASINH(number):
返回指定数值的反双
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报表 软件 FineReport 各类 函数 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)