Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Dynamics crm 365快速创建表单获取父实体数据_Javascript_Dynamics Crm_Microsoft Dynamics_Dynamics 365 - Fatal编程技术网

Javascript Dynamics crm 365快速创建表单获取父实体数据

Javascript Dynamics crm 365快速创建表单获取父实体数据,javascript,dynamics-crm,microsoft-dynamics,dynamics-365,Javascript,Dynamics Crm,Microsoft Dynamics,Dynamics 365,当我在表单的查找字段中单击“新建”链接时,快速创建表单将打开。 我需要获取父窗体的值,以预先填充快速创建窗体的一些字段。映射无法做到这一点(如本站点的一些帖子所示),因为它只能在快速创建表单中工作。如何在javascript中实现这一点?除了使用本地存储,没有其他方法了 编辑: 不起作用要在js中实现这一点,您有两个选择 在主窗体脚本中,您可以在全局变量中赋值,并在快速创建窗体中访问它。根据版本的不同,您可能需要管理formContext,而不是Xrm.Page 否则,您可以在表单加载时使用w

当我在表单的查找字段中单击“新建”链接时,快速创建表单将打开。 我需要获取父窗体的值,以预先填充快速创建窗体的一些字段。映射无法做到这一点(如本站点的一些帖子所示),因为它只能在快速创建表单中工作。如何在javascript中实现这一点?除了使用本地存储,没有其他方法了

编辑:


不起作用

要在js中实现这一点,您有两个选择

  • 在主窗体脚本中,您可以在全局变量中赋值,并在快速创建窗体中访问它。根据版本的不同,您可能需要管理
    formContext
    ,而不是
    Xrm.Page

  • 否则,您可以在表单加载时使用web api进行查询,根据映射的父查找值对其进行过滤并填充字段。您可以创建单独的库/方法,以便仅在QC表单中注册,或者仅在快速创建表单并执行时进行检查


  • 尝试
    window.top
    这将为您提供数据示例
    window.top.sourceentityname
    如果需要,请告诉我helps@sean是否能够使其工作?您可以回答您的解决方案并关闭此问题。:)Ok@Arun VinothI将我的解决方案用于本地存储,但存在问题,因为我无法始终重置变量的值,因此如果从另一个实体打开contact quick create表单,它将获取本地存储中的值,这是一个错误。我尝试了您提出的第一个解决方案,但window.top也是一个全局变量,很难控制,从另一个记录快速创建联系人时,问题也是一样的。关于您的第二个解决方案,您能告诉我如何在快速创建表单中获取父级ID,以便在web api中使用它吗@阿伦Vinoth@Sean这应该会有所帮助-当通过关系映射从父窗体内的子网格打开父窗体时,应该已经在窗体中填充了父查找。非常感谢,下面是查找父记录Id的另一种方法:@但不幸的是,无法在快速创建表单中获取父数据,因为父表单处于新模式@阿伦维诺
    window.parent.Xrm.Page.getAttribute(attribute name).getValue()
    
     var setValsForQuickCreate = function(){
       window.top.attributename = Xrm.Page.getAttribute("new_attributename").getValue();
     }
    
     var setValFromMainForm = function(){
       Xrm.Page.getAttribute("new_attributename").setValue(window.top.attributename);
     }