2013-12-05 2 views
1

Я ищу решение по добавлению определенного фильтра в новый поиск quickfind.crm2013 - как фильтровать поиск клиента по определенному объекту

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

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

Я пробую еще один способ изменить, это изменить объект html, но безуспешно.

here is the html data of the specific lookup.

в lookuptypesnames и createpermissiondictionary содержит счета и контакт, если я изменить LookupType = 1, что даст мне anly контакт.

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

ответ

0

если контроль счета является поиск, то ваш fetchXml должен быть

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

+0

thks для вашего ответаd, но это не проблема, проблема в том, что addpresearch не запускает функцию для добавления фильтра. – b3ni

+0

В функции addLookupFilter вы кешируете значение учетной записи, и если это значение не равно null, вы фильтруете учетные записи Lookup с кешированным значением. Возможно, кешированное значение учетной записи равно null, поэтому причина не в том, что функция addCustomFilter не запущена. – user3046705

+0

Я нашел способ фильтровать поиск! тот же фильтр для поисковых окон поиска работает для нового фрейма. , но моя проблема заключается в том, чтобы отфильтровать поиск клиентов только в контакте без учетной записи. – b3ni

1

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

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); 
}