如何在Zoho Creator中用Deluge脚本添加未选中项到TraineeMul
实现Trainees_Present未选中项添加到TraineeMul的Deluge脚本修改方案
要实现将多选组件Trainees_Present中未被选中的项添加到TraineeMul的需求,核心是先获取组件的所有可选项,再排除已选中的项,最终将剩余项注入目标组件。以下是修改后的完整脚本及说明:
修改后的Deluge脚本
// 获取Trainees_Present组件的所有可选项 allTrainees = input.Trainees_Present:ui.getalloptions(); // 用集合存储已选中的实习生编号,提升存在性判断效率 selectedInterns = Set(); for each r in input.Trainees_Present { selectedInterns.add(r.Intern_No); } // 收集未被选中的实习生编号 absentInterns = List(); for each trainee in allTrainees { // 筛选出不在选中集合中的项 if !selectedInterns.contains(trainee.value) { absentInterns.add(trainee.value); } } // 更新Trainees_Absent字段为未选中项的字符串形式 input.Trainees_Absent = absentInterns.tostring(); // 将未选中项添加到TraineeMul多选组件 input.TraineeMul:ui.add(absentInterns);
关键改动说明
- 获取全部可选项:通过
input.Trainees_Present:ui.getalloptions()获取组件的所有候选条目,每个条目包含label(显示文本)和value(对应Intern_No)两个属性 - 选中项去重存储:使用
Set类型存储已选中的Intern_No,相比列表,集合的contains方法能更快判断元素是否存在 - 筛选未选中项:遍历所有可选项,将不在选中集合中的
value(即Intern_No)收集到目标列表 - 保持原有赋值逻辑:后续的
Trainees_Absent字段赋值和TraineeMul组件添加操作,仅替换为未选中项的列表,保持与原脚本的输出逻辑一致
内容的提问来源于stack exchange,提问作者21PCA117 SANTHOSH A
相关产品推荐
相关产品推荐

