帆软高级函数应用之其他函数

其他函数 rank,seq,filetype,index,uuid,filesize,eval,filename,treelayer,let,nvl

1、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)即6的秩为5;

RANK(3,1.2,"go",3,4,1) = 3,"go"被忽略。

2.seq

SEQ():返回数值,在整个报表执行过程中,返回该函数被第几次执行了。

示例:

SEQ()在第一次执行时,结果为1;

SEQ()在第二次执行时,结果为2;

注:seq()进行计算行序号的时候,其有上限值,即最大的序号值不大于2047。

3.filetype

FILETYPE(file):获取文件的类型。当file为单文件时,返回文件类型字符串,当file为多文件时,但会文件类型的字符串数组。如果file不为文件类型,则返回错误信息。

示例:

假设文件控件在B2单元格,而B2单元格依次上传了三个不同类型文件{A.doc,C.xls,B.txt},则FILETYPE(B2)返回值为["doc","xls","txt"]。

4.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。

5.uuid

UUID():返回随机的UUID。

示例:

UUID()返回36位随机机器数;

UUID(32)返回32位随机机器数;

一个整数和中文占两位

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.FILESIZE

FILESIZE(file)获取文件的大小,单位为Kb。当file为单文件时,返回文件大小,当file为多文件时,返回文件大小的数组。如果file不为文件类型,则返回错误信息。

示例:

假设文件控件在B2单元格,而B2单元格依次上传了两个大小分别为100字节和10240字节的文件,则FILESIZE(B2)返回值为[0.098,10.0]。

8.FILENAME

FILENAME(file):获取文件的文件名。当file为单文件时,返回文件名字符串;当file为多文件时,返回文件名的字符串数组;如果file不为文件类型,则返回错误信息。

示例:

假设文件控件在B2单元格,而B2单元格依次上传了三个不同类型文件{A.doc,C.xls,B.cpt},则FILENAME(B2)返回值为["A.doc","C.xls","B.cpt"]。

9.TREELAYER

TREELAYER(TreeObject,Int,Boolean,String):返回tree对象第n层的值,并且可以设置返回值类型及分隔符。

TreeObject:tree对象,如$tree;

Int:想要获得层级的数值,最上层为1,第二层为2,以此类推,若无则返回最底层;

Boolean:返回值类型为字符串还是数组,默认false,返回数组;为true时返回字符串;

String:当Boolean为true返回字符串时的分隔符,以双引号表示,默认为逗号",",如";"。

示例:

假设$tree勾选的值为中国-江苏-南京,中国-浙江-杭州,则TREELAYER($tree,true,"\',\'")返回"','''分割的所选中节点字符串"南京','杭州'";

TREELAYER($tree,2):以数组形式返回第二层["江苏",“浙江"]。

TREELAYER($tree,2,true,"\',\'")返回"','"分割的字符串江苏','浙江。

10.let

LET(变量名1,变量值1,变量名2,变量值2,..., 表达式):局部变量赋值函数,参数的个数N必须为奇数, 最后一个是表达式,前面是N-1(偶数)为局部变量赋值对。

变量名:必须是合法的变量名,以字母开头,可包括字母,数字和下划线。

表达式:根据其前面的N-1个参数赋值后,需计算的结果表达式,且这些变量赋值只在这个表达式内部有效。

如:LET(a, 5,b, 6, a+b)等于11

11.NVL

NVL(value1,value2,value3,...):在所有参数中返回第一个不是null的值value1:可以为任意数,也可以为null。
value2:可以为任意数,也可以为null。
当字符串长度为0时, 返回也为null
示例:
NVL(12,20)等于12。
NVL(null,12)等于12。
NVL(null,null)等于null。
NVL(20,null)等于20。
NVL(null,null,10)等于10。

http://help.finereport.com/doc-view-842.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值