程序网络报表

  • 文档创建者:印然
  • 编辑次数:14次
  • 最近更新:Carly 于 2020-12-23
  • 1. 概述

    FineReport 设计器基本可以零编码地设计出报表,然而需求是千变万化的,某些个性化的功能通过设计器无法实现时,可能就需要借助程序完成。

    本文介绍如何将读取的模板保存为程序网络报表,直接在 Web 端访问定义的程序网络报表。

    2. 原理

    程序网络报表所在类需要继承 com.fr.web.reportlet 这个抽象类,并且需要实现 createReport(ReportletRequest arg0) 这个方法,并返回报表对象。

    3. 示例

    3.1 普通报表

    下面我们做个简单的程序调用报表,实现读取 Parameter.cpt,然后在浏览器中直接访问该网络报表。

    1)定义程序网络报表,具体代码如下:

    注1:修改java后,例如修改了 java 里的模板名,重新生成 class 替换 FR 下同名文件,必须重启工程,才能生效,否则一直都是展示原来的模板。

    注2:假如预览报错空指针,更新 jar 包。

    https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/demo/SimpleReportletDemo.java

    2)编译生成类文件

    利用 Java 工具,将 Java 代码编译成 class 文件,此处不做详细介绍。上述代码编译后生成 SimpleReportletDemo.class。

    3)发布并 Web 预览

    将编译后的 SimpleReportletDemo.class 放到报表工程的网络报表根目录下。

    由于该类在包 com.fr.demo 中,因此存放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\demo下。

    4)启动服务器,如内置服务器,在浏览器中输入下地址:http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.SimpleReportletDemo,便可以预览报表,如下图所示:

    1552372783fryT0VRH.png

    3.2 决策报表

    下面我们做个简单的程序调用报表,实现读取 决策报表入门.frm,然后在浏览器中直接访问该网络报表。

    1)定义程序网络报表,具体代码如下:

    注1:修改 java 后,例如修改了 java 里的模板名,重新生成 class 替换 FR 下同名文件,必须重启工程,才能生效,否则一直都是展示原来的模板。

    注2:假如预览报错空指针,更新 jar 包。

    https://code.fanruan.com/demo/example/src/branch/release/10.0/src/main/java/com/fr/demo/SimpleReportletDemoFrm.java

    2)编译生成类文件

    利用 Java 工具,将上述代码编译后生成 SimpleReportletDemoFrm.class。

    3)发布并 Web 预览

    将编译后的 SimpleReportletDemoFrm.class 放到 %FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\demo下。

    4)启动服务器,如内置服务器,在浏览器中输入下地址:http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.SimpleReportletDemoFrm

    预览报表,如下图所示:

    image.png

    附件列表


    主题: 二次开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!