如何在Zoho Creator中批量将报表选中记录插入表单子表单?
在Zoho Creator中实现从选中申请单批量填充采购订单子表单
1. 配置Form A报表的「创建采购订单」按钮
- 进入Form A的报表编辑界面,添加自定义动作按钮,触发条件设为「选中记录时」。
2. 编写Deluge脚本实现批量数据提取与填充
核心逻辑是获取选中的申请单记录,提取子表单中的产品和数量数据,整理成采购订单子表单需要的格式后,跳转至采购订单新建页面并预填充数据。以下是完整脚本示例:
// 获取报表中选中的Form A记录 selected_applications = getSelectedRecords(); // 初始化采购订单子表单数据数组 po_subform_entries = []; // 遍历每条选中的申请单记录 for each app_rec in selected_applications { // 取出当前申请单的子表单数据(替换为你Form A的子表单字段名) app_items = app_rec.Material_Request_Items; // 遍历申请单的每个物料条目 for each item in app_items { // 可选:合并相同产品的数量(若不需要合并,直接跳过这段检查逻辑) existing_entry_index = -1; for each po_entry in po_subform_entries { if po_entry.Product == item.Product { existing_entry_index = index; break; } } if existing_entry_index != -1 { // 累加相同产品的数量 po_subform_entries[existing_entry_index].Quantity = po_subform_entries[existing_entry_index].Quantity + item.Quantity; } else { // 添加新的物料条目到采购订单子表单数组 po_subform_entries.add({ "Product": item.Product, "Quantity": item.Quantity }); } } } // 生成采购订单新建页面的预填充链接并跳转(替换为你的应用链接名和Form B字段名) openUrl( zoho.creator.createRecordUrl( "Your_App_Link_Name", // 替换为你的应用链接名称 "Purchase_Order_Form", // 替换为Form B的表单名称 {"PO_Material_Items": po_subform_entries} // 替换为Form B的子表单字段名 ), "_self" );
关键说明
- 替换脚本中的字段名:将
Material_Request_Items(Form A子表单字段)、Purchase_Order_Form(Form B表单名)、PO_Material_Items(Form B子表单字段)替换为你实际使用的字段/表单名称。 - 数量合并逻辑:如果不需要合并相同产品的数量,直接删除「合并相同产品的数量」这段代码,直接将每个条目添加到数组即可。
- 字段匹配:确保Form A和Form B中的「产品」字段类型一致(比如都是关联字段或相同选项的下拉框),否则会出现填充失败。
测试验证
- 在Form A报表中选中多条已审批的申请单记录
- 点击「创建采购订单」按钮,检查跳转后的Form B页面是否正确填充子表单数据
- 验证数量计算(如果开启了合并逻辑)是否准确
内容的提问来源于stack exchange,提问作者Darshana Mohanan
相关产品推荐
相关产品推荐

