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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2013, 02:38   #1  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
Настраиваемый LookUp
Доброго времени суток.
У меня есть кастомный LookUp, в котором пользователь может выбрать значения 2 разных сущностей

lookuptypeIcons = '/_imgs/ico_16_2.gif:/_imgs/ico_16_8.gif';
lookuptypenames = 'contact:2:Contact,systemuser:8:User';
lookuptypes = '2,8';
document.getElementById("requiredattendees").setAttribute("lookuptypes", lookuptypes);
document.getElementById("requiredattendees").setAttribute("lookuptypenames", lookuptypenames);
document.getElementById("requiredattendees").setAttribute("lookuptypeIcons", lookuptypeIcons);
Xrm.Page.getControl("requiredattendees").addCustomView(viewId, 'contact', viewDisplayName, fetchXml, layoutXml, false);
Xrm.Page.getControl("requiredattendees").addCustomView(viewId, 'systemuser', viewDisplayName, fetchXml1, layoutXml1, false);


И есть 2 кнопки на форме, которые должны вызывать этот LookUp по-разному. Хотелось бы, после нажатия одной кнопки значение по умолчанию Look for было Contact, а второй - User. Подскажите, как это можно сделать?
Старый 30.05.2013, 10:48   #2  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
Цитата:
Сообщение от vasya-serega Посмотреть сообщение
Доброго времени суток.
У меня есть кастомный LookUp, в котором пользователь может выбрать значения 2 разных сущностей

lookuptypeIcons = '/_imgs/ico_16_2.gif:/_imgs/ico_16_8.gif';
lookuptypenames = 'contact:2:Contact,systemuser:8:User';
lookuptypes = '2,8';
document.getElementById("requiredattendees").setAttribute("lookuptypes", lookuptypes);
document.getElementById("requiredattendees").setAttribute("lookuptypenames", lookuptypenames);
document.getElementById("requiredattendees").setAttribute("lookuptypeIcons", lookuptypeIcons);
Xrm.Page.getControl("requiredattendees").addCustomView(viewId, 'contact', viewDisplayName, fetchXml, layoutXml, false);
Xrm.Page.getControl("requiredattendees").addCustomView(viewId, 'systemuser', viewDisplayName, fetchXml1, layoutXml1, false);


И есть 2 кнопки на форме, которые должны вызывать этот LookUp по-разному. Хотелось бы, после нажатия одной кнопки значение по умолчанию Look for было Contact, а второй - User. Подскажите, как это можно сделать?
Добрый день

Установка атрибута defaulttype в состояние 2 или 8 перед открытием окна локапа решит Вашу проблему.
__________________
Читайте SDK!!!
За это сообщение автора поблагодарили: vasya-serega (1).
Старый 31.05.2013, 01:59   #3  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
Спасибо, помогло!
Старый 06.06.2013, 01:28   #4  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
При тестировании обнаружилась проблема - при вызове функции при нажатии кнопки на формах разных записей логика установки значений по умолчанию не работает

if(customerNotUser==true)
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 2);
Xrm.Page.getControl("requiredattendees").addCustomView(contactViewId , 'contact', viewContactName, fetchContactXml , layoutContactXml, false);
Xrm.Page.getControl("requiredattendees").setDefaultView(contactViewId );
}
else
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 8);
Xrm.Page.getControl("requiredattendees").addCustomView(userViewId, 'systemuser', viewUserName, fetchUserXml, layoutUserXml, false);
Xrm.Page.getControl("requiredattendees").setDefaultView(userViewId);
}


Посмотрел в отладчике, значения всех переменных вроде нормальные... В чем может быть причина?
Старый 06.06.2013, 03:48   #5  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
Точнее где-то работает, а где-то нет. И не понятно логика бага
Старый 06.06.2013, 10:16   #6  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Если вы используете addCustomView то у вас создается "Настраиваемые представления" а в лукапах с двумя сущностями это вызывает ошибку при смене сущности.
Уже эту ошибку описывал тут
Старый 06.06.2013, 21:12   #7  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
spectr, вы пишите, что решить проблему можно с помощью создания дополнительных кастомных представлений для lead, account, systemuser. Для systemuser я как раз создаю, переписывание кода на

Xrm.Page.getControl("requiredattendees").addCustomView(contactViewId , 'contact', viewContactName, fetchContactXml , layoutContactXml, false);
Xrm.Page.getControl("requiredattendees").addCustomView(userViewId, 'systemuser', viewUserName, fetchUserXml, layoutUserXml, false);
if(customerNotUser==true)
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 2);
Xrm.Page.getControl("requiredattendees").setDefaultView(contactViewId );
}
else
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 8);
Xrm.Page.getControl("requiredattendees").setDefaultView(userViewId);
}

результата не дало. На некоторых записях вью вместо контактов отображает пользователей.
Старый 10.06.2013, 10:55   #8  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Я бы сделал так :
На онлоад (или первое действие по кнопке, нужно контролировать чтобы создание было одно):
Код:
Xrm.Page.getControl("requiredattendees").addCustomView("{00000000-0000-0000-0000-000000000001}", 'contact', viewContactName, fetchContactXml , layoutContactXml, true);
Xrm.Page.getControl("requiredattendees").addCustomView("{00000000-0000-0000-0000-000000000002}", 'systemuser', viewUserName, fetchUserXml, layoutUserXml, true);
Выставление параметра true в конце, ставит эти представления по умолчанию в своих частях и они не меняются.

Действие на первую кнопку:
Код:
document.getElementById("requiredattendees").setAttribute("defaulttype", 2);
меняет набор каких представлений показывать и помним что у каждого набора уже стоит представление по умолчанию то что нужно, то есть ничего с представлениями делать не надо.

Кнопка два соответственно:
Код:
document.getElementById("requiredattendees").setAttribute("defaulttype", 8);
Старый 10.06.2013, 22:14   #9  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
Сроки поджимали, поэтому пришлось сделать немного грубовато и не совсем так, как хотелось.

if (customerNotUser)
{
lookuptypeIcons = '/_imgs/ico_16_2.gif:/_imgs/ico_16_8.gif';
lookuptypenames = 'contact:2:Contact,systemuser:8:User';
lookuptypes = '2';
}
else
{
lookuptypeIcons = '/_imgs/ico_16_8.gif:/_imgs/ico_16_2.gif';
lookuptypenames = 'systemuser:8:User,contact:2:Contact';
lookuptypes = '8';
}

document.getElementById("requiredattendees").setAttribute("lookuptypes", lookuptypes);
document.getElementById("requiredattendees").setAttribute("lookuptypenames", lookuptypenames);
document.getElementById("requiredattendees").setAttribute("lookuptypeIcons", lookuptypeIcons);

Xrm.Page.getControl("requiredattendees").addCustomView(contactViewId , 'contact', viewContactName, fetchContactXml , layoutContactXml, false);
Xrm.Page.getControl("requiredattendees").addCustomView(userViewId, 'systemuser', viewUserName, fetchUserXml, layoutUserXml, false);
if(customerNotUser)
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 2);
Xrm.Page.getControl("requiredattendees").setDefaultView(contactViewId );
}
else
{
document.getElementById("requiredattendees").setAttribute("defaulttype", 8);
Xrm.Page.getControl("requiredattendees").setDefaultView(userViewId);
}

Mscrm.Utilities.click(document.getElementById("requiredattendees"));

//А здесь берем, и присваиваем заново значения заново, причем все и сразу
lookuptypeIcons = '/_imgs/ico_16_2.gif:/_imgs/ico_16_8.gif';
lookuptypenames = 'contact:2:Contact,systemuser:8:User';
lookuptypes = '2,8';

document.getElementById("requiredattendees").setAttribute("lookuptypes", lookuptypes);
document.getElementById("requiredattendees").setAttribute("lookuptypenames", lookuptypenames);
document.getElementById("requiredattendees").setAttribute("lookuptypeIcons", lookuptypeIcons);


Если будет время, попробую ваш код. Приведенный выше, конечно, не ахти. Можно ссылку, если не трудно, где можно подробно почитать о параметрах addCustomView ?
Старый 10.06.2013, 22:41   #10  
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
Посмотрите тут - http://msdn.microsoft.com/en-us/libr..._addCustomView
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05
Мелкомягкий CRM: Отображение в Lookup’е произвольного поля вместо основного атрибута Blog bot Dynamics CRM: Blogs 3 26.04.2010 19:10
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
mscrm4ever: Displaying a lookup with related entity fields Blog bot Dynamics CRM: Blogs 0 19.03.2009 07:05

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

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

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