Skip to content

数据过滤器

概述

数据过滤器将数据表字段函数表达式进行逻辑关系组合,实现组合式的数据过滤。数据过滤器等同传统代码开发时sql语句where后的条件组合。

平台使用树形嵌套结构方式实现条件组合的可视化配置,每一层均可单独设置该层的条件间的组合过滤方式。字段筛选条件涉及对单个字段进行比较,可以使用原始值、表达式、函数计算SQL拼装时=后的数据。

在过滤器被使用时,平台底层会基于配置动态生成对应的数据筛选SQL。

过滤器可在数据表数据过滤和排序组合过滤条件自动化 等场景中使用

基础概念与使用

示例模型:

数据填报 (dataModelReport)

标识符字段类型
name名称单行文本
detail填报明细多行文本
user填报人用户选择
dept填报部门部门选择
date填报日期日期
status填报状态列表选择

满足所有条件

当前层下的所有条件必须同时满足,平台底层在拼装SQL时会使用and来连接多个条件。

满足所有条件

text
select * from data_model_report dmr where 1=1
    and 
    (
            dmr."status" = 'submit'
        and
            dmr."date"='2024-09-13 00:00:00'
    )

满足任一条件

当前层下的满足任一条件必须,平台底层在拼装SQL时会使用or来连接多个条件。

满足任一条件

text
select * from data_model_report dmr where 1=1
    and 
    (
            dmr."status" = 'reviewed'
        or
            dmr."status" = 'replied'
    )

原始值

当前条件与一个固定不变的值比较。

原始值

text
select * from data_model_report dmr where 1=1
    and 
    (
            dmr."status" = 'submit'
    )

表达式

当前条件与一个变化的的值比较。比较的值,会在平台拼装SQL时基上下文使用表达式引擎运行表达式得到。

函数

当前条件与一个变化的的值比较。

平台会在拼装SQL时执行以下步骤。

  • 1、将输入框的内容使用表达式引擎运算
  • 2、将表达式引擎运算结果作为比较的值拼装到SQL中,交由数据库比较

注意事项

在拼写表达式运算结果过程中,平台会使用计算值直接拼写。如果表达式运算结果是字符串或其他非数据库可识别数据类型,需要增加数据转换处理。

允许空值

当条件比较值为空时的处理方式。选择允许空值是,平台在拼装SQL时,如果比较值为空,则不拼写该比较。

函数表达式

函数表达式:比较的过程完全由用户设定,该方式支持用户使用本表一个、多个字段同时进行比较或使用其他表数据的数据比较。

对于这种的设置,平台在拼装SQL时执行以下步骤。

  • 1、将输入框的内容使用表达式引擎运算
  • 2、将表达式引擎运算结果作为比较的值拼装到SQL中,交由数据库比较

示例:管理员可以看到所有填报记录,如果不是管理员尽可查看自己的填报记录