Кастомизация
11
Сен
0

Переключатель на панели инструментов формы 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 элементов: Параметры — Администрирование — Системные параметры — вкладка Настройка — секция Настраеваемые меню и панели инструментов – добавьте те клиенты, в которых хотите показывать кастомные кнопки и прочие элементы!


Комментарии (0)

*

code