所谓自定义单元格,就是自己写一个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类如何在皕杰报表设计器端和服务器端使用呢?

设计器端:

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

一份报表如何智能分列 皕杰报表自定义扩展(1)

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

一份报表如何智能分列 皕杰报表自定义扩展(2)

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

一份报表如何智能分列 皕杰报表自定义扩展(3)

服务器端:

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

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

其实记住一种就行了,一般都是打成jar包,所以记得第一种即可。

三、皕杰报表设计器里具体到单元格怎么设计呢?

选中一个需要自定义的单元格右键点击→【设置类型】→【自定义类型】

一份报表如何智能分列 皕杰报表自定义扩展(4)

然后在单元格值里输入:“=customcell(你设置的自定义单元格的实现类的全路径)”;例如:“=customcell(bios.demo.CusTomcell)”。

,