1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
在报表应用中,我们经常会用到报表页面的刷新,比如报表中有数据更新时需要定时刷新,填报报表中填报成功后需要刷新,决策报表中某个报表块需要定时的刷新等等,都会用到刷新。下面对这些刷新方法进行总结。
1.3 实现思路
对于报表进行刷新的方式较多主要有以下几种:
手动刷新:手动点击浏览器刷新按钮,此方法适用于所有报表,但重新加载速度可能较慢,参数栏参数会初始化,需要重新填写。
使用 location.reload() ,刷新整个报表页面,和手动点击浏览器的刷新功能是一样的,适用于所有报表但重新加载速度较慢,相关示例可参见 填报成功自动刷新 。
使用官方的 JS 接口,具有刷新功能的接口较多,将在第 2 节详细讲解。
FVS 可视化看板可参见:FVS模板页面定时刷新 、FVS组件刷新 。
决策报表可使用插件,详情请参见 决策报表内报表块刷新插件 。
2. 官方接口刷新总结
接口 | 适用范围 | 示例效果 |
---|---|---|
_g().parameterCommit() | 具有参数栏的所有报表中(包括使用了参数栏隐藏),支持移动端。 | 提交参数后重新查询,刷新报表。 |
注:此方法可以使用三个参数 gotoPage(pn, para, noCache),跳转到指定页,重新提交参数,有无缓存,使用较灵活 | 适用于分页报表,填报报表,决策报表,支持移动端。 | 跳转到指定页数后重新加载刷新,参数栏不刷新。 |
_g().getWidgetByName().gotoPage() | 仅适用于决策报表,支持移动端。 | 获取决策报表中的报表块,跳转到指定页。 |
_g().refreshAllSheets() | 仅适用于填报报表,支持移动端。 | 刷新填报报表中所有的 sheet ,刷新后会停留在上次查看的 sheet ,不会刷新参数栏。 |
_g().loadSheetByIndex() | 仅适用于填报报表,不支持移动端。 | 切换到指定 sheet 序号的页面并刷新。 |
_g().loadSheetByName() | 仅适用于填报报表,不支持移动端。 | 切换到指定 sheet 名称的页面并刷新。 |
_g().loadContentPane() | 适用于分页报表,填报报表,数据分析报表、决策报表,支持移动端。 注:在填报报表或数据分析报表中,会刷新所有的 sheet 数据 | 重新加载,刷新报表,不提交参数。 |
FR.Chart.WebUtils.getChart("chartID").dataRefresh() | 仅适用于图表,不支持扩展图表。 支持移动端,但移动端决策报表的报表块内图表不支持调用该接口。 | 可以刷新普通报表或决策报表中的图表。 |
FR.Chart.WebUtils.getChart("chartID").dealReloadChartAjax() | 适用于扩展图表单个组件刷新。 | 刷新扩展图表 |
duchamp.getWidgetByName("组件1").refresh() | 适用于 FVS 可视化看板刷新单个组件 | 刷新 FVS 单个组件 |
duchamp.getWidgetByName("自定义模型").refreshData() | 适用于 FVS 可视化看板刷新三维组件数据 | 刷新三维组件数据,仅数据更新,组件整体不更新 |
3. 示例索引
文档链接 | 应用场景 | 效果图 |
---|---|---|
JS实现当前页刷新 | 填报成功刷新 | |
数据校验刷新 | ||
点击按钮刷新 | ||
JS实现切换sheet刷新 | 填报完成后切换sheet自动刷出 | |
JS实现报表块数据变化后刷新联动的图表块 | 实现报表块数据发生变化后,联动的图表块也会自动刷新 | |
图表刷新接口 | 点击按钮可以刷新普通报表或决策报表中的图表 | |
扩展图表组件刷新 | 实现扩展图表组件的刷新 | |
自动查询 | 提交参数后重新查询,刷新报表 | |
JS实现定时刷新报表 | 实现报表以指定的频率刷新 | |
JS实现决策报表定时刷新 | 实现决策报表的定时刷新 | |
JS实现决策报表内报表块翻页 | 报表块实现局部刷新 | |
JS实现决策报表中网页框刷新 | 决策报表中使用了 A、B 两个网页框,两个网页框分别对应 A、B 报表,实现点击 A 报表中的按钮刷新 B 报表 | |
JS实现关闭子页面时刷新父页面 | 项目中做填报时,会遇到点击按钮跳转到子页面填写详细信息。当填报完成,关闭子页面时,希望能刷新父页面。 | |
JS实现子窗口填报后刷新父页面 | 子报表填报成功后,数据能马上在主报表中显示出来,通常采用的方法是刷新主报表。 |