筛选记录
说明
筛选符合条件的记录
语法
表达式.Condition(Filters,FilterOp)
表达式:RecordRange
参数
参数名 | 是否必需 | 类型 | 描述 |
---|---|---|---|
Filters | 是 | Filter[] | 筛选数据的条件组, 条件组里每个Filter,可以包含多个筛选条件 |
FilterOp | 否 | "And"/"Or" | 筛选数据条件组之间的关系,是同时满足还是只需要满足一条,默认值为And |
Filter数据结构:
参数名 | 是否必需 | 类型 | 描述 |
---|---|---|---|
Criterias | 是 | Criteria[] | 筛选条件项组 |
Op | 否 | "And"/"Or" | 筛选条件项组之间的关系,是同时满足还是只需要满足一条,默认值为And |
Criteria 中筛选规则(大小写不敏感):
枚举值 | 描述 |
---|---|
Equals | 等于 |
NotEqu | 不等于 |
Greater | 大于 |
GreaterEqu | 大等于 |
Less | 小于 |
LessEqu | 小等于 |
GreaterEquAndLessEqu | 介于(取等) |
LessOrGreater | 不介于(不取等) |
BeginWith | 开头是 |
EndWith | 结尾是 |
Contains | 包含 |
NotContains | 不包含 |
Intersected | 指定值 |
Empty | 为空 |
NotEmpty | 不为空 |
各筛选规则独立地限制了values数组内最多允许填写的元素数,当values内元素数超过阈值时,该筛选规则将失效。“为空、不为空”不允许填写元素;“介于”允许最多填写2个元素;“指定值”允许填写65535个元素;其他规则允许最多填写1个元素 values[]数组内的元素为字符串时,表示文本匹配。目前还支持对日期进行动态筛选,此时values[]内的元素需以结构体的形式给出:
const dateValue = {"dynamicType": "lastMonth","type": "DynamicSimple"}
Criteria("@日期", "Equals", [dateValue])
上述示例对应的筛选条件为“等于上一个月”。 要使用日期动态筛选,values[]内的结构体需要指定"type": "DynamicSimple",当"op"为"equals"时,"dynamicType"可以为如下的值(大小写不敏感):
枚举值 | 描述 |
---|---|
today | 今天 |
yesterday | 昨天 |
tomorrow | 明天 |
last7Days | 最近7天 |
last30Days | 最近30天 |
thisWeek | 本周 |
lastWeek | 上周 |
nextWeek | 下周 |
thisMonth | 本月 |
lastMonth | 上月 |
nextMonth | 次月 |
当"op"为"greater"或"less"时,"dynamicType"只能是昨天、今天或明天。
对不同字段类型,values会有不同的用法 联系人字段:
// value是一个结构体,指定type为 Contact, value 为用户id
const dateValue = {"type":"Contact", value:"user id"}
单/多选项字段:
// value是一个结构体,指定type为 SelectItem, value 为选项的ID
const dateValue = {"type":"SelectItem", value:"B"}
返回值
RecordRange
浏览器环境示例
javascript
async function example() {
await instance.ready();
const app = instance.Application;
// 创建筛选条件criteria
const Criteria = app.Criteria
const criterias = []
criterias.push(await Criteria("@名称", "Intersected", ["1"]))
// 创建筛选列表filters
const filters = []
const filter = {Criterias: criterias, Op: "AND"}
filters.push(filter)
// 筛选记录
const res = await app.ActiveSheet.Views(1).RecordRange.Condition(filters, "AND")
console.log(res)
// 操作记录,返回第一个筛选结果的记录ID
await res.Item(1).Id
// 删除记录
await res.Item(1).Delete()
}
脚本编辑器 示例
javascript
function main() {
// 创建筛选条件criteria
const critera1 = Criteria("@名称", "Intersected", ["1", "999", "aaaa"])
const critera2 = Criteria("@数量", "Equals", ["1"])
const criterias = []
criterias.push(critera1)
criterias.push(critera2)
// 创建filters
const filters = []
const filter = { Criterias: criterias, Op: "OR" }
filters.push(filter)
const res = Application.ActiveSheet.Views(1).RecordRange.Condition(filters, "AND")
console.log(res.Value)
}
main()