二次开发、自定义函数、JFreeChart图表
1. 问题描述
JFreeChart是JAVA平台上很好的一个开放图表绘制类库,不但可以生成多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。所以希望在我们报表工具可以直接引入第三方JFreeChart的图表,使用报表单元格数据,如下图效果:
2. 解决方案
FineReport通过自定义函数,创建图表数据源,将生成的JFreeChart图表先转换成图片,然后在报表里面展示。
3. 示例
3.1 创建一个表格数据源(dataset)
3.2 由ChartFactory 产生 JFreeChart 对象
3.3 把jFreeChart图表输出成图片
3.4 完整代码如下
注:在eclipse中导入第三方包jcommon-1.0.16.jar和jfreechart-1.0.13.jar,如果没有可以直接在网站下载或咨询我们技术支持。导入第三方包可参考文档引用第三方jar包。 3.5 编译并运行
编译JFreeToChart.java类生成JFreeToChart.class文件拷贝至报表应用所在目录/WEB-INF/classes/com/fr/function下。
启动设计器,点击服务器|函数管理器,新增函数取名为JFreeToChart,选择JFreeToChart.class类,如下图:
此时自定义函数便定义好了,您可以在设计器中使用该函数。
如上图JFreeToChart图表数据由单元格扩展而来,在单元格中输入公式=JFreeToChart(A2,B2),便可以显示JFreeChart图表了。
注:通过设计器预览该模板之前,需要将jcommon-1.0.16.jar和jfreechart-1.0.13.jar这两个jar包放在%FineReport-Home%\WebReport\WEB-INF\lib下面,重启设计器之后,再预览。
返回顶部