是否可以使用 JavaScript 在 CRM 的 OOB 查找对话框窗口中获取视图的名称或 ID



有没有办法在CRM的OOB查找窗口中获取"查找"视图的名称或ID。

让我解释一下情况。我在按钮上有一个查找对话框窗口。单击按钮时,将打开此窗口。默认情况下,视图仅显示筛选的记录,因为我在 URL 中使用了筛选条件。

但是当我更改视图中的"外观"时,它会显示相同的过滤结果,这是不正确的。 如何实施。 这是我的代码;

var url = serverurl + "/_controls/lookup/lookupinfo.aspx?AllowFilterOff=0&DefaultType=" + Xrm.Internal.getEntityCode('p15_inquiries') + "&DisableQuickFind=0&DisableViewPicker=0&IsInlineMultiLookup=0&IsTypeUnresolved=1&LookupStyle=multi&ShowNewButton=1&ShowPropButton=1&browse=false&currentObjectType=10017&currentid=%7b" + bookingId + "%7d&dType=1&isRegardingFieldPopulated=false&mrsh=false&objecttypes=" + Xrm.Internal.getEntityCode('p15_inquiries') + "";
var someFetchXml = '<filter type="and"><condition attribute="p15_contactinquiriesid" operator="eq" value="' + contactId +'"/></filter>';
var filter = "&customFilter=" + CrmEncodeDecode.CrmUrlEncode(CrmEncodeDecode.CrmUrlEncode(someFetchXml)) + "&customFilterTypes=";
url = url + filter;
var dialogwindow = new parent.Mscrm.CrmDialog(Mscrm.CrmUri.create(url), window, 550, 550);
dialogwindow.setCallbackReference(function (result){
});
dialogwindow.show();

你正在做不支持的事情。您可能知道 - 不建议这样做。

此外,您想要实现的不是全局预期行为 - 我们始终希望跨视图坚持使用应用的过滤器。此外,我们无法连接"查找"视图下拉列表的onChange事件来识别和删除应用的过滤器。如果你的要求是独一无二的 - 那么建议开发你自己的HTML Web资源来模仿查找窗口并实现逻辑。否则,确定必要性并在单击自定义按钮和过滤器之前做出决定,并在此基础上添加过滤器。

顺便说一句,查找自定义已经发展了很多,CRM 版本也是如此 - 你仍然停留在 2011 年?我们可以做addPreSearchaddCustomFilter来调整过滤器。但仍然无法onChange查找弹出窗口中的下拉列表进行更改。阅读更多

我没有CRM 2011进行验证 - 但您应该尝试addCustomView选项。

Xrm.Page.getControl(primContactFieldName).addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true);

参考

最新更新