1. 前言
在前面的学习中,我们已经学习了查询的几种方式,固定查询、简单的动态查询、模糊查询,这些都是只有一个过滤条件的查询,那么当我们需要查询的条件有多个的时候,要如何查询呢?

多参数查询
在学习多参数的查询之前,我们必须先理解并且与或者。这两个连接是在多参数查询中必不可少的。
2. 并且与或者
并且与或者用于多参数之间的连接,不同的参数可以使用不同的条件,那么并且与或者之间有什么区别呢?下表中展示了并且与或者二者之间的区别
并且 (AND) | 或者 (OR) | |
---|---|---|
逻辑核心 | 严格筛选:必须全部满足 | 宽松筛选:满足任意一个即可 |
生活例子 | 参加比赛:年龄≥18 并且 有健康证明 | 进游乐场:有门票 或者 会员卡 |
结果数量 | 通常更少(条件叠加) | 通常更多(条件并行) |
2.1 并且
在有多个过滤条件时,若他们之间以“并且”连接,则所过滤出来的数据,是这所有过滤条件的交集
2.1.1 场景举例
比如在“采购查询”中,需要查询一段日期区间内的采购数据,就需要使用并且连接。
在一段日期区间内的采购数据,首先需要两个参数,一个是开始日期,一个是结束日期,需要过滤出“采购订单”中的[采购日期]在[开始日期]与[结束日期]之间的数据,就需要同时满足“采购订单.采购日期 >= 自定义参数.开始日期”与“采购订单.采购日期 <= 自定义参数.结束日期 ”
那么在这个场景下,就需要使用“并且”连接两个过滤条件:“采购订单.采购日期 >= 自定义参数.开始日期 并且 采购订单.采购日期 <= 自定义参数.结束日期 ”
2.2.2 使用方式
1)打开“采购查询”这一查询模板的设计页面,切换到“过滤条件页签”,添加两个参数,分别为开始日期和结束日期,将数据类型切换为日期类型

添加参数
2)添加过滤条件,在这个案例中,需要添加过滤条件:“采购订单.采购日期 >= 自定义参数.开始日期 并且 采购订单.采购日期 <= 自定义参数.结束日期 ”,但是在这个采购查询中,我们在上一节设置的模糊查询条件也在,也可以同样用“并且”连接,使他满足三个查询条件一起查询

编辑过滤条件
注意:每一个数据项与连接词之间,都必须要有空格!!!
3)设计效果
设计好之后点击【保存】,进入查询页面,输入这三个参数,点击【查询】即可看到设计效果,筛选出的数据为满足这三个条件的数据

设计效果
2.2 或者
了解完了“并且”的概念以及用法,接下来我们看一下“或者”
在有多个过滤条件时,若他们之间以“或者”连接,则所过滤出来的数据,是这所有过滤条件的并集
2.2.1 场景举例
同样使用“采购查询”这一模板来看。
在上面的步骤中,我们已经实现了多参数的查询,但是在上面的设计中,这些参数都是必须要填写的,那么有没有办法能让这些参数允许为空呢?
允许参数为空,且参数有值时要正常过滤,那么就是参数为空也要正常查询,参数有值也能正常查询,这两条件满足其一即可进行过滤,使用“或者”连接这两个条件
以供应商这一过滤条件举例,使用“或者”连接供应商为空与供应商模糊查询条件
写法为“采购订单.供应商 形如 自定义参数.供应商 或者 自定义参数.供应商 = "" ”(自定义参数.供应商为文本格式参数,所以要使用文本空进行判断)
开始日期与结束日期都能采用相同的写法:“采购订单.采购日期 >= 自定义参数.开始日期 或者 自定义参数.开始日期 = 常量.空”;“采购订单.采购日期 <= 自定义参数.结束日期 或者 自定义参数.结束日期 = 常量.空 ”(判断日期为空需使用常量.空,因为日期类型的字段不属于文本类型字段)
2.2.2 使用方式
1)打开“采购查询”设计页面,切换到“过滤条件”页签,编辑查询条件

编辑过滤条件
2)查询效果
完成设计后点击【保存】,进入查询页面,可以看到下面几种查询效果
①三个参数都不填写,可以查询出所有记录

不填写参数
②只填写部分参数,则可以查询出满足部分参数的数据

只填写开始日期
3. 多参数查询
学习了并且与或者的用法之后,我们就可以使用这两个连接方式来进行多参数的查询了。
3.1查询当月数据
查询当月的采购数据
1)设计“当月采购查询”模板,先新建查询模板

2)按照之前学习的内容添加好数据源与数据列

3)添加过滤条件,使用并且连接的方式过滤出当月的数据

月份值相同
4)保存设计后,查看设计效果

3.2 入库明细查询
使用开始日期、结束日期、供应商、仓库与商品,查询入库明细

查询入库明细的过滤条件
在设计系统的过程中,使用或者与并且进行多参数查询的场景还有很多,在初级文档中就不一一举例了,只要掌握好或者与并且的使用方式,再多参数的查询都不是问题