1.前言
在前序教程中,我们已经掌握了动态查询的基础配置。但实际业务中,往往需要参数为空时查询所有、有值时精确匹配的灵活查询。本教程将讲解如何配置实现这一功能。
2.操作步骤
(1)克隆模板
云表支持模板的克隆,在实现本教程的内容之前,可以先将之前设计好的《采购单汇总查询》模板克隆一遍,再进行设计
克隆出的模板与原模板的设计相同

(2)修改过滤条件
①空的概念
在修改过滤条件之前,我们需要先明白一个概念,空
如果是有编程基础的同学就能明白,这是空与空字符串的区别,如果您没有接触过编程,可以看下面的例子,理解一下空的概念
下面看一个生活中的示例:一杯牛奶与一个空杯子
一个杯子中装有牛奶,这时可以理解为杯子中是有内容的,这里可以对应为写了内容为“供应商A”
一个空杯子,杯子中什么都没有,但是杯子还在,这里可以对应为文本空"",也就是虽然里面没有内容,但是杯子还在,那么这是一组空字符串
如果连杯子都没有了,那么在这里我们可以对应它为常量.空,也就是NULL,什么都没有

②过滤条件编写
了解了空的概念,接下来需要梳理编写过滤条件的逻辑
首先,在没有值时需要查询出所有数据,那么这里的没有值,包含常量.空与文本空
其次,有值时需要精确查询,那么这里需要使用"="
最后是中间的连接符号,在这里要分开梳理
- 参数有值与参数无值,这两个条件是满足其一即可,则需要使用“或者”进行连接,也就是:自定义参数.供应商 = 采购订单.供应商 或者 自定义参数.供应商="" 或者 自定义参数.供应商=常量.空
- 当多个参数一起查询时,则多个参数需要同时满足,则需要使用“并且”进行连接,也就是:自定义参数.开始日期<=采购订单.采购日期 并且 自定义参数.结束日期>=采购订单.采购日期
多个参数时,可以使用括号,将不同参数的情况分开,括号中的先运行
根据以上梳理内容,可以写出过滤条件:
(自定义参数.开始日期<=采购订单.采购日期 或者 自定义参数.开始日期=常量.空) 并且 (自定义参数.结束日期>=采购订单.采购日期 或者 自定义参数.结束日期=常量.空) 并且 (自定义参数.供应商 = 采购订单.供应商 或者 自定义参数.供应商="" 或者 自定义参数.供应商=常量.空)
如下图所示:

(3)使用效果
当三个参数皆为空值时,会查询出所有数据

当参数有值时,进行精确查询
