反馈已提交

网络繁忙

引入JFreeChart图表

  • 文档创建者:lu123
  • 历史版本:19
  • 最近更新:Alicehyy 于 2021-12-28
  • 1. 描述

    JFreeChart 是 Java 平台上很好的一个开放图表绘制类库,不但可以生成多种图表,并且可以产生 PNG 和 JPEG 格式的输出,还可以与 PDF 和 Excel关联。所以希望在我们报表工具可以直接引入第三方 JFreeChart 的图表,使用报表单元格数据,如下图效果:

    222

    2. 解决方案

    FineReport 通过自定义函数,创建图表数据源,将生成的 JFreeChart 图表先转换成图片,然后在报表里面展示。

    3. 示例

    3.1 创建一个表格数据源(dataset) 

    private CategoryDataset[] createDatasets(){里面通过单元格扩展出来的数据定义图表的数据源}

    3.2 由 ChartFactory 产生 JFreeChart 对象

    private JFreeChart createChart(CategoryDataset acategorydataset[]){设置图表的一些属性}

    3.3 把 JFreeChart 图表输出成图片

    private BufferedImage createImage(int width, int height) {
    CategoryDataset acategorydataset[] = createDatasets();
    JFreeChart jfreechart = createChart(acategorydataset);
    return jfreechart.createBufferedImage(width, height);
    }

    3.4 完整代码

    完整代码详见:https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/function/JFreeToChart.java

    注:在Eclipse中导入第三方包 jcommon-1.0.16.jar  jfreechart-1.0.13.jar 。导入第三方包可参考文档 引用第三方jar包 

    3.5 编译并运行

    1)编译自定义函数

    编译 JFreeToChart.java 类生成 JFreeToChart.class 文件拷贝至报表应用所在目录%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\function下。

    2)注册自定义函数

    启动设计器,点击服务器>函数管理器,新增函数取名为 JFreeToChart,选择 JFreeToChart.class 类,如下图:

    222

    此时自定义函数便定义好了,您可以在设计器中使用该函数。

    3)使用自定义函数

    222

    注:图表中使用的数据可以使用 内置数据集 ,具体数据为模板预览中左侧的数据。

    如上图 JFreeToChart 图表数据由单元格扩展而来,在单元格中输入公式=JFreeToChart(A2,B2),便可以显示 JFreeChart 图表了。

    注:通过设计器预览该模板之前,需要将 jcommon-1.0.16.jar 和 jfreechart-1.0.13.jar 这两个 JAR 包放在 %FR_HOME%\webapps\webroot\WEB-INF\lib下面,重启设计器之后,再预览。

    3.6 模板预览

    分页预览,即可看到如下效果:

    222


    附件列表


    主题: 图表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持