crm2013 - как отфильтровать поиск клиента по определенному объекту

Я ищу решение, чтобы добавить определенный фильтр в новый быстрый поиск.

проблема связана с типом поиска customerid, поскольку при этом использовались типы «клиент», которые включали учетную запись и контакт в один и тот же поиск (это новый поиск по нескольким объектам)

я попадаю в эту учетную запись поиска и контакт и хочу отфильтровать только контакты, которые относятся к определенной учетной записи.

Я пытаюсь изменить его другим способом - изменить объект html, но безуспешно.

вот данные html для конкретного поиска.

lookuptypesnames и createpermissiondictionary содержат учетную запись и контакт, если я изменю lookuptype=1, который даст мне все контакты.

затем я ищу собственный способ изменить поиск идентификатора клиента для определенного объекта (только для контакта), не хочу использовать функцию jquery.


person b3ni    schedule 05.12.2013    source источник


Ответы (3)


Это то, что я сделал, чтобы настроить поиск клиентов для отображения только записей контактов.

function Form_OnLoad()
...
preFilterLookup();
..
}


function preFilterLookup() {
Xrm.Page.getControl("customerid").addPreSearch(addLookupFilter);
}

function addLookupFilter() {

document.getElementById("customerid_i").setAttribute("lookuptypenames", "contact:2:Contact");
document.getElementById("customerid_i").setAttribute("lookuptypes", "2");

var account = Xrm.Page.getAttribute("aux_account").getValue();

if (account != null) {

    var filter = "<filter type='and'>" + "<condition attribute='parentcustomerid' operator='eq' value='" + account[0].id + "' /></filter>";
    Xrm.Page.getControl("customerid").addCustomFilter(filter);
}
person Jorge    schedule 02.09.2014

Вы должны использовать setLookupTypes.

Что-то вроде этого:

 var owner = Xrm.Page.getAttribute("ownerid").getLookupDataAttribute();        
 owner.setLookupTypes(["systemuser"]); 
person Serjanya    schedule 23.08.2019

если управление учетной записью является поиском, тогда ваш fetchXml должен быть

fetchXml = "<filter type='and'><condition attribute='parentcustumerid' operator='eq' uitype='contact' value='" + account[0].id + "' /></filter>";

person user3046705    schedule 05.12.2013
comment
спасибо за ваш ответ, но это не настоящая проблема, потому что addpresearch не запускает функцию для добавления фильтра. - person b3ni; 05.12.2013
comment
В функции addLookupFilter вы кэшируете значение учетной записи, и если это значение не равно нулю, вы фильтруете поиск учетных записей с помощью кэшированного значения. Возможно, кэшированное значение учетной записи равно нулю, поэтому функция addCustomFilter не запускается. - person user3046705; 06.12.2013
comment
Я нахожу способ фильтровать поиск! тот же фильтр для поисковых окон поиска работает для нового кадра. но моя проблема заключается в том, чтобы отфильтровать при поиске идентификатора клиента только контакт без учетной записи. - person b3ni; 06.12.2013
comment
в объекте html я меняю lookuptypes = 1 -> просто контакт и все работает, но я не хочу использовать jquery для изменения объекта html. Я предпочитаю собственный способ фильтрации идентификатора клиента только для объекта контакта. - person b3ni; 06.12.2013
comment
Тогда я неправильно понял. addCustomFilter принимает в качестве необязательного второго аргумента имя объекта для фильтрации на случай, если в поиске будет более одного. Попробуйте передать контакт или контакт. - person user3046705; 06.12.2013