跳到主要内容
版本:7.0.0

用全局参数制作动态维度报表

需求背景

客户需要分别以年,月,周,日为维度来制作报表,一般情况下需要做四张同样结构样式的卡片,希望可以合并为一个报表卡片,通过筛选器来指定报表日期维度,切换年,月,周,日视图。

实现方法

使用全局参数筛选器来切换报表维度。

具体步骤

1. 在数据集概览页面或者 ETL 里新建计算字段来分别提取日期字段的年,月,周, 建议使用文本类型。年:使用函数 year([日期]);月:请参考取年月的函数;周:concat(year([日期]),'年', weekofyear([日期]),'周')

image.png

2. 新建全局参数,文本-单值类型,可选项为 年,月,周,日,设置默认值。

image.png

3. 卡片编辑页面,新建计算字段,设定全局参数逻辑(如下图);然后把这个字段拖到维度栏。注意:这个字段只能在卡片里创建。

1case [DYNAMIC_PARAMS.日期维度]when '年' then [年]when '月' then [年月]when '周' then [周]when '日' then [日期]end

image.png

4. 回到仪表板页面,新建参数筛选器,指定步骤 2 里新建的全局参数,保存。筛选器会自动联动使用此全局参数的卡片。如果需要限定时间范围,另外新建日期类型筛选器来联动卡片。使用效果参考下图。

image.png

案例参考

报表需求:维度需要用到地区和日期,地区要在大区和省份之间切换,日期要自由切换年,月,周,日,还要根据维度变化计算累计销售额。

实现方法:

1. 参考以上步骤来创建动态日期维度和地域维度。

2. 计算累计销售额,需要新建一个计算字段来指定累计时间维度。前面维度是“日”,如果想按月累计,下个月重新计算,累计时间维度要设为“年月”,要以年为单位累计,累计时间维度要设为“年”。用 case when 函数来确定累计时间维度。再新建计算字段,用开窗函数来计算累计金额,拖拽到数值栏,聚合方式选“最大值”。累计计算具体请参考 如何计算出月累计销售金额

image.png

image.png

3. 除了参数筛选器,新建 2 个选择筛选器来筛选“大区”和“省份”,设置联动。效果如下:

image.png

注意:本文档中数据集和卡片都是基于 Guan-index 抽取数据或者文件创建数据集,系统默认支持 Spark SQL 函数,如果使用直连数据集和直连卡片,请使用对应数据库的函数。