程序网络报表

  • 文档创建者:印然
  • 编辑次数:12次
  • 最近更新:Leo.Tsai 于 2019-09-20
  • 1. 描述

    FineReport 设计器基本可以零编码地设计出绝大多数报表,然而需求是千变万化的,也许某些个性化的功能通过设计器无法实现,此时就如上一节中介绍的,可以将模板读入程序中,进行修改后再导出,再在浏览器中访问报表。显然这样做比较繁琐,对于这种情况,您可以直接将读取的模板保存为程序网络报表,直接在 Web 端访问定义的程序网络报表。

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

    2. 实现步骤

    2.1 程序网络报表-cpt

    1)定义程序网络报表

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

    具体代码如下:

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

    2)编译生成类文件

     Java 开发平台中会自动编译,此处不详细介绍。

    3)发布并 Web 预览

    将编译后的 SimpleReportletDemo.class 放到网络报表根目录下,由于该类在包 com.fr.demo 中,因此存放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\demo下,保存后启动服务器,如内置服务器,在浏览器中输入下地址:http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.SimpleReportletDemo,便可以看到效果,如下图所示:

    1552372783fryT0VRH.png

    2.2 程序网络报表-frm

    1)代码如下:

    //程序网络报表
    package com.fr.demo;  
    import java.util.Map;
    import javax.servlet.http.HttpServletRequest;
    import com.fr.base.Env;
    import com.fr.base.FRContext;
    import com.fr.web.weblet.Formlet;
    import com.fr.form.main.Form;
    import com.fr.form.main.FormIO;
    public class SimpleFormletDemo extends Formlet {
        @Override
        public void setParameterMap(Map arg0) {
            // TODO 自动生成的方法存根    
        }
        @Override
        protected Form createForm(HttpServletRequest arg0) throws Exception {
               Form form = null;
                try {
                    // 读取模板,将模板保存为workbook对象并返回
                    form = FormIO.readForm(FRContext.getCurrentEnv(), "test.frm");
                } catch (Exception e) {
                    e.getStackTrace();
                }
                return form;
        }
    }

    注1:public class SimpleFormletDemo extends Formlet 重点就是这句,把原本的 reportlet 改成 formlet 后,会自动出现红色波浪,点击后会自动补足 setparametermap 和 createform 方法。

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

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

    2)发布后 Web 预览效果如下图所示:

    image2018-8-15 16_34_5.png





    附件列表


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