如何更改父表单查找值

时间:2013-04-24 13:42:51

标签: javascript dynamics-crm-2011 crm

当我从现有机会中打开潜在客户,然后只更改名字或姓氏的值时,更改也反映在机会实体中的潜在客户查询中,因此我在联系实体的onsave中编写了一个脚本。

function getname()
{
    var lookupValue = new Array();
    lookupValue[0] = new Object();
    lookupValue[0].id = Xrm.Page.data.entity.getId();
    lookupValue[0].name = Xrm.Page.data.entity.attributes.get("firstname").getValue()+" " +Xrm.Page.data.entity.attributes.get("lastname").getValue();
    alert(Xrm.Page.data.entity.attributes.get("firstname").getValue()+" " +Xrm.Page.data.entity.attributes.get("lastname").getValue());
    lookupValue[0].entityType = "Contact";
    window.top.opener.Xrm.Page.data.entity.attributes.get("customerid").setValue(lookupValue);
            window.top.opener.Xrm.Page.data.entity.attributes.get("name").setValue(Xrm.Page.data.entity.attributes.get("firstname").getValue());

}

如果你查看上面的代码,那么你会发现我设置了父查找的值,但它没有工作我已经改变了文本框主题(名称)的机会值,所以它对我有用,但我不知道为什么它在查找中没有用。

如果查看上面的代码,你会发现一行window.top.opener.Xrm.Page.data.entity.attributes.get(“name”)。setValue(Xrm.Page.data.entity.attributes。获得( “名字”)的getValue())。而且这个工作完美但它在查找中没有用

2 个答案:

答案 0 :(得分:2)

序言:此类代码不受支持。

如果你想让它工作,你需要只改变name属性,因为identityType不会改变(至少你所描述的行为)

最好还是在开场白内是否有字段时添加一个检查:

function getname()
{
if (window.top.opener.Xrm.Page.getAttribute("customerid") != null)
{
    var previous = window.top.opener.Xrm.Page.getAttribute("customerid").getValue();
    previous[0].name = Xrm.Page.getAttribute("firstname").getValue() + " " + Xrm.Page.getAttribute("lastname").getValue();
    window.top.opener.Xrm.Page.getAttribute("customerid").setValue(previous);
}
}

答案 1 :(得分:0)

查找对象将始终显示相关实体的主要属性。你不能改变它。因此,尝试设置该值不起作用我并不感到惊讶。它永远不会。

你想要实现的目标是什么?为什么要更改查找中的显示以不表示它链接到的记录?