AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2013, 21:28   #1  
kalina is offline
kalina
Участник
MCBMSS
 
25 / 16 (1) ++
Регистрация: 12.07.2011
Адрес: Израиль
Тоже столкнулся с проблемой изменения обычного лукапа в мульти.
Сразу скажу, что проверял в IE10 и Chrome для СРМ 2011 на ролапе 13.

Я пытался изменить обычный лукап на мульти, в котором можно выбрать несколько записей одного типа.
Но у меня проблема была в том, что такого кода...
Код:
document.getElementById("someentitynameid").setAttribute("lookupstyle", "multi");
...хватало только для визуальной имитации мульти лукапа:
  • onChange срабатывал только для первого выбранного значения
  • getValue давал только одно значение
  • если лукап был пустым, то onChange не срабатывал, а getValue давал NULL
Одним словом было понятно, что лукап остался single.

В моем случае не понадобилось ничего вроде этого (ниже), т.к. не нужно да и не помогает и ничего не дает:
Код:
document.getElementById("someentitynameid").setAttribute("lookuptypes", "10063");
document.getElementById("someentitynameid").setAttribute("lookuptypenames", "someentityname:10063:Someentityname");
document.getElementById("someentitynameid").setAttribute("lookuptypeIcons", "/_imgs/ico_18_customEntity.gif");
document.getElementById("someentitynameid").setAttribute("defaulttype", "10063");
После многочасового реверсинжиниринга Майкрософтовского кода (не без помощи Konstantin Katsovich, за что ему огромное спасибо), я нашел переменную, которая получает значение для каждого лукапа на форме во время загрузки формы:
  • "single" = 1
  • "multi" = 2
  • "subject" = 3 (без понятия, для какого случая)
Когда закрывается окно выбора для лукапа, есть проверка этой переменной, и если у вас в лукапе много значений (это они умеют проверить, не смотря на то, что getValue дает только одно значение или NULL), а она не равна 2, то извините...

Решение:
к вышеупомянутой строчке, добавить еще одну:
Код:
document.getElementById("someentitynameid").setAttribute("lookupstyle", "multi");
Xrm.Page.getAttribute("someentitynameid")._attribute.$1a_2 = 2;
Если кому интересно, переменная находится в обьекте Mscrm.LookupAttribute.prototype, а получает значение в функции initializeFromDomElement. Все это находится в файле: CRMFolderPath\CRMWeb\_static\_forms\Form.js

Конечно, это total unsupport, но работает.
Если кто знает более поддерживамое решение, прошу поделиться

Последний раз редактировалось kalina; 18.10.2013 в 21:30.
Старый 19.10.2013, 01:43   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от kalina Посмотреть сообщение
Если кто знает более поддерживамое решение, прошу поделиться
Поддерживаемого (supported) решения для решения этой задачи без разработки своих вебресурсов без DOM инъекций - попросту нет.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Теги
crossbrowsing, lookup, multi, rollup 13, кроссбаузерность, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Leon's CRM Musings: Setting Multi-Level Categories Against a Record Codelessly Blog bot Dynamics CRM: Blogs 0 26.01.2012 19:12
К чему примотать multi-select lookup Tony Green Dynamics CRM: Разработка 1 20.08.2010 15:32
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05
mscrmblog: Mini Preview Window for Contact Lookup Field Blog bot Dynamics CRM: Blogs 0 10.03.2010 01:05
Jim Wang: CRM Filtered Lookup Multi Blog bot Dynamics CRM: Blogs 0 06.08.2009 06:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:00.