当设计器里的函数不能满足你的需求时,此时就需要自定义一些函数来满足你的需求
两个目录下的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目录下。
自定义函数实现类需继承皕杰自定义函数接口bios.report.api.customize.CustomFunction。皕杰报表自定义函数返回为方法。
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公式的字符串