CRM 2013使用fetchxml刷新子网格

时间:2014-11-24 19:01:53

标签: fetchxml

在我的场景中,我有一个名为“new_relations”的新实体,其中包含2个字段(account1和account2),这两个字段都是对帐户的查找。 在我的帐户表单中,我想显示一个网格,其中包含“new_relations”实体中存在的任何2个查找中的当前帐户的任何记录。 我创建了帐户A和帐户B;使用new_relations.account1 = account A和new_relations.account2 = account B在new_relations中创建了1条记录。 因此,当我打开帐户A或帐户B时,我希望看到在new_relations中创建的记录。

我有以下代码,遗憾的是它只在我的子网格中显示Account的A表单中的记录... 有人可以帮忙吗?

function FilterRelacao(){

 var relacoes = document.getElementById("Relacoes");
 var account = Xrm.Page.data.entity.getId();
 var accountname = Xrm.Page.data.entity.attributes.get("name").getValue();

 if(relacoes==null){ 
    setTimeout(function () { FilterRelacao(); }, 2000);  
    return;
 }

 var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical'        distinct='false'>" +
 "<entity name='new_relations'>" +
 "<attribute name='new_type' />" +
 "<attribute name='new_accountid1' />" +
 "<attribute name='new_accountid2' />" +
 "<attribute name='new_relationsid' />" +
 "<order attribute='new_accountid1' descending='true' />" +
 "<filter type='and'>" +
 "<condition attribute='statecode' operator='eq' value='0' />" +
 "<filter type='or'>" +
 "<condition attribute='new_accountid1' operator='eq' uitype='account' uiname='" + accountname+ "' value='" + account + "' />" +
 "<condition attribute='new_accountid2' operator='eq' uitype='account' uiname='" + accountname + "' value='" + account + "' />" +
 "</filter></filter>" +
 "</entity>" +
 "</fetch>";

 relacoes.control.SetParameter("fetchXml", fetchXml); //set the fetch xml to the sub grid  
 relacoes.control.SetParameter("effectiveFetchXml", fetchXml); //set the fetch xml to the sub grid  
 relacoes.control.Refresh(); //refresh the sub grid using the new fetch xml 

 }

1 个答案:

答案 0 :(得分:0)

您的抓取XML看起来对我来说是正确的。当您设置子网格时,您设置了&#34;记录&#34; =&#34;所有记录类型&#34;在数据源部分?如果没有,则子网格会向fetchxml附加一个条件,以便它只返回与您指定的特定关系相关的记录。