Skip to content

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
});

查询后的数据处理可以实现类似数据清理和审计的功能