在我的场景中,我有一个名为“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
}
答案 0 :(得分:0)
您的抓取XML看起来对我来说是正确的。当您设置子网格时,您设置了&#34;记录&#34; =&#34;所有记录类型&#34;在数据源部分?如果没有,则子网格会向fetchxml附加一个条件,以便它只返回与您指定的特定关系相关的记录。