Добавление иконок раздела и изменение цвета фона в динамике 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:)