Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=80&stc=1&d=1296211379)
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=100&stc=1&d=1296211379)
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Полезный Popup. Часть 2. Системная библиотека popup
Запись от Артем Enot Грунин размещена 30.03.2010 в 11:27
Теги java script, notifications, popup, unsupport
В своем прошлом посте я сделал некую попытку реализовать удобный графический интерфейс, упрощающий заполнение полей формы, данными из связанных записей. Пример изначально был ограничен конкретной задачей, которая приследовалась при разработке прототипа (ввод номеров телефонов на форму Звонка), однако позже пришло понимание, что библиотеку следует делать универсальной - под любые задачи. В идеале код должен принимать некоторые настройки, на основании которых отображать popup с возможными для конкретного поля опциями: нечто вроде CRM Lookup Preview, но полезный: не только показать данные, но и использовать! В процессе разработки я наткнулся на полезные системные классы, которые позволяют решить эту задачу "в первом приближении", чего в некоторых случаях вполне достаточно.
В каталоге сервера \CRMWeb\_static\_controls\PopupMenu находится полезная системная библиотека popupmenu.js. В частности она используется в ambiguous-лукапах (имеется несколько вариантов) и для генерации выпадающих меню. Использование:
Код можно вставить, например, на событие загрузки формы. Результат выполнения выглядит так:
![Название: popupmenu.JPG
Просмотров: 556
Размер: 12.6 Кб](//axforum.info/forums/blog_attachment.php?s=3e3041a9632f36f9048d5182863143fa&attachmentid=49&d=1269933824)
Синтаксис функций, я думаю, не должен вызывать вопросов. В обработчик так же передается event, поэтому если возникнет необходимость использовать одну функцию для некольких элементов меню, то вы можете вычислить порядковый номер выбранного элемента следующим образом:
Исходный код библиотеки небольшой и достаточно внятный. В случае необходимости в расширении вы легко сможете копировать его в свое решение и дополнить. В основном это может потребоваться для того, чтобы избавить себя от возни со стилями.
Разумеется использование системных функций - неподдержиаеммое решение. Используйте на свой страх и риск.
В каталоге сервера \CRMWeb\_static\_controls\PopupMenu находится полезная системная библиотека popupmenu.js. В частности она используется в ambiguous-лукапах (имеется несколько вариантов) и для генерации выпадающих меню. Использование:
Код:
// Обработчики событий меню _accTelClick = function() { alert("Телефон!"); } _contFaxClick = function() { alert("Факс!"); } _moreClick = function() { alert("Еще!"); } // Базовый объект popup var oPopupMenu = new PopupMenu(); // Заголовок 1 раздела меню oPopupMenu.AddNotification("Опции для организации", "/_imgs/ico_16_1.gif"); // Опция 1 oPopupMenu.AddMenuItem("Показать телефон", _accTelClick, 0, "/_imgs/ico_16_4210.gif"); // Разделитель oPopupMenu.AddSeperator(); // Заголовок 2 раздела меню oPopupMenu.AddNotification("Опции для контакта", "/_imgs/ico_16_2.gif"); // Опция 2 oPopupMenu.AddMenuItem("Показать факс", _contFaxClick, 0, "/_imgs/ico_18_4204.gif"); // Разделитель oPopupMenu.AddSeperator(); // Дополнительная сслыка oPopupMenu.AddMoreLink("Еще!", _moreClick, 0, "/_imgs/icn_help16.png"); // Отображение меню: oPopupMenu.Show(512, 384, null, null);
Синтаксис функций, я думаю, не должен вызывать вопросов. В обработчик так же передается event, поэтому если возникнет необходимость использовать одну функцию для некольких элементов меню, то вы можете вычислить порядковый номер выбранного элемента следующим образом:
Код:
_masterOnClick = function(oEvent) { var oMItem = oEvent.srcElement; while (oMItem.name != "menuItem") { oMItem = oMItem.parentElement; } var oMenuID = oMItem.menuID; // дальнейшая обработка события }
Разумеется использование системных функций - неподдержиаеммое решение. Используйте на свой страх и риск.
Всего комментариев 0