Всем привет! подскажите, пожалуйста по такому вопросу: необходимо в BPMonline реализовать подсветку записей реестра различными цветами в зависимости от значений определенного поля в записи. Как и где можно получить доступ к свойству фона записи реестра? Заранее спасибо.
Нравится
Здравствуйте, Олег!
Для того, чтобы реестр подсвечивался, необходимо добавить это значение в конфигурацию колонок. Пример:
base.GetModuleRowConfig(module); string primaryColumnName = module.Schema.PrimaryColumn.Name; string primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString(); var config = new DataSourceRowConfig(primaryColumnValue); if(условие выполняется){ config.AddConfig(new DataSourceRowColorConfigValue("Red")); }else{ config.AddConfig(new DataSourceRowColorConfigValue("Black")); }
Здравствуйте, Алина
Не могли бы вы подробна, описать действие.
Куда и как надо все добавлять.
(Напр. для поля "Приоритет" раздела "Проблема")
Заранее Спосиба,
С уважением,
Гюнель
Здравствуйте, Гюнель!
Для предоставления детальной инструкции нужна дополнительная информация:
1. Каким цветом нужно подсвечивать строки?
2. При каких значениях поля Приоритет следует их подсвечивать?
Здравствуйте,Анна
1. Приоритет "критичный" : красный
Приоритет "важный" : желтый
С уважением,
Гюнель Рустамова
Гюнель, здравствуйте.
Необходимо открыть схему страницы реестра записей раздела, найти и переопределить метод GetModuleRowConfig. После этого автоматом первой строкой в методе будет вызов базового метода:
base.GetModuleRowConfig(module);
а далее, можно добавить свою логику:
string primaryColumnName = module.Schema.PrimaryColumn.Name; string primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString(); var config = new DataSourceRowConfig(primaryColumnValue); string PriorityColumnValue = module.GetTypedColumnValue<Guid>("Priority").ToString(); if(PriorityColumnValue == "guid приоритета критичный"){ config.AddConfig(new DataSourceRowColorConfigValue("Red")); }else if(PriorityColumnValue == "guid приоритета важный") { config.AddConfig(new DataSourceRowColorConfigValue("Yellow")); }
где Priority - имя колонки "Приоритет" в объекте "Проблема".
Здравствуйте,
А где я могу найти метод GetModuleRowConfig? Я не смогла найти и переопределить метод GetModuleRowConfig на странице реестра записей раздела.
С уважением,
Гюнель
Здравствуйте,
А где я могу найти "guid приоритета критичный"?
С уважением,
Гюнель
Открываете в разделе справочников справочник "Приоритеты", в нём открываете карточку записи "Критичный", в её URL в окне браузера будет написано ...&recordId=[этот самый guid]&...
Для примера, у вас справочники могут называться иначе и быть другой структуры:
Здравствуйте,
Но у меня опять ничего не получается.
Установила следующие настройки на"XXXGridModele".
base.GetModuleRowConfig(module);
string primaryColumnName = module.Schema.PrimaryColumn.Name;
string primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString();
var config = new DataSourceRowConfig(primaryColumnValue);
string PrioritetColumnValue = module.GetTypedColumnValue("Prioritet").ToString();
if(PrioritetColumnValue == "f7793230-f46b-1410-288e-00155d010cc0"){
config.AddConfig(new DataSourceRowColorConfigValue("Red"));
}else if(PrioritetColumnValue == "cca5300a-f46b-1410-3f9e-00155d010cc0") {
config.AddConfig(new DataSourceRowColorConfigValue("Yellow"));
}
return config;
Страница без проблем опубликуется, но не могу войти на раздел рабочего места.
Заранее спасибо.
Здравствуйте!
Вот в этой строке ошибка:
string PrioritetColumnValue = module.GetTypedColumnValue("Prioritet").ToString();
попробуйте так:
string PrioritetColumnValue = module.GetTypedColumnValue<Guid>("PrioritetId").ToString();
Добрый день коллеги ! Вопрос как можна поместить чтобы текст был зачеркнутый?
Здравствуйте, Сергей.
Можно изменить цвет текста, цвет фона, можно сделать текст жирным, но вот конфига зачеркнутого шрифта - нету. Однако, если Вы заметили в разделе "Конфигурация" при удалении схемы она помечается как зачеркнута. И хотя эта страница реализована в ядре системы, попробую уточнить, можно ли реализовать данный функционал в конфигурации и отпишусь по результатам в этой теме.
"Олейник Дмитрий" написал:Здравствуйте, Сергей.
Можно изменить цвет текста, цвет фона, можно сделать текст жирным, но вот конфига зачеркнутого шрифта - нету. Однако, если Вы заметили в разделе "Конфигурация" при удалении схемы она помечается как зачеркнута. И хотя эта страница реализована в ядре системы, попробую уточнить, можно ли реализовать данный функционал в конфигурации и отпишусь по результатам в этой теме.
С уважением,
Олейник Дмитрий
Эксперт 3-й линии поддержки
Здравствуйте, Дмитрий. Я в первую очередь там посмотрел. Спасибо буду очень благодарен! А можна гдето посмотреть какие стили можна добавить ?
Здравствуйте, Сергей.
Ниже большинство из доступных конфигов:
string primaryColumnName = module.Schema.PrimaryColumn.Name; string primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString(); var config = new DataSourceRowConfig(primaryColumnValue); //цвет шрифта config.AddConfig(new DataSourceRowColorConfigValue("Red")); //цвет фона config.AddConfig(new DataSourceRowBackgroundColorConfigValue("Red")); //цвет строки+ колонки = ячейки config.AddConfig(new DataSourceRowColumnBackgroundColorConfigValue("Red")); //жирный шрифт config.AddConfig(new DataSourceRowIsBoldFontConfigValue(true)); //активная(неактивная) строка config.AddConfig(new DataSourceRowIsEnabledConfigValue(true));
"Олейник Дмитрий" написал:Необходимо открыть схему страницы реестра записей раздела, найти и переопределить метод GetModuleRowConfig.
У меня такого метода не наблюдается.....
Стоп, нашёл,он не в реестре, а в разделе. Только я не совсем понимаю как мне его переопределить? Создать новый с таким же именем? Не дает....
Что то я сегодня туповат, там же галка есть....
Всем спасибо, вопрос закрыт.
Столкнулся с тем, что при использовании какого-либо столбца в качестве критерия требует того, чтобы этот столбец был вынесен в реестре, иначе выдает ошибку. Это можно как-то обойти
Код,который использую для раздела Запросов на обслуживание:
var config = base.GetModuleRowConfig(module);
var primaryColumnName = module.Schema.PrimaryColumn.Name;
var primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString();
var solutionprovidedon = module.GetColumnValue("SolutionProvidedOn");
var solutiondate = module.GetColumnValue("SolutionDate");
if (solutionprovidedon ==null) {
if (solutiondate !=null) {
if ((DateTime)solutiondate < DateTime.Now.AddDays(5)) {config.AddConfig(new DataSourceRowColorConfigValue("Green"));}
else if ((DateTime)solutiondate
Владислав,
Вы можете настроить колонки DataSource нужной страницы реестра, у необходимых колонок указав признак "Всегда загружать данные", тогда их нахождение в реестре будет необязательным.
Либо можете получать их отдельным запросом по PrimaryColumnValue.
Публикую метод :
base.GetModuleRowConfig(module);
string primaryColumnName = module.Schema.PrimaryColumn.Name;
string primaryColumnValue = module.GetColumnValue(primaryColumnName).ToString();
var config = new DataSourceRowConfig(primaryColumnValue);
string VIPColumnValue = "";
Select select = new Select(UserConnection)
.Column("VipClientMarkId")
.From("Contact")
.Where("Id").IsEqual (new QueryParameter(Page.DataSource.ActiveRow.GetTypedColumnValue("ContactId").ToString())) as Select;
VIPColumnValue = select.ExecuteScalar();
if(VIPColumnValue != null)
{
config.AddConfig(new DataSourceRowColorConfigValue("Red"));
}
Выходит ошибка :
Terrasoft.WebApp.BaseGridPageEventsProcess" не содержит определение для "GetModuleRowConfig"
Действительно в BaseGridPage нет метода GetModuleRowConfig(module).
Что я делаю не так?
Подскажите есть ли возможность подсвечивать не всю строку (в реестре), а только одно поле?
"Баданина Анастасия" написал:подсвечивать не всю строку (в реестре), а только одно поле
Тут выкладывал решение.
А по предыдущему вопросу, в Вашем фрагменте не упоминается «GetModuleRowConfig». При ошибке компиляции система должна показать, в какой именно строке проблема, в той странице, что меняли или вообще в другой.
"Зверев Александр" написал:
Баданина Анастасия пишет:
подсвечивать не всю строку (в реестре), а только одно поле
Тут выкладывал решение.
А по предыдущему вопросу, в Вашем фрагменте не упоминается «GetModuleRowConfig». При ошибке компиляции система должна показать, в какой именно строке проблема, в той странице, что меняли или вообще в другой.
Спустя почти год вернулась к похожей задаче, в странице MainPage нужно сделать другим цветом кнопку процессы, метода там нет. Сейчас я проверяю при входе пользователя его роль и если он не админ, делаю кнопку процессы не активной, при этом она серая, пользователям не нравится этот цвет. Есть предложения?
Там есть 4 предустановленных вида кнопки разного цвета.
Либо в исходниках ядра менять файлы-картинки, но исходники ядра Terrasoft не предоставляет.
"Зверев Александр" написал:Там есть 4 предустановленных вида кнопки разного цвета.
Либо в исходниках ядра менять файлы-картинки, но исходники ядра Terrasoft не предоставляет.Прикрепленный файлРазмер
button.png
3.93 кб
Я же говорю мне не просто поменять цвет, а при определенных условиях. А то что вы предлагаете это без условий просто изменение. Т.е у меня ничего не получится) ну и пусть тогда будет сереньким.:biggrin:
Программно можно менять свойство:
Page.RunProcessButton.ButtonStyle = Terrasoft.UI.WebControls.Controls.ButtonStyle.Orange;
"Зверев Александр" написал:Программно можно менять свойство:
Page.RunProcessButton.ButtonStyle = Terrasoft.UI.WebControls.Controls.ButtonStyle.Orange;
Аааа!! Спасибо! Как раз, то что нужно!:twisted: