关于多维表格的两个问题求教

  1. 设置一个住宿情况一览表,这个表有个对应的收集表单,怎么实现收集表单录入信息后,自动从住宿情况一览表里查找对应的人,修改相关的信息,而不是重新填加一行新的内容。

  1. 在住宿一览表里,每个宿舍4个人,每个宿舍设置一个宿舍长,这个地方使用选项选择,三个否,一个是。怎么实现在有一个是的情况下,宿舍其他人不能选择是,只能选择否,如果更换宿舍长,需要先把原来的变成否,在选择是。之前写了一个脚本,运行成功,但是选择是或者否没有任何反应,还是可以随便选择。

请各位大神帮忙指点一下,谢谢!

function main() {

try {

const event = $event;

const modifiedRecord = event.record;

// 调试日志 - 实际环境中可删除

console.log("触发事件:", JSON.stringify(event));

// 只处理"是否是宿舍长"字段被修改的情况

if (!event.modifiedFields || !event.modifiedFields.includes("是否是宿舍长")) {

console.log("未修改宿舍长字段,跳过检查");

return;

}

const dorm = modifiedRecord.fields["楼栋宿舍号"];

const isLeader = modifiedRecord.fields["是否是宿舍长"] === "是";

// 只检查设置为宿舍长且有宿舍号的情况

if (!isLeader || !dorm) {

console.log("未设置为宿舍长或无宿舍号,跳过检查");

return;

}

// 获取当前表的所有记录

const sheetId = modifiedRecord.sheetId;

const allRecords = Application.Record.GetRecords({

SheetId: sheetId

});

// 查找同一宿舍的其他宿舍长

const otherLeaders = allRecords.records.filter(record =>

record._id !== modifiedRecord._id &&

record.fields["楼栋宿舍号"] === dorm &&

record.fields["是否是宿舍长"] === "是"

);

// 如果存在其他宿舍长,阻止保存并提示

if (otherLeaders.length > 0) {

const leaderNames = otherLeaders.map(r => r.fields["姓名"]).join(", ");

const errorMsg = `宿舍 ${dorm} 已有宿舍长: ${leaderNames}。请先将他们的宿舍长设为"否",再设置当前记录。`;

console.error(errorMsg);

throw new Error(errorMsg);

}

console.log("宿舍长检查通过");

} catch (error) {

console.error("脚本执行错误:", error.message);

throw error; // 重新抛出以确保WPS显示错误

}

}

安徽省
浏览 152
收藏
1
分享
1 +1
3
+1
全部评论 3
 
问题2 建议上传样张 (按你的描述,似乎用【复选框】字段就能满足需要】)
· 广东省
回复
 
问题1 可以新建一个查询视图,通过查询视图进行数据的更新
· 广东省
回复
问题1:查询视图怎么更新数据呢,查询视图不是只能查询?还是说查询到以后在列表中进行修改?目前我采用的是自动化流程,但是不知为什么,选择的是新增后进行修改,但每次还是只在列表中新增了一行数据。 问题2:复选框我试了一下,但是怎么限定每个宿舍只能选择一个是呢 感谢回复
· 安徽省
回复