Доброго времени суток!

Возможно, ли с помощью средств разработки в конфигурации настроить подсветку ячеек в сводной таблице в планировании?

Например:

Изображение удалено.

Буду благодарна, если кто-то может поделиться решением или подсказать вектор для выполнения данной доработки.

P.S. О решении на маркетплейсе знаю, но интересует доработка именно стандартного раздела 'Планирование'.

 

Нравится

1 комментарий

Алла, добрый день!

На данный момент в системе нет возможности реализовать вашу задачу используя средства разработки. По вашему вопросу отдельная идея для доработки системы чтобы в будущем у пользователей была подобная возможность.

Показать все комментарии

Всем привет! подскажите, пожалуйста по такому вопросу: необходимо в BPMonline реализовать подсветку записей реестра различными цветами в зависимости от значений определенного поля в записи. Как и где можно получить доступ к свойству фона записи реестра? Заранее спасибо.

Нравится

27 комментариев

Здравствуйте, Олег!

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

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]&...
Для примера, у вас справочники могут называться иначе и быть другой структуры:
recordId

Здравствуйте,
Но у меня опять ничего не получается.
Установила следующие настройки на"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 нужной страницы реестра, у необходимых колонок указав признак "Всегда загружать данные", тогда их нахождение в реестре будет необязательным.

1

Либо можете получать их отдельным запросом по 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 предустановленных вида кнопки разного цвета.
button
Либо в исходниках ядра менять файлы-картинки, но исходники ядра Terrasoft не предоставляет.

"Зверев Александр" написал:

Там есть 4 предустановленных вида кнопки разного цвета.

button

Либо в исходниках ядра менять файлы-картинки, но исходники ядра 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:

Показать все комментарии