【仅供内部供应商使用,不提供对外解答和培训】
...
以往开发者大多都接触过程序数据集的基本实现方法。程序数据集从功能上是可以满足开发者对数据的绝大部分诉求的。不过对于报表制作人员来说,程序数据集存在叫非常明显的短板就是使用并不友好。制作人员需要记住大量的类名和业务的关联关系,或者需要手动添加大量的参数实现“配置化”,但是又无法解决参数配置化导致的参数引入问题(比如某些敏感配置只能在制作模板的时候指定,禁止从URL/参数面板等地方引入)。为了给报表制作人员提供更好的使用体验和安全体验,产品内设计了TableDataDefineProvider接口,让开发者得以用插件的形式向用户提供数据集扩展。)。为了给报表制作人员提供更好的使用体验和安全体验,产品内设计了TableDataDefineProvider接口,让开发者得以用插件的形式向用户提供数据集扩展。需要注意的是,该接口不同于ServerTableDataDefineProvider,仅作用于设计器上编辑模板数据集扩展。
| Code Block | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
package com.fr.design.fun;
import com.fr.base.TableData;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.stable.fun.mark.Mutable;
import com.fr.stable.fun.mark.Aftermath;
/**
* @author : richie
* @since : 7.1.1
* 自定义报表数据集界面接口,单独存在的一个个数据集
*/
public interface TableDataDefineProvider extends Mutable, Aftermath {
String XML_TAG = "TableDataDefineProvider";
int CURRENT_LEVEL = 1;
/**
* 自定义的数据集设置界面所对应的数据集类型
* @return 数据集的类型
*/
Class<? extends TableData> classForTableData();
/**
* 自定义数据集设置界面所对应的初始化数据集类型,在一种数据集有多个实现的时候有效
* @return 数据集类型
*/
Class<? extends TableData> classForInitTableData();
/**
* 自定义的数据集设置界面所对应的界面类型
* @return 数据集界面类型
*/
Class<? extends AbstractTableDataPane> appearanceForTableData();
/**
* 自定义数据集设置界面在菜单上的现实名字
* @return 名字
*/
String nameForTableData();
/**
* 自定义数据集在新建的时候名字前缀
* @return 名字前缀
*/
String prefixForTableData();
/**
* 自定义数据集在菜单上现实的图标
* @return 图标
*/
String iconPathForTableData();
}
|
...