Переключатель на панели инструментов формы MS CRM
Сегодня рассмотрим небольшой пример создания переключателя на панели инструментов формы MS CRM. А делать его мы будем из обычной кнопки, расположенной на панели инструментов формы:
- Для начала добавьте на панель инструментов формы простую кнопку. Для этого выгрузите ISV.config и отредактируйте xml-файл, добавив на паменль инструментов какой-либо формы новую кнопку (я буду показывать на примере формы Бизнес-партнеров):
<Button Icon="/_imgs/ico_18_role_g.gif" JavaScript="OnDoSomethingClick();"> <Titles> <Title LCID="1049" Text="Вкл" /> </Titles> </Button>
- Импортируйте xml-файл обратно в CRM.
- На событии onload повесьте следующий код и измените в функции OnDoSomethingClick измените действия которые будут происходить при изменении состояний переключателя (в данном случаи я просто меняю текст в поле Факс):
function OnDoSomethingClick() { if(OnToolbarButtonClick()) { // Код для включенного состояния crmForm.all.fax.DataValue = "Включено!"; } else { // Код для выключенного состояния crmForm.all.fax.DataValue = "Выключено!"; } } function OnToolbarButtonClick() { //Получаем текущий активный HTML-элемент var button = document.activeElement; //Ищем LI-элемент (контейнер menuitem, т.е. контейнер для пунктов меню) while( button.tagName != 'LI' ) button = button.parentElement; /* Toolbar Image – Вам нужно удалить все ссылки на этот объект, если кнопка не содержит изображения. */ var btnImg = button.childNodes[0].childNodes[0].childNodes[0]; //Текст кнопки var btnTxt = button.childNodes[0].childNodes[0].childNodes[1]; //Сохраняем состояние прямо на кнопке, как атрибут переключателя button.toggle = !((button.toggle == 'undefined')? false:button.toggle); if( button.toggle ) { //Заменяем в состоянии Выкл текст btnTxt.innerText = 'Выкл'; btnImg.src = '/_imgs/ico_18_role_x.gif'; } else { // Заменяем на изначальный текст и изображение btnTxt.innerText = 'Вкл'; btnImg.src = '/_imgs/ico_18_role_g.gif'; } return button.toggle; } this.OnDoSomethingClick = OnDoSomethingClick;
Пробуем:
П.С. если у Вас не появилась новая кнопа на панели инструментов, то включите отображение ISV элементов: Параметры — Администрирование — Системные параметры — вкладка Настройка — секция Настраеваемые меню и панели инструментов – добавьте те клиенты, в которых хотите показывать кастомные кнопки и прочие элементы!