Да, у вас могут быть сложные запросы.Создайте запрос, используя FetchXml.Хорошо, здесь JS, который я использовал.Я объясню.У меня есть пользовательский поиск, который я фильтрую, используя пользовательское представление, основанное на значении, выбранном в другом поиске, называемом областями.
Создайте функцию javascript ниже в форме, в которой вы хотите эту функцию.
fetchXmlгде вы создаете запрос.Как видите, я запрашиваю сущность системного пользователя, затем перехожу на сущность AreaUserLink (присоединение к tes_user = systemuserid) и затем фильтрую по полю tes_area = значению, вставленному из поля формы.
layoutXml - это место, где вы определяете макет экрана, который отображается, когда человек нажимает на поиск и переходит к экрану сведений поиска.Вам нужно будет изменить их, чтобы они соответствовали вашему новому сценарию.
viewId - это просто произвольный GUID, который вам нужно предоставить, чтобы CRM мог его сохранить.Он должен быть уникальным.
В приведенном ниже коде ...
function AttachReviewByCustomView() {
var areaLookup = Xrm.Page.getAttribute('tes_area').getValue();
if (areaLookup == null) {
return;
}
var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>" +
"<entity name='systemuser'><attribute name='fullname' /><attribute name='systemuserid' />" +
"<order attribute='fullname' descending='false' />" +
"<filter type='and'>" +
"<condition attribute='isdisabled' value='0' operator='eq'/></filter>" +
"<link-entity name='tes_userarealink' from='tes_user' to='systemuserid' alias='ak'>" +
"<filter type='and'>" +
"<condition attribute='tes_area' operator='eq' uitype='tes_area' value='" + areaLookup[0].id + "' />" +
"</filter></link-entity></entity></fetch>";
var layoutXml = "<grid name='resultset' object='1' jump='systemuserid' select='1' icon='1' preview='1'>" +
"<row name='result' id='systemuserid'>" +
"<cell name='fullname' width='150' />" +
"</row></grid>";
var viewId = "{00000000-0000-0000-0000-000000000003}";
var viewDisplayName = "Active Users In Selected User-Area";
Xrm.Page.getControl("tes_operative").addCustomView(viewId, "systemuser", viewDisplayName, fetchXml, layoutXml, true);
}
Наконец, вам нужно позвонить из двух мест.1. Когда форма загружается.2. Когда человек выбирает значение из выпадающего поля, которое используется в переменной fetchXml для фильтрации.
Надеюсь, это поможет.