Appearance
3.4 数据过滤和排序
3.4.1 数据过滤
默认情况下视图会加载所有的数据,可以通过设置只展示满足以下条件的数据
的过滤器来限制本视图展示的数据范围。例如任务管理中只展示未完成的数据,需要在过滤器中过滤出任务状态等于未开始
和进行中
的数据。
3.4.2 返回以下字段
对于一些对数据安全性高的系统,您可以设置返回的字段列表
来控制服务器返回到用户端的列表数据内容。系统默认情况下会根据返回以下字段的设置返回数据字段到用户端;您也可以使用使用表达式设置返回的字段列表 控制项通过表达式动态设置返回的数据字段列表。
使用表达式设置返回的字段列表:
表达式的执行是由服务端来运行
- 直接使用表达式简单的控制返回
- 使用表达式调用脚本或自动化更加灵活的控制数据返回
假设一张员工薪资表(staffSalary) 结构如下:
字段 | 类型 | 说明 |
---|---|---|
name | 单行文本 | 称呼 |
mobileNo | 单行文本 | 联系电话 |
salary | 小数 | 薪资 |
依据设定不能返回薪资
字段
- 使用表达式计算如下
javascript
${['name','mobileNo']}
- 使用表达式计算加入逻辑运算(比如成员角色包含hr时才展示薪资)
javascript
${
Array.containsAny(user.roleList, ['hr'])
?
['name', 'mobileNo', 'salary']
:
['name', 'mobileNo']
}
3.4.3 数据排序
系统默认情况下会根据数据的创建先后顺序排序,通过设置默认排序字段可修改此行为,允许通过以下字段排序
选项设置页面中用户可以使用的排序字段
3.4.4 查询数据的前处理和后处理
3.4.4.1 查询前的数据处理
如果设置了查询数据前调用自动化
,在查询视图数据时会首先调用设置的自动化,传递给自动化参数为TableQueryEvent,如果自动化或者脚本中抛出异常,将会终止查询动作。
自动化中使用设置自动化返回值
的步骤设置的返回值类型是TableQueryBeforeResult
TableQueryBeforeResult结构如下:
名称 | 说明 |
---|---|
mode | 过滤条件合并模式追加 append 替换 replace |
filter | 过滤条件,类型InformatFilter |
mode可选项
模式 | 说明 |
---|---|
append | 追加新的过滤条件 ,默认 |
replace | 用新的过滤条件替换原过滤条件 |
例子:动态加上过滤条件:年龄大于20岁
javascript
automatic.setReturnValue({
'mode': 'append',
'filter': {
'conditionList': [
{ 'fieldId': 'age', 'opt': 'gt', 'value': 20 }
]
}
});
3.4.4.2 查询后的数据处理
如果设置了查询数据后调用自动化
,在数据查询成功后调用设置的自动化或者脚本,传递给自动化或者脚本的参数为TableQueryEvent,自动化或者脚本程序可以返回一个数组类型的对象,用来修改查询结果。如果返回值为空或者不是数组类型,系统会使用查询的结果返回。
调用自动化设置返回值类型是TableQueryAfterResult
TableQueryAfterResult结构如下:
名称 | 说明 |
---|---|
list | 新的查询记录列表 |
count | 新的查询记录总数 |
示例:
javascript
automatic.setReturnValue({
'list': [
{ 'id': '1', 'name': '自动化返回值', 'age': 20 }
],
'count': 10
});
查询后的数据处理可以实现类似数据清理和审计的功能