1. 概述
1.1 问题描述
折线图预览时,有时不需要将全部内容展示出来,而是随着时间维度的递增,依次展现。如下图所示:
效果一:
效果二:
1.2 实现思路
在 SQL 查询语句中设置时间参数过滤数据,时间参数的值会随着时间而变化,然后定时刷新图表。
注:FVS 可视化看板详情可见:FVS动态轮播折线图 。
2. 示例
2.1 方案一:分类值动态变化
2.1.1 报表设计
1)新建决策报表,创建数据集 ds1,数据库查询语句如下:
SELECT
货主城市,
strftime('%Y-%m',订购日期) 年月,
sum(运货费) 运货费
FROM 订单
where strftime('%Y-%m',订购日期)<='${left(monthdelta("1997-01-01",mod((datetonumber(now())-datetonumber(a))/1000,12)),7)}'
and strftime('%Y',订购日期)='1997'
and 货主城市 in ('天津','秦皇岛','南京')
group by 货主城市,strftime('%Y-%m',订购日期)
2)菜单栏点击「模板>模板参数」,新建一个默认值为=now的模板参数 a 。
3)决策报表 body 组件的布局方式改为绝对布局,决策报表设计主体中拖入折线图,如下图绑定数据信息。
4)折线图样式选择「标签」,勾选「使用标签」,文本勾选「值」。
5)添加定时刷新,折线图特效选择交互属性,开启后台检测,时间间隔为1秒。
2.1.2 效果预览
1)PC端
保存报表,点击「PC端预览」,折线图效果如下图所示:
2)移动端
2.2 方案二:分类值固定不变
2.2.1 报表设计
数据集 ds1 修改如下:
select a.货主城市,a.年月,b.运货费 from (
SELECT
distinct 货主城市,strftime('%Y-%m',订购日期) 年月
FROM 订单
where strftime('%Y',订购日期)='1997'
and 货主城市 in ('天津','秦皇岛','南京')
) a
left join (
SELECT
货主城市,
strftime('%Y-%m',订购日期) 年月,
sum(运货费) 运货费
FROM 订单
where strftime('%Y-%m',订购日期)<='${left(monthdelta("1997-01-01",mod((datetonumber(now())-datetonumber(a))/1000,12)),7)}'
and strftime('%Y',订购日期)='1997'
and 货主城市 in ('天津','秦皇岛','南京')
group by 货主城市,strftime('%Y-%m',订购日期)
) b on a.货主城市=b.货主城市 and a.年月=b.年月
其他步骤按照方案一设置即可。
2.2.2 效果预览
1)PC端
保存报表,点击「PC端预览」,折线图效果如下图所示:
2)移动端
3. 模板下载
已完成模板可参见:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\LineChart\分类值动态变化.frm
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\LineChart\分类值固定不变.frm
点击下载模板: