类别:FineReport文档
日期:2020-12-20 浏览:2486 评论:0
1. CLASS
CLASS(object):返回 object 对象的所属的类。
2. CORREL
CORREL(array1,array2):求两个相同长度数据系列的相关系数(与Excel的同名函数作用相同)。
如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。
函数计算结果出现负数表示负相关。
相关系数的取值范围是[-1,1]之间的数。相关系数的绝对值越大,表示误差越小。
Array1 和 Array2 的数据点的个数必须相同。
示例 | 结果 |
---|---|
CORREL([1,2,3],[2,4,6]) | 1 |
3. DECODE
decode(string):使用指定的编码机制(UTF-8)对 application/x-www-form-urlencoded 字符串解码。
给定的编码用于确定任何 “%xy”格式的连续序列表示的字符。
示例 | 结果 |
---|---|
decode("%E5%B8%86%E8%BD%AF") | 帆软 |
4. ENCODE
encode(string):使用指定的编码机制(UTF-8)将字符串转换为application/x-www-form-urlencoded格式。
该方法使用提供的编码机制获取不安全字符的字节。
示例 | 结果 |
---|---|
encode("帆软") | “%E5%B8%86%E8%BD%AF” |
5. 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 |
6. 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 |
7. ISNULL
ISNULL(object):判断对象中所有的值是否全部都是 NULL 或者为空字符串。
8. LET
LET(变量名,变量值,变量名,变量值,..., 表达式):局部变量赋值函数。
参数的个数 N 必须为奇数,最后一个是表达式,前面是 N-1(偶数)为局部变量赋值对。
变量名:必须是合法的变量名,以字母开头,可以包括字母,数字和下划线。
表达式:根据前面的 N-1 个参数赋值后计算出来的结果,这些变量赋值只在这个表达式内部有效。
示例 | 结果 |
---|---|
LET(a, 5,b, 6, a+b) | 11 |
9. MEDIAN
MEDIAN(array1):返回数据系列的中值(与 Excel 的同名函数作用相同)。
1)当数据元素数量是奇数时,取最中间的元素。
示例 | 结果 |
---|---|
MEDIAN([1,2,3]) | 2 |
2)当数据元素数量是偶数时,取最中间两个元素的算术平均值。
示例 | 结果 |
---|---|
MEDIAN(1,2,3,-1) | 1.5 |
注:在报表服务器版本为 8.0 及以上时,先将数据元素进行排序,再取中位数,结果为 1.5,这样的结果正确;而在报表服务器为 8.0 之前,报表不进行排序,直接去掉左右两边的值,结果为 2.5,这样的结果不正确。
10. NVL
NVL(value1,value2):返回第一个不为 null 的 value 值。如果 value1 不为 null,则返回 value1 的值,否则返回 value2 的值,如果 value1 和 value2 都是 null,则返回 null。
value1:可以为任意数,也可以为 null。
value2:可以为任意数,也可以为 null。
注: 此处的 NVL(value1,value2)为短路运算符。即当第一个不为空的情况下,直接返回第一个的值,对后面的将不再运算。也可以为 null。
示例 | 结果 |
---|---|
NVL(12,20) | 12 |
NVL(null,12) | 12 |
11. RANK
RANK(number,ref,order):返回一个数在一个数组中的秩。(如果把这个数组排序,该数的秩即为它在数组中的序号。)
Number: 所求秩的数,可以是 Boolean 型,true=1,false=0。
Ref:可以是数组,引用,或一系列数,非实数的值被忽略处理。接受Boolean型,true=1,false=0。
Order:指定求秩的参数,非零为升序,零为降序。
注: RANK 对重复的数返回相同的秩,但重复的数影响后面的数的秩,比如,在一组升序排列的整数中,如果 5 出现了 2 次,并且秩为 3,那么 6 的秩为 5 (没有数的秩是 4)。
如果,A1:A5 = 6, 4.5, 4.5, 2, 4
则:
示例 | 结果 |
---|---|
RANK(A1,A1:A5,1) | 5 升序排列时,A1 中的 6 的秩为 5 |
RANK(3,1,2,"go",3,4,1) | 3 "go"被忽略 |
12. SEQ
SEQ():返回数值,在整个报表执行过程中,返回该函数被第几次执行了。
示例 | 结果 |
---|---|
SEQ() | 第一次执行时,结果为 1 |
第二次执行时,结果为 2 |
13. STDEV
STDEV(array1):计算数据系列的标准偏差(与 Excel 的同名函数作用相同)。
示例 | 结果 |
---|---|
STDEV([1,2,3]) | 1 |
14. TOIMAGE
TOIMAGE(path):显示指定路径下的图片。
此处默认开启了图片缓存功能以加速报表的生成。如不需要缓存,请在参数后面追加值 FALSE。
示例:
TOIMAGE("D:/fr.png",false)
15. WEBIMAGE
WEBIMAGE(path):显示网页上的图片。可以提升 Web 图片加载速度。
示例:
WEBIMAGE('http://www.fanruan.com/images/index2.jpg')
16. UUID
UUID():返回随机的 UUID。
目前只支持两种位数的随机数,如下:
UUID():返回 36 位随机机器数。
UUID(32):返回 32 位随机机器数。
17. QUERY
FineReport10.0(2019-03-01)版本之后,提供了一个用于解析 JSON 文本的函数,有以下两个作用:
1)用于提取内置参数 $fine_position 中的值;
示例:
=<mark>query</mark>($fine_position, "function(){return $ instanceof Array ? $.map(el => el.jobTitle) : $.jobTitle}")
2)用于提取 JSON 格式的文本中的特定值,用于到报表中展示,避免使用报表中的文本函数进行各种切割。
该函数的第一个参数为待处理的字符串,可以是一个 JSON 格式的字符串,也可以是一个普通字符串。
该函数的第二个参数是查询语句,是一个标准的 JavaScript 语句,其中用 $ 表示第一个参数的值,可以参与运算。
函数调用 | 结果 |
---|---|
QUERY("{\"job\":\"司机\",\"age\":45}", "$.age") | 45 |
QUERY("{\"job\":\"司机\",\"age\":45}", "function() {return $.age > 50 ? 100 : 0}") | 0 |
QUERY("[\"a\",\"b\"]", "$") | ["a","b"] |
QUERY("[\"a\",\"b\"]", "$[1]") | "b" |
QUERY("{\"value\":20.5,\"status\":true}", "$.status") | true |
QUERY("{\"value\":20.5,\"status\":true}", "$.value") | 20.5 |
QUERY("hello", "$") | "hello" |
QUERY("hello", "$.slice(0, 3)") | "hel" |
QUERY("hello", "$ + \" world\"") | "hello world" |
发表评论 / 取消回复