Appearance
数据过滤器
概述
数据过滤器将数据表字段
或函数表达式
进行逻辑关系组合,实现组合式的数据过滤。数据过滤器等同传统代码开发时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中,交由
数据库
比较
示例:管理员可以看到所有填报记录,如果不是管理员尽可查看自己的填报记录