1. 概述
1.1 版本
报表服务器版本 | JAR 包版本 | 功能变动 |
---|---|---|
10.0.14 | 2021-03-17 | 监控刷新增加监控参数刷新 |
1.2 应用场景
图表监控刷新功能可实时监测后台数据变化,动态刷新图表数据。
2021-03-17 及之后的 JAR 包版本,还可监控图表组件中的参数刷新,即图表组件中某些属性设置了公式参数,当参数更新时,图表随之刷新数据。
如下图仪表盘监控刷新示例,数据可实时刷新。
注1:当图表数据来源于单元格数据时,图表不支持监控刷新。
注2:在 2021-03-17 之前的 JAR 包版本中,图表数据无变化时,前端图表不会有刷新动效,除树型结构图表(矩形树图、钻取地图)、多层饼图、甘特图、框架图。
1.3 功能介绍
通过图表属性面板「特效>交互属性」的「监控刷新」设置项实现。
2. 示例
2.1 安装插件
本文示例中需要刷新报表块,所以要先安装 表单内报表块刷新插件
点击下载插件:表单内报表块刷新
设计器插件安装方法参见:设计器插件管理
服务器安装插件方法参见:服务器插件管理
2.2 设计模板
新建决策报表,在报表中拖入仪表盘「chart0」和决策报表块「report0」,仪表盘选择「多指针的仪表盘 360 度」,报表块跟随仪表盘刷新,利用「报表块刷新插件」实现,如下图所示。
2.3 准备数据
新建数据库查询 ds1,SQL 查询语句为:
SELECT
订单ID,货主城市,
strftime('%Y-%m',订购日期) 年月,
sum(运货费) 运货费
FROM 订单
where 订单ID=10001+'${mod((datetonumber(now())-datetonumber(a))/2000,1000)}'
group by 货主城市,strftime('%Y-%m',订购日期)
order by 运货费
SQL 说明:
SQL 中选择的订单号动态跟随时间改变,模拟后台数据变化
公式 mod((datetonumber(now())-datetonumber(a))/2000,1000) 说明如下表:
公式 | 说明 |
---|---|
datetonumber(now()) | 返回自1970年1月1日00:00:00GMT到当前时间经过的毫秒数。这里的 now() 在模板预览时也会实时变化 |
datetonumber(a) | 这里的 a 是模板参数,a 的默认值也为 now() ,但这个 now() 表示预览模板时预览的这一瞬间的时间,模板预览中 a 不再变化 注:添加参数的说明请参见第 2.5 节 |
/2000 | 本文示例设置定期刷新的刷新间隔为 2 秒,所以这里除以 2000 毫秒,即 2 秒刷新一次,时间差值也随之变化 |
mod(number,divisor) | 返回两数相除的余数。结果的正负号与除数相同。number 为被除数,divisor 为除数 |
2.4 绑定图表数据
选中仪表盘,选择「数据」,绑定图表数据,如下图所示:
2.5 创建模板参数
设计器菜单栏点击「模板>模板参数」,新建一个模板参数 a,默认值为公式 now(),如下图所示:
2.6 报表块设置
1)设计报表块表格
把 ds1 对应字段拖入报表块「report0」,「货主城市」字段拖入 B1,「运货费」字段拖入 D1,如下图所示:
2)报表块刷新设置
选中报表快,属性面板点击刷新按钮,设置「定期刷新」,「刷新间隔」为 2 秒。如下图所示:
2.7 仪表盘设置
1)样式设置
选中仪表盘,属性面板选择「样式>标题」,设置标题的文本内容和颜色,如下图所示:
标题文本公式为:ds1.select("货主城市", 订单ID = 10001 + mod((datetonumber(now()) - datetonumber(a)) / 2000, 1000)) ,即动态展示货主城市。
2)自动刷新设置
选中仪表板,属性面板选择「特效>监控刷新」,设置自动刷新属性,如下图所示:
后台检测:开启
时间间隔:2秒 (跟之前 SQL 中的变化时间同步)
自动数据提示:不勾选
2.8 效果预览
2.8.1 PC 端
保存报表,点击「PC 端预览」,效果如下图所示:
2.8.2 移动端
同时支持 App 端和 HTML5 端,效果如下图所示:
注:仪表板缩放支持普通报表,设置方式同决策报表,但移动端报表块刷新不支持。
3. 模板下载
点击下载模板:图表监控刷新.frm