1. 概述编辑
1.1 问题描述
展示折线图时,不要一下子全部展现出来,而是随着时间维度的递增,依次展现。如下图所示:
效果一:
效果二:
1.2 实现思路
在 SQL 查询语句中设置时间参数过滤数据,时间参数的值会随着时间而变化,然后定时刷新图表。
2. 示例编辑
方案一:分类值动态变化
2.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.2 报表设计
1)菜单栏点击模板>模板参数,新建一个默认值为=now的模板参数a。
2)决策报表 body 组件的布局方式改为绝对布局,决策报表设计主体中拖入条形图,如下图绑定数据信息。
3)折线图样式选择标签,勾选使用标签,文本勾选值。
4)添加定时刷新,折线图特效选择交互属性,开启后台检测,时间间隔为1秒。
2.3 效果预览
1)PC端如预期效果所示。
2)移动端效果如下图所示:
方案二:分类值固定不变
数据集 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.年月
其他步骤与方案一一致。
效果查看:
1)PC端如预期效果所示。
2)移动端效果如下图所示: