自定义函数

1 用途

当设计器里的函数不能满足你的需求时,此时就需要自定义一些函数来满足你的需求

注意

两个目录下的custom_functions.properties文件内容需要保持一致,可以先修个设计器或服务器里的一个,然后复制到另一个目录下就可以了。

自定义函数实现类的使用:

设计器端:

1、选择【工具栏】->【窗口】->【首选项】->【通用配置】->【类加载配置】,在【自定义接口实现类配置】中添加自定义函数实现类,添加方式有两种,

一是将编译好的.class文件打成jar包, 点击【添加JAR】,将jar包导入;

二是点击【添加文件夹】,将包含.class文件的文件夹添加进来。

2、添加好后,在设计器上,点击工具-自定义函数

点击新增按钮。

自定义函数类型可以有两个类型:1、Java程序,2、表达式。你可以在实现类全路径中写自定义函数的类的全路径,也可以在表达式中写计算公式。设置完毕后,你可以点击custom_fun里修改函数的定义名称。

在web项目上:

1、在web应用中,自定义函数的创建

一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;

二是将. class文件放到WEB-INF/classes。

2、将设计器端生成的 BiosReport\configuration文件夹下的custom_functions.properties复制到WEB-INF\resources目录下。

2 接口介绍

自定义函数实现类需继承皕杰自定义函数接口bios.report.api.customize.CustomFunction。皕杰报表自定义函数返回为方法。

3 方法说明

getCellSize

语法:protected final int[] getCellSize()

用途:获取当前单元格的尺寸(单位:像素),一般用于创建图片时。

返回:int数组,第一个值为宽度,第二个值为高度

calc

语法:public abstract java.lang.Object calc(java.lang.Object[] paramValues)

用途:用户实现该方法,即可完成自定义函数的计算功能。

参数:paramValues - 参数的计算值列表,Object数组,与报表设计时表达式中该函数的参数一一对应

返回:该自定义函数的返回值。如果计算结果为图片,则返回byte数组类型的二进制数据

getExp

语法:public String getExp(int expType, java.lang.Object[] paramExps)

用途:用户实现该方法,即可实现Java表达式到js函数(web页面自动计算时使用)或Excel公式(导出的excel文件中的公式)的转换。

参数:expType - 表达式类型,只有两个可选值,0代表转换为JavaScript表达式,1代表转换为Excel公式

参数:paramExps - 参数的表达式列表,String数组,与报表设计时表达式中该函数的参数一一对应

返回:对应的JavaScript函数或Excel公式的字符串