1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
图表监控刷新功能可实时监测后台数据变化,动态刷新图表数据;还可监控图表组件中的参数刷新,即图表组件中某些属性设置了公式参数,当参数更新时,图表随之刷新数据。
如下图仪表盘监控刷新示例,数据可实时刷新。
注:当图表数据来源于单元格数据时,图表不支持监控刷新。
1.3 功能介绍
通过图表属性面板「特效>交互属性」的「监控刷新」设置项实现。
2. 示例
2.1 准备数据
点击设计器左上角「文件>新建普通报表」,新建数据集 ds1,数据库查询语句如下:
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.4 节 |
/2000 | 本文示例设置定期刷新的刷新间隔为 2 秒,所以这里除以 2000 毫秒,即 2 秒刷新一次,时间差值也随之变化 |
mod(number,divisor) | 返回两数相除的余数。结果的正负号与除数相同。number 为被除数,divisor 为除数 |
2.2 插入图表
合并一片单元格区域,点击上方工具栏插入图表按钮,插入「仪表盘>多指针的仪表盘360°」。如下图所示:
2.3 绑定图表数据
选中仪表盘,选择「数据」,绑定图表数据,如下图所示:
2.4 创建模板参数
设计器菜单栏点击「模板>模板参数」,新建一个模板参数 a,默认值为公式 now(),如下图所示:
2.5 仪表盘设置
1)样式设置
选中仪表盘,属性面板选择「样式>标题」,设置标题的文本内容和颜色,如下图所示:
标题文本公式为:ds1.select("货主城市", 订单ID = 10001 + mod((datetonumber(now()) - datetonumber(a)) / 2000, 1000)) ,即动态展示货主城市。
2)自动刷新设置
选中仪表板,属性面板选择「特效>监控刷新」,设置自动刷新属性,如下图所示:
后台检测:开启
时间间隔:2秒 (跟之前 SQL 中的变化时间同步)
自动数据提示:不勾选
2.6 效果预览
2.6.1 PC 端
保存报表,点击「分页预览」,效果如 1.2 节所示。
2.6.2 移动端
同时支持 App 端和 HTML5 端,效果如下图所示:
注:移动端需要使用11.0.66及之后版本
3. 模板下载
点击下载模板:图表监控刷新.cpt