最新历史版本 :其他格式的日期形式筛选数据 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

「日期控件」筛选日期数据时,常见的日期类型如2020-01-01可以进行筛选,但有些场景下客户的数据源非日期类型,而是一些其他格式的日期字符串,如20200101、2020/05等,这种字符串形式的日期数据不能和「日期控件」的筛选值进行匹配,从而无法实现筛选效果。

那这种类型的日期数据,如果想要筛选查询,该如何实现呢?

1.2 实现思路

通过公式,将字符串形式的日期数据转化成能和「日期控件」值匹配的格式,通过过滤实现筛选。如下图所示:

2. 示例编辑

2.1 年月日形式的日期筛选

年月日形式的日期筛选,如下图所示:

1606203712669019.gif

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 端效果如下图所示:

1606203712669019.gif

APP 及 H5 效果如下图所示:

2023-01-31_16-15-36.gif

2.2 年月形式的日期筛选

年月形式的日期筛选,如下图所示:

1606203816954148.gif

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 端效果如下图所示:

1606203816954148.gif

APP 及 H5 效果如下图所示:


2023-01-31_16-29-26.gif

3. 模板下载编辑

已完成模板可参见%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\TimeScale\年月形式的日期筛选.cpt

%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\TimeScale\年月日形式的日期筛选.cpt

点击可下载模板:年月形式的日期筛选.cpt    年月日形式的日期筛选 .cpt