获取自定义字段上的完整地址文本

本文将通过三个步骤,帮助您在任何 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 并刷新页面,以使更改生效。

现在,当在我们的自定义链接字段中选择一个地址时,完整地址将显示在我们的自定义只读字段中,如下图所示: