Можно ли получить имя или идентификатор представления в диалоговом окне поиска OOB в CRM, используя JavaScript - PullRequest
0 голосов
/ 02 октября 2019

Есть ли способ получить имя или идентификатор вида в окне просмотра в окне поиска OOB в CRM.

Позвольте мне объяснить ситуацию. У меня есть диалоговое окно поиска на кнопке. Когда кнопка нажата, это окно открывается. По умолчанию в представлении отображаются только отфильтрованные записи, поскольку я использовал критерии фильтрации в 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();

1 Ответ

0 голосов
/ 03 октября 2019

Вы делаете неподдерживаемые вещи. Как вы, возможно, знаете - это не рекомендуется.

Также то, чего вы хотели достичь, - это не глобальное предполагаемое поведение - мы всегда хотели придерживаться примененного фильтра в представлениях. Более того, мы не можем подключить событие onChange раскрывающегося списка «Просмотр», чтобы идентифицировать и удалить примененный фильтр. Если ваше требование уникально - рекомендуется разработать собственный веб-ресурс HTML для имитации окна поиска и реализации логики. В противном случае определите необходимость и примите решение, прежде чем нажимать пользовательскую кнопку, и фильтр будет добавлен на основании этого.

Кстати, настройки поиска сильно изменились, версии CRM тоже - все еще вы застряли в 2011 году? Мы можем сделать addPreSearch и addCustomFilter, чтобы настроить фильтр. Но все еще не может быть изменено onChange выпадающих в всплывающем окне поиска. Подробнее

У меня нет CRM 2011 для проверки, но вам следует попробовать addCustomView option.

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

Ссылка

...