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

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

一、特殊名词介绍

二、背景、场景介绍

在导出需求的个性化处理中,并非所有的个性化都是要重新导出一种新的文件格式,或者对所有的现有导出逻辑都全部重来一次。部分用户需要的仅仅是对部分导出逻辑进行调整即可满足需求,帆软对这类场景提供了一系列的接口针对性的对导出的细分和细节进行处理。而CommentExcelProcessor接口就是其中之一,允许开发者在导出excel的时候,对导出的每个sheet进行单独的处理。帆软报表产品中允许用户自行对导出文件类型进行扩展,一般会配合ToolbarItemProvider接口在设计器上添加工具栏选项。而ExtensionButtonProvider接口则对应的用于报表自带的导出菜单按钮的选项扩展。

CommentExcelProcessor接口在设计时的主要用途是对excel的批注进行导入导出处理,导出批注内容或利用批注辅助导入。在实际运用的过程中,因为接口带入了整个sheet报表和,excel的sheet页,使得接口的实际用途变得更广泛一些,可以用于对导出的excel每个sheet做单独调整,比如折叠树支持导出、导出控件数据字典,设置单元格只读等等场景。Image Added

三、接口介绍

Code Block
languagejava
themeEclipse
firstline1
titleExtensionButtonProvider.java
linenumberstrue
package com.fr.report.fun;

import com.fr.form.ui.Widget;
import com.fr.stable.fun.mark.Mutable;
import com.fr.stable.xml.XMLable;

/**
 * 
 * @author focus
 * @date Jul 1, 2015
 * @since 8.0
 * 导出菜单接口,用于添加其他的导出方式,菜单目前只支持两级目录
 * 
 */
public interface ExtensionButtonProvider extends XMLable, Mutable{

	int CURRENT_LEVEL = 2;
	String XML_TAG = "ExtensionButtonProvider";
	
    /**
     * 导出菜单的实现类,该类可以继承自com.fr.form.ui.ToolBarMenuButton 或者 com.fr.form.ui.ToolBarButton;
     * @return 控件类
     */
    Class<? extends Widget> classForDirectoryButton();
	
    /**
     * 父目录
     * @return 父目录名称
     */
	 String getParentDirectory();
	
	/**
	 * 本层目录名称
	 * 
	 * @return 同上
	 */
	 String getType();
	
	/**
	 * 菜单项在设计器端对应的checkbox名称(用以控制是否在web端显示)
	 * 
	 * @return 同上
	 */
	 String getRelatedCheckBoxTitle();
	
	/**
	 * 该目录是否在web段显示
	 * 
	 * @return 同上
	 */
	 boolean isSelected();
	
	/**
	 * 设置目录是否在web端显示
	 * 
	 * @param isSelected 是否显示
	 */
	 void setSelected(boolean isSelected);
	
}


四、支持版本

产品线

版本

支持情况

备注

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

五、插件注册

Code Block
languagexml
themeEclipse
firstline1
titleplugin.xml
linenumberstrue
<extra-report>
        <CommentExcelProcessor<ExtensionButtonProvider class="your class name"/>
</extra-report>

...

该接口涉及到对报表对象的各种操作,需要对报表对象结构本身有一定的了解。在demo示例中,给出了一些基本的方法,可以作为参考。更多的报表对象结构知识,会在其他章节中进行详细的介绍

八、常用链接

demo地址:demo-commentextension-excel-processor

com.fr.report.fun.ExportOperateProvider

com.fr.report.fun.ExportExtensionProcessor

com.fr.stable.fun.ExcelExportCellValueProvider

com.fr.form.stable.FormExportProcessor

com.fr.report.fun.ExcelExportAppProvider

com.fr.io.exporter.PDFExporterCreator

com.fr.report.fun.FormatActionProviderbutton-provider



九、开源案例

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

...