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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2009, 15:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,626 / 848 (80) +++++++
Регистрация: 28.10.2006
Мелкомягкий CRM: Убираем кнопки с панели инструментов связанных объектов
Источник: http://mmcrm.ru/?p=605
==============

Передвигаясь по связанным объектам (на форме основного объекта) Вы могли заметить такие интересные кнопочки, вроде «Создать объект бла-бла-бла» или «Добавить существующие объект бла-бла-бла». Иногда они не нужны или что еще хуже, то их удаление это требование политики безопасности компании. И как всегда, стандартными средствами настройки их не удалить!

Но это еще полбеды. Проблема в том, что в момент загрузки формы этих связанных объектов нет на форме! Они подгружаются в iFrame динамически при щелчке на соответствующей ссылке (расположено на левой навигационной панели формы). Таким образом воспользоваться простым способом скрытия объектов (как мы обычно скрываем поля на форме) нам не удастся, т.к. мы тупо не можем к ним обратиться!

Какой выход? Выход простой (точнее сложный, но это уже совсем другая история ) – переопределить событие щелчка по ссылке на навигационной панели и таким образом отследить момент срабатывания js-функции CRM, отвечающую за подгрузку представления связанного объекта. После чего обратиться к уже появившемся кнопкам и скрыть их!

В первую очередь на онлоад формы добавьте следующий скрипт:

function HideViewButtons(Iframe, buttonTitles) { if (Iframe != null ) { Iframe.onreadystatechange = function HideTitledButtons() { if (Iframe.readyState == 'complete') { var iFrame = frames[window.event.srcElement.id]; var liElements = iFrame.document.getElementsByTagName('li'); for (var j = 0; j < buttonTitles.length; j++) { for (var i = 0; i < liElements.length; i++) { if (liElements[i].getAttribute('title') == buttonTitles[j]) { liElements[i].style.display = 'none'; liElements[i].style.visibility = 'hidden'; break; } } } } } }} function HideAssociatedViewButtons(type, loadAreaId, buttonTitles) { if (type== 1 || type== 3) { var navElement = document.getElementById('nav' + loadAreaId); } else { var navElement = document.getElementById('nav_' + loadAreaId); } if (navElement != null) { navElement.onclick = function LoadAreaOverride() { if (type == 1) { loadArea('area' + loadAreaId); HideViewButtons(document.getElementById('area' + loadAreaId + 'Frame'), buttonTitles); } else if (type == 2) { loadArea(loadAreaId); HideViewButtons(document.getElementById(loadAreaId + 'Frame'), buttonTitles); } else { loadArea('area' + loadAreaId, '\x26roleOrd\x3d1'); HideViewButtons(document.getElementById('area' + loadAreaId + 'Frame'), buttonTitles); } } }}Дальше необходимо вызвать функцию HideAssociatedViewButtons (тоже из онлоада) и передать ей три параметра (в порядке следования):
  • Тип связи, который должен быть равен:
    1 – для любой стандартной связи (т.е. уже существующей в системе)
    2 – для кастомной 1:N связь
    3 – для кастомной N:N связь
  • Имя подгружаемой области – вытащить ее можно так: откройте какую-либо запись нужного Вам объекта, запускаете IEDevTool нажатием F12 (в IE8 этот инструмент уже встроен), активируете инструмент «Выбрать элемент щелчком» (или нажмите Ctrl + B), выделяете кнопку на левой навигационной панели которая связана с нужным Вам объектом, скопируйте текст атрибута if (тега ), но исключите из него префиксы nav или nav_ (ели они есть);
  • Названия кнопок, которые хотите скрыть (через запятую). Названия можете посмотреть выделив кнопку с помощью того же «Выбрать элемент щелчком» и скопировав атрибут Title (тега ).
Пробуем

Я добавил на форму Бизнес-партнеров две дополнительные связи: кастомная связь N:1 с объектом Контракт и кастомная связь N:N с объектом Конкурент! Теперь скроем эти две записи, плюс две стандартные с объектами Контакт (N:1) и Маркетинговый список (N:N).

Для начала получим нужные нам названия областей и кнопок:










Затем скроем их, вызвав функцию HideAssociatedViewButtons с нужными параметрами:

ideAssociatedViewButtons(1,'Contacts', ['Добавить к этой записи новый объект Контакт', 'Добавить к этой записи существующий объект Контакт']);HideAssociatedViewButtons(1,'ListsInSFA', ['Добавить в маркетинговый список']);HideAssociatedViewButtons(2,'new_account_contract', ['Добавить к этой записи новый объект Контракт', 'Добавить к этой записи существующий объект Контракт']);HideAssociatedViewButtons(3,'new_account_incident', ['Добавить к этой записи существующий объект Обращение']);



Результат








Источник: http://mmcrm.ru/?p=605
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 19.08.2009, 20:34   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Свежие переводы пришли
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: IgorF (1), a33ik (1).
Старый 19.08.2009, 23:27   #3  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
И как оно сюда попало... мистика...
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога

Последний раз редактировалось slivka_83; 19.08.2009 в 23:29.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Мелкомягкий CRM: Добавление кнопок Следующая/Предыдущая на форму объектов Blog bot Dynamics CRM: Blogs 0 19.08.2009 15:05
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Пользовательские кнопки на панели инструментов tatra Dynamics CRM: Разработка 2 05.06.2008 17:54

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

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

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