本帖最后由 goo 于 2025-7-4 18:09 编辑
供参考
// 获取表格
/**
* [{序号:1,设备:a,保管人:甲,判定结果:NG},{序号:2,设备:b,保管人:甲,判定结果:NG},{序号:3,设备:c,保管人:甲,判定结果:OK}]
*/
var table1 = Forguncy.Page.getListView("table1");
table1.selectAllRows();
var list1 = table1.getSelectedRowsData();
// 按保管人分组,只收集判定结果为NG的设备
/**[{保管人:甲,设备:[a,b]}] */
var list2 = [];
var tempMap = {}; // 临时映射表用于分组
list1.forEach(function(item) {
// 只处理判定结果为NG的记录
if (item.判定结果 === "NG") {
if (!tempMap[item.保管人]) {
// 如果该保管人不存在于映射表中,则创建新条目
tempMap[item.保管人] = {
保管人: item.保管人,
设备: [item.设备]
};
} else {
// 如果已存在,则添加到设备数组
tempMap[item.保管人].设备.push(item.设备);
}
}
});
// 将映射表转换为数组
list2 = Object.values(tempMap);
// 将结果添加到table2
var table2 = Forguncy.Page.getListView("table2");
table2.deleteAllRows(); // 先清空表格
list2.forEach(item => {
table2.addNewRow(item);
});
|