皕杰报表工具中提供了170多个函数和操作符,基本能满足设计大部分报表的需求,遇到特殊情况,设计器里的函数不能满足需求时,就需要自定义一些函数来来满足你的需求。
1、皕杰报表自定义函数的类型:
自定义函数有两种类型,一种是写一个java类来实现某种功能,另外一种就是利用原有的函数写一个新的表达式作为新的函数。
2、如何将自定义函数添加到皕杰报表设计器
选择【工具栏】->【窗口】->【首选项】->【通用配置】->【类加载配置】,在【自定义接口实现类配置】中添加自定义函数实现类,添加方式有两种,添加JAR和添加文件夹。
一是将编译好的.class文件打成jar包, 点击【添加JAR】,将jar包导入;
二是点击【添加文件夹】,将包含.class文件的文件夹添加进来。
3、在皕杰报表工具设计器上如何使用自定义函数
在设计器上,点击工具-自定义函数,窗口如下:
如果选java程序就在【实现类全路径】中写自定义函数的类的全路径,如果选表达式就在【函数表达式】中写计算公式。设置完毕后,可以点击custom_fun里修改函数的定义名称。
到此就可以像其它函数一样使用自定义函数了。
4、如何让自定义函数在皕杰报表服务器web端生效
一是将编译好的 .class文件打成jar包放到WEB-INF/lib目录下或将 .class文件放到WEB-INF/classes。二是将设计器端在BiosReportconfiguration文件夹下生成的 custom_functions.properties文件复制到WEB-INFresources目录下。
5、自定义函数的接口
自定义函数实现类需继承皕杰自定义函数接口bios.report.api.customize.CustomFunction。
6、皕杰报表自定义函数返回方法有三种
一、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公式的字符串。