【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

随着决策报表在实际项目中的运用越来越多,但是决策报表一直都不支持导出。一部分用户对于导出需要把决策报表的内容重新用cpt报表制作一遍觉得太浪费时间了,对于决策报表支持导出的呼声也越来越多。标准的产品只支持决策报表的报表块内容导出。为了提供更丰富的扩展,官方开放了FormExportProcessor接口用于处理决策报表的导出需要。不过目前这个接口尚不完全成熟,存在的限制颇多,也不够稳定,现阶段更多的是用于简单决策报表的导出处理场景。

三、接口介绍

FormExportProcessor.java
package com.fr.form.stable;

import com.fr.stable.fun.mark.Immutable;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 表单导出接口, 通过传不同的format来导出Excel, pdf等等
 *
 * Created by Administrator on 2015/12/18 0018.
 */
public interface FormExportProcessor extends Immutable {

    String MARK_STRING = "FormExportProcessor";

    int CURRENT_LEVEL = 3;

    /**
     * 进行导出
     *
     * @param req       http请求
     * @param res       http应答
     * @param sessionID 会话ID
     * @throws Exception
     */
    void dealWithExport(HttpServletRequest req, HttpServletResponse res, String sessionID);

}

四、支持版本

产品线

版本

支持情况

备注

FR8.0支持
FR9.0支持
FR10.0支持
BI3.6支持不支持BI的仪表板
BI4.0支持不支持BI的仪表板
BI5.1支持不支持BI的仪表板
BI5.1.2支持不支持BI的仪表板
BI5.1.3支持不支持BI的仪表板

五、插件注册

plugin.xml
<extra-form>
        <FormExportProcessor class="your class name"/>
</extra-form>

六、原理说明

决策报表预览时,后台通过Formlet#dealWeblet调用了FormletDealWith#dealWithFormlet方法进行计算响应。在这个dealWithFormlet中,如果请求中包含了format参数,则会单独走导出处理,获取到插件中定义的决策报表导出类申明并执行响应。

七、特殊限制说明

该接口是Immutable的,也就是是独占的,如果多个插件都有使用到,那么只会生效其中的一个。如果没有插件使用这个接口,标准产品的决策报表默认是不支持任何导出的。

在实现导出功能时,开发者可以通过sessionID这个入参获取到决策报表的结果对象,并读取布局和组件信息生成自己想要的导出效果。【点击看例子

接口仅对决策报表有效。

注:该接口适用面小,开发成熟导出的功能难度较大,产品耦合高,稳定性一般。一般不建议开发者使用!导出场景尽可能都在cpt报表上去实现。否则随着开发的细节深入,开发者会发现很多很难处理的点(适应,兼容,布局,窗口切割等等的)。


八、常用链接

demo地址:demo-form-export-processor

com.fr.report.fun.ExportOperateProvider

com.fr.report.fun.ExportExtensionProcessor

com.fr.report.fun.ExcelExportAppProvider

com.fr.stable.fun.ExcelExportCellValueProvider

com.fr.report.fun.CommentExcelProcessor

九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

暂无

  • No labels