1. 概述编辑
1.1 问题描述
「日期控件」筛选日期数据时,常见的日期类型如2020-01-01可以进行筛选,但有些场景下客户的数据源非日期类型,而是一些其他格式的日期字符串,如20200101、2020/05等,这种字符串形式的日期数据不能和「日期控件」的筛选值进行匹配,从而无法实现筛选效果。
那这种类型的日期数据,如果想要筛选查询,该如何实现呢?
1.2 实现思路
通过公式,将字符串形式的日期数据转化成能和「日期控件」值匹配的格式,通过过滤实现筛选。如下图所示:
2. 示例编辑
2.1 年月日形式的日期筛选
年月日形式的日期筛选,如下图所示:
2.1.1 准备数据
新建内置数据集,准备数据,如下图所示,可以看到数据集中日期数据为“20200101”类型的字符串。
2.1.2 定义参数
1)定义用来过滤筛选的参数,这里定义了两个模板参数,如下图所示:
2)给定义的参数绑定参数控件,即在参数面板中加入控件,选定对应类型的控件。如下图所示:
2.1.3 设计报表
将数据集字段拖入报表,写入表头,设计报表样式等,如下图所示:
2.1.4 设置过滤
设计好参数、报表后,接下来要添加过滤来实现控件筛选联动。正常情况下过滤条件只需要设置参数值等于当前值即可,但因为目前日期数据的格式和控件值的格式不匹配,所以我们需要通过公式来将控件值格式进行转化,从而使得二者匹配。如下图所示:
双击C2单元格,添加过滤,过滤条件为:
小于或等于公式F(x):replace($Endtime, "-", "")
大于或等于公式F(x):replace($Starttime, "-", "")
其中使用 replace 截取拼接字符串,将控件值日期中的“-”转化为空,即将 2020-11-24 形式的日期转化为 20201124 的格式,这样就使得控件值格式和数据的格式一致,从而能够实现数据筛选。
2.1.5 效果预览
保存模板,点击「分页预览」,PC 端效果如下图所示:
APP 及 H5 效果如下图所示:
2.2 年月形式的日期筛选
年月形式的日期筛选,如下图所示:
2.2.1 准备数据
新建内置数据集,准备数据,如下图所示,可以看到数据集中订购日期数据为“2020/01”类型的字符串。
2.2.2 定义参数
1)定义用来过滤筛选的参数,这里定义了一个模板参数,如下图所示:
2)给定义的参数绑定参数控件,即在参数面板中加入控件,选定对应类型的控件。如下图所示:
2.2.3 设计报表
将数据集字段拖入报表,写入表头,设计报表样式等,如下图所示:
2.2.4 设置过滤
设计好参数、报表后,接下来要添加过滤来实现控件筛选联动。正常情况下过滤条件只需要设置参数值等于当前值即可,但因为目前日期数据的格式和控件值的格式不匹配,所以我们需要通过公式来将控件值格式进行转化,从而使得二者匹配。如下图所示:
双击 C2 单元格,添加过滤,过滤条件为:等于公式F(x):replace(left($订购月份,7),"-","/")
其中使用 replace、left 截取拼接字符串,将控件值日期中的“-”转化为“/”,即将 2020-11 形式的日期转化为 2020/11的格式,这样就使得控件值格式和数据的格式一致,从而能够实现数据筛选。
2.2.5 效果预览
保存模板,点击「分页预览」,PC 端效果如下图所示:
APP 及 H5 效果如下图所示: