Dynamics crm 使用N:N关系中的相关数据动态CRM筛选子网格

Dynamics crm 使用N:N关系中的相关数据动态CRM筛选子网格,dynamics-crm,crm,dynamics-crm-online,Dynamics Crm,Crm,Dynamics Crm Online,我有一个名为“项目”的实体,它与N:1关系的“账户”相关 我在“项目”和“联系人”之间有一个N:N关系。因此,对于每个项目,我都可以添加许多联系人 现在我有了一个子网格,它显示了项目的联系人列表,并添加了现有联系人 问题是:当我使用搜索查找查找联系人时,我会从系统中获取所有联系人 我需要的是:仅从与项目相关的帐户中获取联系人 换句话说:对于每个我想从与项目相关的帐户添加许多联系人的项目,您需要向查找控件添加自定义筛选器 var fetchXml = "<filter type='or'&g

我有一个名为“项目”的实体,它与N:1关系的“账户”相关

我在“项目”和“联系人”之间有一个N:N关系。因此,对于每个项目,我都可以添加许多联系人

现在我有了一个子网格,它显示了项目的联系人列表,并添加了现有联系人

问题是:当我使用搜索查找查找联系人时,我会从系统中获取所有联系人

我需要的是:仅从与项目相关的帐户中获取联系人


换句话说:对于每个我想从与项目相关的帐户添加许多联系人的项目,您需要向查找控件添加自定义筛选器

var fetchXml = "<filter type='or'>"; //or 'and' depending if you want more conditions...
fetchXml += "<condition attribute='new_contactAccountField' operator='eq' value='" + yourAccountid + "'/>"; //new_contactAccountField is the field on your contact that links it somehow to the account...
fetchXml += '</filter>';

Xrm.Page.getControl('new_yourContactLookupField').addPreSearch(function () {
    Xrm.Page.getControl('new_yourContactLookupField').addCustomFilter(fetchXml);
});
var fetchXml=”“//或者“和”取决于你是否想要更多的条件。。。
fetchXml+=“”//new_contactAccountField是您的联系人上以某种方式将其链接到帐户的字段。。。
fetchXml+='';
Xrm.Page.getControl('new_yourContactLookupField').addPreSearch(函数(){
Xrm.Page.getControl('new_yourContactLookupField').addCustomFilter(fetchXml);
});

您可以使用以下内容筛选子网格查找:

this.navigateTo=函数(){
var account=getAccountId();
//为查找选项定义数据
var查找选项=
{
defaultEntityType:“项目”,
entityTypes:[“项目”],
allowMultiSelect:true,
搜索文本:“
};
如果(帐户!==null){
lookupOptions.filters=[
{
filterXml:``,
entityLogicalName:“项目”
}
];
}
//根据查找选项获取帐户记录
实用工具。lookupObjects(lookupOptions)。然后(
职能(项目){
console.log(项目);
},
函数(错误){
console.log(错误);
}
);
}

不要忘记使用Ribbon Workbench并将事件侦听器添加到“添加现有按钮”。单击“添加”后的此导航不会添加实体,而只会提供所需的列表,这让我立即感到不安。不幸的是,我没有向子网格添加新实体的代码。

不可能开箱即用,请使用自定义筛选器预筛选记录-->