Добрый день,
помогите решить задачу!
Необходимо формировать цветовую окраску в реестре продаж соответственно стадиям.
В справочнике "Стадии продаж" добавлено поле выбора цвета. Однако при попытке отобразить это поле в реестре (Вид/Настроить колонки), подтягивается не сам цвет, а его текстовое значение.
Подскажите пожалуйста, как подтянуть цвет?
Версия 7.4, скриншот прилагаю
Нравится
Здравствуйте, Дмитрий.
Выделять записи цветом в реестре возможно с помощью параметра customStyle строки реестра.
Параметр должен содержать стили в виде объекта, который может обработать Ext.DomHelper.generateStyles (http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.DomHelper-method-generate…).
Пример (метод на странице раздела):
[javascript]
onGridLoaded: function () {
this.callParent(arguments);
var gridData = this.get('GridData');
var items = gridData.getItems();
var loadedObject = {};
Terrasoft.each(items, function (item) {
item.customStyle = {
backgroundColor: 'red'
};
});
}
[/javascript]
Т.е. базовым функционалом это не реализовать, только конфигурационной доработкой.
Здравствуйте!
Обнаружил что описанным выше способом можно применить стили только к записям первой страницы(
При прокрутке вниз записи грузятся без стилей
Подскажите, как применить стили ко всем записям
Добрый день
Насколько я понял с помощью модуля CommonCSSV2 и вкладки LESS можно задавать постоянные стили, в таком случае мне это не подходит.
Необходимо, чтобы каждая запись реестра продаж имела цвет зависящий от стадии данной продажи.
Я обратил внимание, что при прокрутке записей и добавлении новых записей в грид, метод onGridLoaded отрабатывает повторно, но стили не применяются
[javascript]
define("OpportunitySectionV2", ["VisaHelper", "LookupUtilities", "css!VisaHelper", "OpportunityPageV2"],
function(VisaHelper, LookupUtilities, OpportunityPageV2) {
return {
entitySchemaName: "Opportunity",
attributes: {},
methods: {
init: function() {
this.callParent(arguments);
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "OpportunityStage"
});
esq.addColumn("Id");
esq.addColumn("UsrStageColor");
esq.getEntityCollection(function(result){
var res = result.collection.collection.items;
var record = {};
Terrasoft.each(res, function(item) {
var id = item.values.Id;
var color = item.values.UsrStageColor;
record[item.values.Id] = item.values.UsrStageColor;
});
Terrasoft.SysValue.CURRENT_COLORS = record;
}, this);
},
onGridLoaded: function() {
this.callParent(arguments);
this.colorize();
},
colorize: function() {
var gridData = this.get('GridData');
var items = gridData.getItems();
var loadedObject = {};
Terrasoft.each(items, function (item) {
var stage = item.get('Stage');
item.customStyle = {
backgroundColor: Terrasoft.SysValue.CURRENT_COLORS[stage.value]
};
});
}
},
diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
}
});[/javascript]
Попробуйте создать схему со стилями, подключить её в вашу схему и каждому элементу присваивать нужный стиль
"Олейников Владимир Владимирович" написал:Попробуйте создать схему со стилями, подключить её в вашу схему и каждому элементу присваивать нужный стиль
Если можно, приведите пожалуйста пример кода.
Заранее благодарен.
"Безродный Андрей" написал:Здравствуйте, Дмитрий.
Выделять записи цветом в реестре возможно с помощью параметра customStyle строки реестра.
Параметр должен содержать стили в виде объекта, который может обработать Ext.DomHelper.generateStyles (http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.DomHelper-method-generateStyles
).
Пример (метод на странице раздела):
onGridLoaded: function () {
this.callParent(arguments);
var gridData = this.get('GridData');
var items = gridData.getItems();
var loadedObject = {};
Terrasoft.each(items, function (item) {
item.customStyle = {
backgroundColor: 'red'
};
});
}Т.е. базовым функционалом это не реализовать, только конфигурационной доработкой.
Попробуйте этот же код запихнуть в метод Render, только сначала вызовите функцию CallParent()