阅读本文之前,首先阅读 公式 - 数据引用和数据筛选
本文是进一步表示数据集的配置

1 需要

数据集的筛选条件是我们想通过对数据集的条件设定而直接实现对我们所需要数据的筛选,对不需要的数据进行屏蔽不显示,只显示我们所需要的数据。
例如,我们有一个客户显示页面,如果我们不需要显示所有的户,现在我们只需要显示重要程度为”高”的客户,那么我们就可以通过设置数据集来实现。如图1所示。再比如显示用户信息表,我们不想要显示所有用户,我们想只显示女性用户等等,这些我们通过下面的数据集设置筛选条件的例子来帮助大家学习这部分的内容。
单筛选
image.png

1.1 基础设置

以客户信息表作为例子向大家介绍简单筛选的过程。介绍数据集设置筛选之前,首先要给大家介绍筛选条件填写的位置:数据集中的条件参数为填写筛选条件的位置,且要求为表达式的形式。
现在如果对数据集的条件参数中没有添加任何的筛选条件,那么浏览列表时就会显示所有数据信息
image.png

1.2 参数 - 筛选条件

如果只想要显示性别为女的用户信息,那么接下来我们就要通过数据集的设置来实现。如图4所示,我们打开数据集的页面,然后在数据集的condition的位置写上我们筛选的条件:table.用户.性别==Dict.性别.女

image.png

通过上面设置好数据集的筛选条件后进行保存,浏览列表页面,可以看到仅显示女性用户

image.png

1.3 其他参数

image.png

1.3.1 排序参数

排序参数是一个数组,首先按照第一个元素排序,接下来按照第二个元素排序。如果是逆序,那么在数据项前面加 - 。
如上图的``[table.用户.部门,-table.用户.id]
表示先按照部门排序,再按照id的逆序排序。

[table.用户.部门.主管.id,table.用户.部门]
表示先按照部门主管的id排序,再按照部门排序。

1.3.2 从第几条开始和最多取几条,以及分页控件。

如上图所示表示从第2条开始,最多取10条。
如果不配置表示从第1条开始,不限制取得数据。
页面中如果有对应的分页控件(分页控件配置的数据集就是这个数据集),那么筛选结果将收到分页控件影响。
例如分页控件是第5页,每页显示20条,那么筛选结果将是从101到120条记录。

2.筛选条件

2.1 基于当前用户的筛选

  • 当前用户相当部门的用户

有的时候,筛选条件还会与当前用户身份有关,例如设置条件参数表达式为:table.用户.部门==me.部门
意思是筛选出和当前用户(me)的部门相同的用户。

  • 2.2 当前用户管辖的部门的用户

table.用户.部门.主管==me.id

2.2 并且组合 && 多个条件

并且的组合,使用 && 连接。 表示条件1,条件2都满足。

例如 性别为女,并且部门名称是 财务部 的用户。
table.用户.性别==Dict.性别.女 && table.用户.部门.名称==”财务部”

更多的条件,可以用&& 继续组合。
例如 性别为女,并且部门名称是 财务部,并且角色名称是 “normal”的用户
table.用户.性别==Dict.性别.女 && table.用户.部门.名称==”财务部” && table.用户.角色.名称==”normal”

2.3 或组合 || 多个条件

或者的组合,使用 || 连接。 表示条件1,条件2有一个满足就行。

例如 性别为女的用户或者部门名称是 财务部 的用户。
table.用户.性别==Dict.性别.女 || table.用户.部门.名称==”财务部”

2.4 使用括号,表示并且和或者的复杂组合

括号内部的会先组合判断,之后再和括号外面的组合判断。
例如(条件1 && 条件2 )|| (条件3 && 条件4)
最外层的 || 表示 左右括号的内容有一个满足就可以了。
也就是如果一个用户满足 条件1并且满足条件2,那么是可以的。如果满足条件3并且满足条件4,也是可以的。
但如果一个用户满足条件1并且条件3,但不满足条件2且不满足条件4,那么这个用户是不符合判断的。

例如 财务部女用户 或者 业务部的角色为normal的用户。
(table.用户.性别==Dict.性别.女 && table.用户.部门.名称==”财务部” ) || ( table.用户.部门.名称==”业务部” && table.用户.角色.名称==”normal”)

3.数据集的构造公式。

我们点击高级,可以看到数据集的构造公式。
image.png
也就是刚才对数据集的参数的配置。

所以之前的配置本质都是在写公式。数据集的筛选公式是
table.表名.find(条件,排序)

可以直接在单元格里写查询公式。
例如在A1格写:table.用户.find(table.用户.性别==Dict.性别.男)
然后在A2格写:A2.select(A2.id) 。B2格写A2.名称,C2格写 A2.角色 …..