让数据成为企业发展的驱动力
搜索

盈帆报表-插件二次开发(报表工具)

盈帆报表插件二次开发文档

盈帆报表插件说明

盈帆报表插件系统是基于盈帆报表设计器平台的插件开发系统,使用该插件系统,用户可以根据自己的需求来完成不同插件的开发,并将插件集成到盈帆报表设计器平台进行展现。

1.1盈帆报表插件示例

    

                    1    插入插件


    

                    2    选择插件类型

    

                    3    设计器上生成插件默认图片

    

                    4    进入插件编辑页面

    

                    5    保存插件到报表中

    

                    6    报表预览效果



盈帆报表插件二次开发说明

2.1报表插件核心目录

WEB-INF/lib/plugin

该目录的主要作用是存放插件的自定义jar包。

    

工程目录/plugin

该目录的主要作用是存放生成插件依赖的js文件。

    

工程目录/pluginResource/image

该目录的主要作用是存放插件的默认图片,该目录下的图片文件都是由插件jar包自动生成。

    

工程目录/pluginResource/theme

该目录的主要作用是存放插件可能会用到的主题js文件。

    

工程目录/pluginResource/html

该目录的主要租用是存放插件对应的前端编辑JSP页面,需要重点注意的是,JSP文件的名字需要和对应的jar包名字保持一致,否则在进入插件编辑页面时,会无法找到对应的编辑页面。

    


2.2插件开发流程

自定义插件的核心分为前端和后台两个部分,后台以jar包的形式存在,主要负责和底层交互生成插件HTML页面和图片,前端以JSP页面的形式存在,主要负责编辑插件样式,设置插件主题并且设置插件的数据。

2.2.1插件jar包开发

插件jar包的核心作用是与设计器内核进行交互,生成插件默认图片,样式编辑后图片,加载真实数据后的插件HTML以及打印导出时的插件图片。根据插件的不同作用,插件jar包里面的类的核心方法包括以下几个:

public static String getPluginName(){}

该方法的主要作用是返回插件的名字,插件的名字对应插件列表里面的名字。

    

public static String getClassName(){}

该方法的主要作用是返回插件的类名,插件的类名对应插件默认图片目录里面的图片名。

    

public static String generateDefaultOption(){}

该方法的主要作用是返回生成插件所需的默认配置信息。以Echarts为例,在开发对应的Echarts控件时,该方法的主要作用就是返回Echartsoption配置。

public static String getPluginDefaultImage(int width, int height, String path, String flag){}


序号
参数名
参数说明
1
width
插件默认图片的宽度
2
height
插件默认图片的高度
3
path
生成图片的路径
4
flag
默认图片标识



该方法的主要作用是根据插件的默认配置文件,调用系统内核来生成插件的默认图片并将图片的Base64位编码返回给设计器。

    

2.2.1-1选择插件时生成插件的默认图片

    

2.2.1-2将插件的默认图片返回给设计器

Public static String getPluginMixedImage(String option, String realData, int width, int height, String tempPath){}


序号
参数名
参数说明
1
option
插件的配置信息
2
realData
插件数据
3
width
插件图片的宽度
4
Height
插件图片的高度
5
tempPath
生成图片的路径



该方法的主要作用是生成编辑样式后的插件图片并且返回给设计器。

    

2.2.1-3 将编辑样式后的图片返回给设计器

public static int generatePluginHtml(String jsResourcePath, String option, int width, int height, String path, String reportInfo){}


序号
参数名
参数说明
1
jsResourcePath
插件依赖的js路径
2
option
插件的配置信息
3
width
插件图片的宽度
4
Height
插件图片的高度
5
tempPath
生成图片的路径
6
reportInfo
报表的参数信息



该方法主要由设计器内核来调用,用来生成报表文件里面插件的HTML文件。

public static String generatePluginPng(String jsResourcePath, String option, int width, int height, String tempPath) {}


序号
参数名
参数说明
1
jsResourcePath
插件依赖的js路径
2
option
插件的配置信息
3
width
插件图片的宽度
4
Height
插件图片的高度
5
tempPath
生成图片的路径


该方法主要由设计器内核来调用,当调用报表设计器的打印和导出PDF功能时,内核会调用该方法并且生成相应的插件图片。

2.2.2 插件编辑页面开发

在报表设计器界面双击控件图片时,会弹出插件编辑页面,用户可以通过对该页面来设置插件的属性和数据,最终生成插件。

    

2.2.2-1插件编辑页面

插件编辑页面放在/工程目录/pluginResource/html目录下,开发者可以根据插件对应的配置和所需要的的属性来进行编辑页面的开发,只需要保证页面名称和插件jar包名称保持一致。

2.2.3 插件系统运行原理

报表工程启动时,系统会自动扫描WEB-INF/lib/plugin目录下的所有插件jar包,并将jar包对应的插件类型以及jar包里面的类实例保存在WEB容器中。

插件编辑页面和插件JAR包的交互主要是通过PluginController来实现的,当用户插入插件,系统将控件类型,控件指定单元格的高度和宽度传到PluginControllergenerateDefaultPluginPng方法中,该方法根据插件类型在容器中找到指定的类实例来调用插件类里面的generateDefaultOption方法来生成默认属性的控件图片,并将图片的Base64位编码和插件属性保存到设计器指定的单元格中。

    

2.2.3-1选择插件类型

    

2.2.3-2将图片的Base64位编码和插件属性保存到指定的单元格中

    

2.2.3-3核心代码

当在指定的单元格中双击插件图片时,会根据插件类型跳转到指定的编辑页面中,并将对应的插件属性传到指定页面中,当用户进行编辑并确定后,控件指定单元格的高度、宽度、修改后的插件属性和数据传到PluginControllergeneratePluginPng方法中,该方法根据插件类型在容器中找到指定的类实例来调用插件类里面的generateDefaultOption方法来生成默认属性的控件图片,并将图片的Base64位编码和插件属性保存到设计器指定的单元格中。

    

2.2.3-4双击插件跳到对应的编辑页面进行修改

    

2.2.3-5修改后的图片和属性保存到对应的单元格中

    

2.2.3-6 核心代码

完成后,在预览界面可以看到成功生成的插件页面

    

总结

盈帆报表插件开发可以根据客户的需求来扩展不同的插件,用户可以自定义插件的属性,主题,数据来完成自定义插件的开发和展现。用户甚至可以基于此体系来完成非图表类型的插件开发,大大提高了系统的灵活性和可扩展性。