所谓自定义单元格,就是自己写一个java类在一个单元格里实现皕杰报表工具不能实现的功能,可以使得报表的页面更加多元化。
这个java类就是自定义单元格实现类,该类需继承皕杰报表自定义单元格接口bios.report.api.customize.CustomCell。
一、皕杰报表自定义单元格都能实现什么功能呢?有三类。
第一类:calculate
语法:java.lang.Object calculate(java.lang.Object[] params)
用途:根据传入的参数进行自定义单元格运算
参数:params - 子报表函数调用时传入的参数,Object数组类型,与报表设计时表达式中的参数一一对应。
返回值:返回一个数据结果,供报表中其他单元格引用,结果必须为字符串、数字、日期时间、或者基于这些类型的数组等java基本类型。
第二类:renderHtml
语法:java.lang.String renderHtml(int width, int height)
用途:在web页面上展现时,单元格中要呈现的html内容
参数:width - 单元格宽度,单位: 像素
height - 单元格高度,单位: 像素
返回:单元格的html代码
第三类:getImage
语法:byte[] getImage(int width, int height)
用途:获取该单元格的图片显示结果(字节数组格式),用于各种格式的导出以及打印
参数:width - 单元格宽度,单位: 像素
height - 单元格高度,单位: 像素
返回:图片的二进制文件流
二、写好的java类如何在皕杰报表设计器端和服务器端使用呢?
设计器端:
选择【工具栏】->【窗口】->【首选项】->【通用配置】->【类加载配置】,在【自定义接口实现类配置】中添加自定义类,添加方式有两种,
一是将编译好的.class文件打成jar包, 点击【添加JAR】,将jar包导入;
二是点击【添加文件夹】,将包含.class文件的文件夹添加进来。
服务器端:
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。
其实记住一种就行了,一般都是打成jar包,所以记得第一种即可。
三、皕杰报表设计器里具体到单元格怎么设计呢?
选中一个需要自定义的单元格右键点击→【设置类型】→【自定义类型】
然后在单元格值里输入:“=customcell(你设置的自定义单元格的实现类的全路径)”;例如:“=customcell(bios.demo.CusTomcell)”。