Добавление иконок раздела и изменение цвета фона в динамике CRM

Мне нужно дать значок для каждого раздела в моих сущностях. Например, мне нужно дать значок для общей информации, другой для раздела взаимодействий. Есть ли идея о том, как я могу это сделать? и как я могу сделать цвет фона для каждого раздела, пожалуйста? Заранее спасибо,

2 ответа

Нет возможности назначать значки разделам. Лучшее, что вы могли бы сделать, это добавить веб-ресурс в каждый из ваших разделов и сделать так, чтобы они ссылались на изображение, но на самом деле это не похоже на то, к чему вы стремитесь.

Нет поддерживаемых способов изменить цвет фона формы. Если вам не нужна поддержка, вы можете использовать jQuery для этого. Поместите эту функцию в скрипт формы:

function changeSectionBackgroundColor(sectionId, color) {
    parent.$("table.ms-crm-FormSection[name='"+sectionId+"']").css({"background-color": color});
}

и используйте это так:

changeSectionBackgroundColor("General_Section_2", "red");
changeSectionBackgroundColor("General_Section_2", "#ababab");

Вы можете попробовать сделать что-то вроде этого, чтобы вставить изображения раздела:

var stackru = (function (Xrm)
{
    var sectionBarClassName = '.ms-crm-Form-SectionBar';                // name of the CSS class given to the Section's Label's <td> element

    function GetSection(tabName, sectionName)
    {
        var parentTab = Xrm.Page.ui.tabs.getByName(tabName);            // get the tab
        var section = parentTab.sections.getByName(sectionName);        // get the section

        return section;
    }

    function AddSectionImage(tabName, sectionName, imageUrl)
    {
        var section = GetSection(tabName, sectionName);                // retrieve section using Xrm
        var elSection = document.querySelector('table[name=' + section.getKey() + ']');
        var elSectionHeader = elSection.querySelector('tr:first-child');
        var elTitles = elSection.querySelectorAll(sectionBarClassName);
        if (elTitles.length === 1)                                     // we can assume that this section has a title
        {
            var elImg = document.createElement('img');
            elImg.src = imageUrl;
            elTitles[0].insertBefore(elImg, elTitles[0].firstChild);
        }
    }

    return {
        AddSectionImage : AddSectionImage
    };

})(Xrm);

Затем вы вызываете этот код и передаете имя (не метку) вкладки и раздела, а также относительный URL-адрес изображения, которое вы хотите отобразить. Вот так:

stackru.AddSectionImage('tab_5', 'tab_5_section_1', '/imgs/Cancel_16.png');

Я тестировал этот код только в CRM 2016 (онлайн). И изображение немного грубое. Вам нужно будет позаботиться о стиле (встроенном) и размере самостоятельно.

Это, конечно, не поддерживается Microsoft:)