Dynamics crm 365快速创建表单获取父实体数据
Dynamics crm 365 quick create form get parent entity data
当我单击表单查找字段中的“新建”link 时,快速创建表单打开。
我需要获取父表单的值以预填充快速创建表单的某些字段。这不能用映射来完成(如本网站的一些帖子中所见),因为它必须只能在快速创建表单中工作。我如何在 javascript 中执行此操作?除了用localStorage没有别的办法吗?
编辑:
window.parent.Xrm.Page.getAttribute(attribute name).getValue()
无效
你有两个选择,在 js 中实现。
您可以在主窗体脚本中分配一个全局变量并在快速创建窗体中访问它。取决于版本,您可能需要管理 formContext
而不是 Xrm.Page
。 Read more
var setValsForQuickCreate = function(){
window.top.attributename = Xrm.Page.getAttribute("new_attributename").getValue();
}
var setValFromMainForm = function(){
Xrm.Page.getAttribute("new_attributename").setValue(window.top.attributename);
}
否则,您可以在表单加载时使用 Web api 查询,根据映射的父查找值过滤它并填写字段。您可以创建一个单独的 library/method 仅用于 QC 表单注册或仅检查它是否是快速创建表单并执行它。
当我单击表单查找字段中的“新建”link 时,快速创建表单打开。 我需要获取父表单的值以预填充快速创建表单的某些字段。这不能用映射来完成(如本网站的一些帖子中所见),因为它必须只能在快速创建表单中工作。我如何在 javascript 中执行此操作?除了用localStorage没有别的办法吗?
编辑:
window.parent.Xrm.Page.getAttribute(attribute name).getValue()
无效
你有两个选择,在 js 中实现。
您可以在主窗体脚本中分配一个全局变量并在快速创建窗体中访问它。取决于版本,您可能需要管理
formContext
而不是Xrm.Page
。 Read morevar setValsForQuickCreate = function(){ window.top.attributename = Xrm.Page.getAttribute("new_attributename").getValue(); } var setValFromMainForm = function(){ Xrm.Page.getAttribute("new_attributename").setValue(window.top.attributename); }
否则,您可以在表单加载时使用 Web api 查询,根据映射的父查找值过滤它并填写字段。您可以创建一个单独的 library/method 仅用于 QC 表单注册或仅检查它是否是快速创建表单并执行它。