1. 概述编辑
1.1 版本
报表服务器版本 | JAR 包版本 | 决策报表导出插件版本 |
---|---|---|
10.0 | 2018-07-18 | V3.4 |
9.0 | 2017-01-18 | V3.2 |
8.0 | 2017-01-18 | V3.2 |
1.2 应用场景
用户有时需要将决策报表以其他形式导出进行预览时,可下载决策报表导出插件进行实现。
1.3 功能简介
决策报表导出插件支持将决策报表整体导出为 Excel、PDF 、Word 格式。
注1:不支持导出控件的值,不支持导出 body 背景色,不支持导出组件自定义边框。
注2:JAR 包为 2018-12-27 及之后版本,需要将插件升级为 3.0 及以上版本,否则使用「op=export&format=xxxx」进行导出时,只会刷新一下页面,不能导出指定文件。
2. 操作步骤编辑
2.1 插件安装
点击下载插件:决策报表导出
设计器插件安装方法参见 设计器插件管理
服务器安装插件方法参见 服务器插件管理
2.2 导出 Excel
在 FineReport 设计器中打开任意一张决策报表,点击表单预览,链接后缀加上&op=export&format=excel,回车即可导出 Excel,如下图所示:
注:当决策报表使用绝对布局,存在重叠的图表块或报表块时,则不支持导出 Excel 。
2.3 导出 PDF
在 FineReport 设计器中打开任意一张决策报表,点击表单预览,链接后缀加上&op=export&format=pdf,回车即可导出 PDF,如下图所示:
2.4 导出 Word
在 FineReport 设计器中打开任意一张决策报表,点击表单预览,链接后缀加上&op=export&format=word,回车即可导出 Word,如下图所示:
注1:控件的值不支持导出;按钮控件不导出;Tab 组件只导出第一个 Tab;翻页只导出其当前页。
注2 : JAR 包为 2020-8-31 之前版本导出 Word 不支持图表组件,只支持单元格元素的图表。
3. 带参决策报表的导出编辑
决策报表中含有参数时,直接使用第二章的方法导出,导出内容与参数查询内容不一致。
当决策报表或决策报表内的组件内容,会因为参数(例如参数查询,主子报表等)的变化而改变。那么使用 URL 导出决策报表时,需要添加 sessionID 来导出当前查询结果,否则只能导出模板初始预览结果。
注:浏览器请求 WEB 服务,在创建会话时,服务器会为每一个会话生成一个单独的会话标识,这个会话标识就是 sessionID,以长整形数据类型返回。sessionID 就等于本次会话的 ID 记录。
3.1 模板准备
1)在 FineReport 设计器中打开模板%FR_HOME%/webapps/webroot/WEB-INF/reportlets/doc/frm/example.frm,点击表单预览,点击查询按钮,界面如下图所示:
2)链接后缀加上&op=export&format=excel,回车导出 Excel ,发现导出的 Excel 内容不是当前的查询结果,如下图所示:
3.2 获取 sessionID
若要导出当前查询的结果报表,需要获取当前决策报表的sessionID,后缀加上&op=export&format=excel&sessionID=xx,即可导出当前的查询结果。
选中参数面板para,点击事件,添加初始化事件,初始化事件中设置一个参数aaa,值用公式表达为:sessionID。如下图所示:
JS 代码如下所示:
alert(aaa);
3.3 导出 Excel
1)保存后,点击表单预览,弹出当前 sessionID,复制当前 sessionID。如下图所示:
2)导出 Excel 时,后缀加上&op=export&format=excel&sessionID=38889574-c2df-456c-93ed-981a8cae32e2,即可导出当前的查询结果,如下图所示:
4. JS 实现点击按钮导出带参决策报表编辑
在参数面板添加按钮控件(也可以在 body 添加按钮),设置参数aaa获取当前sessionID ,添加点击事件。
4.1 添加按钮
在 FineReport 设计器中打开模板%FR_HOME%/webapps/webroot/WEB-INF/reportlets/doc/frm/example.frm,
在参数面板中添加按钮控件,按钮名称为导出Excel,如下图所示:
4.2 添加点击事件
选中导出Excel按钮控件,在右侧属性面板中点击事件,添加点击事件,点击事件中设置一个参数aaa,值用公式表达为:sessionID。如下图所示:
JS 代码如下所示:
注:上述功能为导出 Excel,如需导出 PDF 等格式,修改「&format=pdf」即可。
var REPORT_URL = '${servletURL}?viewlet=doc/frm/example.frm&op=export&format=excel&sessionID=' + aaa;
window.location = encodeURI(REPORT_URL);
4.3 效果预览
1)保存后,点击表单预览,点击查询,如下图所示:
注:用户必须先预览查询,得到查询后的界面再导出,若不查询直接导出, 导出文件的数据与效果无法保证。
2)点击导出Excel,打开导出的 Excel 文件。如下图所示:
4.4 已完成模板
已完成模板可参见:%FR_HOME%webappswebrootWEB-INF eportletsdocJS表单JS实例JS 实现点击按钮导出带参决策报表.frm
点击下载模板:JS 实现点击按钮导出带参决策报表.frm