Кастомизация
15
Мар
0

Установка содержимого IFrame’а (или Аудит на форме)

В CRM 2011 появилась замечательная возможность выносить Представления на форму объектов. Но некоторые объекты не поддерживают этот функционал. Например, объект Аудит. Чтобы исправить это, прибегнем к старому знакомому неподдерживаемому JS-скрипту…

  • Создайте JS Веб-ресурс с таким кодом:
    // iframeObjId - имя iFrame'а
    // objectType  - имя объекта
    // areaName    - имя ссылки в левой навигационной панели
    // formId      - GUID объекта, отображаемого в текущей форме (опционально)
    function SetIframeContent(iframeObjId, objectType, areaName, iframeTitle, formId) {
        // Получаем ссылку на iFrame
        var iframeObject = Xrm.Page.getControl(iframeObjId);
        if (iframeObject != null) {
            // Устанавливаем URL для iFrame'а
            var strURL = "areas.aspx?formid=" + formId + "&navItemName=" + iframeTitle + "&oId=" + Xrm.Page.data.entity.getId() + "&oType=" + objectType + "&pagemode=iframe&security=852023&tabSet=" + areaName;
            iframeObject.setSrc(strURL);
    
        }
    }
    
  • Вынесите на форму объекта (в этом примере это Организация) iFrame. Обязательно запретите для него обмен скриптами;
  • Добавьте созданный Веб-ресурс к форме и на онлоаде вызовите функцию SetIframeContent. Передайте ей такие параметры:
    • iframeObjId — имя iFrame’а;
    • objectType — имя объекта;
    • areaName — имя ссылки в левой навигационной панели;
    • formId — GUID объекта, отображаемого в текущей форме (опционально).

    К примеру, чтобы вынести на форму Организации в iFrame записи аудита, нужно передать такую строку: «IFRAME_audit», 1, «areaAudit», «Audit History»,»» (где IFRAME_audit это имя iFrame’а).

З.Ы. при таком подходе некоторый функционал не будет доступен. Например, Лента не обновиться и т.д.




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

*

code