1. 概述编辑
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
FineReport 11.0 中包含两种决策报表:「决策报表」和「旧决策报表」,其主要的区别在于 自适应属性 的不同。
而两种决策报表的导出方式也有区别,本文将主要介绍 11.0 默认的决策报表的导出方式,「旧决策报表」的导出请参见文档:决策报表导出插件 。
1.3 功能简介
普通决策报表导出接口为 &export_format=xxx,xxx 代表导出的格式,支持导出为 Excel、Word 和 PDF 。
带参决策报表需在导出后缀中加上 sessionID,即 &export_format=xxx&sessionID=***
导出时可自定义尺寸,在后缀末尾再添加参数 &width=1920&height=1080
导出时可修改文件名,在后缀末尾再添加参数 &__filename__=文件名
2. 普通决策报表导出编辑
若决策报表没有参数设置,那么将决策报表整体导出为 Excel、PDF 、Word 格式,只需要在「PC端预览」时的 URL 链接添加后缀 &export_format=xxx,回车即可导出。
xxx 代表导出的格式, 如下表所示:
注:修改文件名可在后缀末尾再添加参数 &__filename__=文件名
导出格式 | 添加后缀 |
---|---|
Excel | &export_format=excel |
Word | &export_format=word |
&export_format=pdf |
例如导出决策报表为 Excel ,如下图所示:
3. 带参决策报表导出编辑
决策报表中含有参数时,决策报表或决策报表内的组件内容,会因为参数(例如参数查询,主子报表等)变化而改变。那么使用 URL 导出决策报表时,需要添加 sessionID 来导出当前查询结果,否则导出内容会与参数查询内容不一致。
注:浏览器请求 Web 服务,在创建会话时,服务器会为每一个会话生成一个单独的会话标识,这个会话标识就是 sessionID,以长整形数据类型返回。sessionID 就等于本次会话的 ID 记录。
3.1 添加初始化后事件
在带参数的决策报表中,需要给参数面板「para」添加一个「初始化后」事件,去返回 sessionID 。
选中参数面板,添加「初始化后」事件,设置一个参数「aaa」,值选择 F(x) 类型后输入公式:sessionID。再输入 JavaScript 代码 :
alert(aaa);
步骤如下图所示:
3.2 获取 sessionID 导出
1)保存报表,点击「PC端预览」,弹出当前 sessionID,复制当前 sessionID 后,点击确定。如下图所示:
注:sessionID 每次刷新都会变化。
2)URL 后缀加上&export_format=xxx&sessionID=***,xxx 代表导出的文件格式,*** 代表复制的当前 sessionID ,回车即可导出当前的查询结果。
3.3 模板下载
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\frm\带参决策报表导出.frm
点击下载模板:带参决策报表导出.frm
4. JS 实现点击按钮导出带参决策报表编辑
通过在参数面板添加「按钮控件」(也可以在 body 直接添加按钮控件),设置参数「aaa」获取当前sessionID ,添加「点击事件」实现导出。
4.1 添加按钮控件
以第 3.3 节的模板为例,在参数面板中添加「按钮控件」,按钮名称为「导出Excel」,如下图所示:
4.2 添加点击事件
选中「按钮控件」,添加一个「点击事件」,设置一个参数「aaa」,值选择 F(x) 类型后输入公式:sessionID。在输入 JavaScript 代码:
var REPORT_URL ='${servletURL}?viewlet=doc/frm/带参决策报表导出.frm&op=form_adaptive&export_format=excel&sessionID=' + aaa;
window.location = encodeURI(REPORT_URL);
如下图所示:
4.3 效果预览
保存报表,点击「PC端预览」,点击「查询」按钮后再点击「导出Excel」按钮。效果如下所示: