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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

一、特殊名词介绍

二、背景、场景介绍

PresentKindProvider主要用于提供数据展现形态的扩展。

比较常见的就是各类条码、二维码形态的扩展。


三、接口介绍

TableDataDefineProvider.java
package com.fr.design.fun;

/**
 * @author : richie
 * @since : 8.0
 * 自定义服务器数据集设计界面接口
 */
public interface ServerTableDataDefineProvider extends TableDataDefineProvider {

    String XML_TAG = "ServerTableDataDefineProvider";
}

TableDataDefineProvider

四、支持版本

产品线

版本

支持情况

备注

FR8.0支持
FR9.0支持
FR10.0支持
BI3.6支持
BI4.0支持
BI5.1支持
BI5.1.2支持
BI5.1.3支持

五、插件注册

plugin.xml
<extra-designer>
        <ServerTableDataDefineProvider class="your class name"/>
</extra-designer>

六、原理说明

当数据集类型选择列表被触发时,会调用TableDataCreatorProducer#createReportTableDataCreator方法。此时,会读取所有插件中申明的ServerTableDataDefineProvider实例。因为该接口对应的服务其数据集添加是在设计器上操作的,而实际数据集的计算是属于服务器的功能范畴,所以ServerTableDataDefineProvider还有个作用就是解耦,对于一个具体的服务器数据集最终会把tabledata的class名保存到finedb中(注:9.0及更低版本保存到datasources.xml)。

七、特殊限制说明

iconPathForTableData :返回的图标路径(如:/com/demo/hg/resources/images/main.png)。需要注意,因为这个接口没有做图片的统一缩放,所以需要开发者自己准备好16*16(px)大小的图标。否则会显得很不协调。

classForTableData: 接口需要返回一个TableData接口类。实际开发时为了方便开发提高效率和稳定性,要求开发者全部继承AbstractParameterTableData[注意点]

classForInitTableData:这个接口如果已经实现了classForTableData的话,目前没有什么实质性的作用,不过一般要求开发者保留性的与classForTableData返回相同的class。

八、常用链接

demo地址:demo-table-data-define

TableDataDefineProvider

UniversalServerTableDataProvider

九、开源案例

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

demo-tabledata-redis


  • No labels