不用公式完成取值(数字化):告别卡顿

脚本

关注:右上角红、蓝、灰、紫色的备注

第3行箭头左、右侧解释(=>)

箭头左侧:代表第2行的第2、3个字段;可以自定义字母个数英文逗号隔开

箭头右侧:代表第2行字段的各种运算「复杂的运算第3行描述给AIJ

代码

let Name = "数据表";
let Fields = ["金额", "数量", "单价"]; // 示例字段「第1个必须是取值的结果字段」
let customOperation = (b , c) => b * c; // 默认乘法操作,用户可以根据需要自定义{不包括第1个字段,箭头左侧}bcde字段和+=*/等运算(箭头右侧)

// 下面的不允许修改
Time.sleep(1000); // 由于要考虑到正常同步加载的时间,延时1000毫秒(1秒)后执行

// 获取数据表当前记录
// let sheetid_from = 1;
// let id_from = "T";
let sheetid_from = Context.argv.sheetId_from[0];
let id_from = Context.argv.id_from[0];
let rec_from = Application.Record.GetRecord({ SheetId: sheetid_from, RecordId: id_from });

// 遍历字段数组,从记录中取得每个字段的值
let Obj = {}; // 初始化对象用于存储字段值
Fields.forEach((field, index) => {
  Obj[field] = rec_from.fields[field]; // 假设记录中的字段名与Fields数组中的名称相匹配
});

// 准备参数数组
let params = Fields.slice(1).map(field => Obj[field]);//排除Fields第1个字段的值(金额的下标是0:Fields[0]])

// 计算金额字段的值,使用 customOperation 函数处理所有参数
let result = params.reduce(customOperation);

Obj[Fields[0]] = result; // 将计算结果赋值给金额字段

// 准备更新的字段
let fieldsToUpdate = {
  [Fields[0]]: Obj[Fields[0]] // 将计算后的金额值放入更新字段中
};

// 更新数据表记录
Application.Record.UpdateRecords({
  SheetId: sheetid_from,
  Records: [{
    id: id_from,
    fields: fieldsToUpdate, // 使用检查后存在的字段进行更新
  }],
});

自动化

第1步 修改记录触发

指定字段:选择的字段是触发自动化触发的条件1

筛选字段:选择的字段不为空是触发自动化触发的条件2

第2步

填:脚本入参,选:公式设置脚本

复制下面的到入参:
{
"sheetId_from":,
"id_from":
}
添加数据表、记录的ID

最后一行没有逗号

点+冒号后面添加:

第一行添加第一步的数据表

第二行添加第一步的记录ID

🔔

要点:

表达符号都是英文状态下录入

大括号{}

双引号""

冒号:

逗号,

第1个双引号中有1个大写字母

本技巧链接:

不用公式完成取值(数字化):告别卡顿

更多技巧:

✅【金日大全】WPS多维表格技巧 ---人人可添加应用(小技巧)

投票告别卡顿专辑,对你有帮助吗(3选1)
  • 非常有帮助 1
  • 有帮助 0
  • 我习惯卡顿了 1
2人参与 截止时间:2024/12/31 13:11:33
辽宁省
浏览 111
1
1
分享
1 +1
4
1 +1
全部评论 4
 
coco
coco

@WPS多维表格产品官

· 广东省
回复
 
浅梦星河
今日大全 是WPS插件?
· 吉林省
回复
 
浅梦星河
这是什么意思? 只用智能化表格完成?
· 吉林省
回复
光华
记录多了会卡。直接输出结果,数值化,避免卡顿。很简单,可以体验。
· 辽宁省
回复