本文将通过三个步骤,帮助您在任何 DocType 上添加一个用于获取完整地址的自定义字段。
步骤 1:在所需 DocType 上进行外观自定义
首先,我们需要在 DocType 上添加两个新字段来获取地址:
a) 一个类型为“链接”的字段,指向我们的地址主数据
b) 一个类型为“只读”的字段,用于显示完整地址
请记下您创建的新字段的变量名。此信息将在后续步骤中用到。
有关在 DocType 上创建自定义字段的信息,您可以参考以下链接 – ERPNext 中的自定义字段
完成此步骤后,您应该在所选 DocType 上看到两个新字段,如下图所示:
步骤 2:添加客户端脚本以从地址主数据获取完整地址
在搜索栏中搜索“客户端脚本”,然后创建一个新的客户端脚本。选择需要获取地址的所需 DocType。
在脚本部分粘贴以下客户端脚本:
frappe.ui.form.on("DocType Name", "address_link_field", function(frm, cdt, cdn) { if(frm.doc.address_link_field){ return frm.call({ method: "frappe.contacts.doctype.address.address.get_address_display", args: { "address_dict": frm.doc.address_link_field }, callback: function(r) { if(r.message) frm.set_value("full_address_field", r.message); } }); } else{ frm.set_value("full_address_field", ""); }});
这里,我们需要根据您的使用场景替换以下内容:
a) 将“DocType 名称”替换为需要获取地址的 DocType 的名称。例如:销售发票、采购订单等。
b) 将“addresslinkfield”替换为我们在步骤 1 中创建的自定义链接字段的变量名
c) 将“fulladdressfield”替换为我们在步骤 1 中创建的自定义只读字段的变量名
完成此操作后,您将得到一个如下所示的客户端脚本:
步骤 3:保存、启用并测试客户端脚本
根据您的使用场景修改客户端脚本后,我们可以保存它,并通过勾选“已启用”复选框来启用它。
前往所需的 DocType 并刷新页面,以使更改生效。
现在,当在我们的自定义链接字段中选择一个地址时,完整地址将显示在我们的自定义只读字段中,如下图所示: