部署与调用
实现的自定义函数类必须进一步在产品中进行部署、登记注册,然后才能使用。
具体如下:
部署自定义函数类
首先,将自定义函数类编译后的class文件存放至应用【WEB-INF/classes】的相应目录下,注意目录路径必须包含包名。
例如本示例中定义的自定义函数类为com.api.Uuid,位于【com.api】包内,所以编译后的Uuid.class必须存放至【WEB-INF/classes/com/api/】目录下,如下图:
登记自定义函数
接着,在产品的自定义函数配置文件customFunctions.properties中,对函数进行登记。
配置文件路径:\WEB-INF\classes\config\customFunctions.properties
如下图:
函数登记规则
函数登记的作用是设置调用自定义函数时所使用的函数名、函数类型以及对应的函数实现类。
登记规则如下:
函数名=函数类型,函数实现类
注意:
-
函数类型为0或1,0表示普通函数,1表示数据集函数
-
函数实现类必须为类的完整路径名
例如本示例中,将函数登记为:
getUuid=0,com.api.Uuid
重启应用
最后,还需要将应用重启,把部署登记好的自定义函数最终注册到系统中,供用户进行使用。
报表中如何调用自定义函数
自定义函数可以在报表单元格、单元格属性等支持表达式设置的地方进行使用。
调用方式是在表达式中书写函数登记时设置的函数名即可。如果自定义函数需要传入参数,则直接在括号内写入参数即可,并且参数可以是产品支持的表达式。
functionName(arg1, arg2, ...)
例如下图所示,是在报表的A1单元格中书写表达式:=getUuid(),来调用本示例中实现的自定义函数。由于该函数不需要使用参数,所以括号内无需写参数。
示例效果展示
下图显示了在报表中使用自定义函数Uuid获得的字符串: