Решал ли кто-то задачу смена типа результата активности? Поделитесь опытом.

Это цвет покраски кнопок результатов активности в задачах по БП.

Нравится

2 комментария

В справочнике Результат Активности, есть 3 категории.
В зависимости от того, какая категория указана, такой цвет кнопки и будет.
Нейтральный - серый
Отрицательный - красный
Успех - зеленый

 В коде зашиты только эти три цвета и это касается задач созданных через элемент Выполнить задачу в БП

Литвинко Павел,

это прозрачно.Может можешь подсказать где зашито?

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

Коллеги, добрый день!

Реализовал кастомную кнопку закрытия обращения с выпадающим меню. Но никак не могу найти, как установить цвет выпадающих кнопок. Мне необходимо все 5-кнопок сделать разными цветами. 

. 

 

А так же интересует каким образом можно добавить для выпадающей кнопки Значок, по аналогии с кнопкой "Экспорт в Excel" в меню "Действия"?

Спасибо!

Нравится

3 комментария

Добрый день

Чтобы реализовать раскраску цветами, то:

1. Каждое меню должно быть уникальное

2. Добавить css стиль

К примеру, у меня есть 2 пункта меню. Чтобы я мог реализовать корректный selector, то мне нужно их как-то назвать. Поэтому, в методе, где формируется menuItem я явно буду указывать Id этого меню. После чего можно будет писать что-то типа:

#myMenuItem {
    background-color: green;
}

 

Теперь по значкам.

Как вы сами заметили, что хотите добавить значок по аналогии, то вам и нужно сделать по аналогии :). Вот как это сделано в BaseSection

Артем Гура,

Спасибо, но не совсем понято как указать id каждого из меню в методе.

Вот мой метод:

getCustomCloseActions: function() {
 
	self = this;
	var actionMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");
		actionMenuItems.addItem(this.getButtonMenuItem({
			"Tag": "5",
			"Caption": "Закрыть с оценкой 5",
			"Click": {bindTo: "OnCustomClosedButtonMenuClick"}
		}));
		actionMenuItems.addItem(this.getButtonMenuItem({
			"Tag": "4",
			"Caption": "Закрыть с оценкой 4",
			"Click": {bindTo: "OnCustomClosedButtonMenuClick"}
		}));
		actionMenuItems.addItem(this.getButtonMenuItem({
			"Tag": "3",
			"Caption": "Закрыть с оценкой 3",
			"Click": {bindTo: "OnCustomClosedButtonMenuClick"}
		}));
		actionMenuItems.addItem(this.getButtonMenuItem({
			"Tag": "2",
			"Caption": "Закрыть с оценкой 2",
			"Click": {bindTo: "OnCustomClosedButtonMenuClick"}
		}));
		actionMenuItems.addItem(this.getButtonMenuItem({
			"Tag": "1",
			"Caption": "Закрыть с оценкой 1",
			"Click": {bindTo: "OnCustomClosedButtonMenuClick"}
		}));
	self.set("CloseButtonMenuItems", actionMenuItems);
 
},

 

Обратите внимание на метод getButtonMenuItem: как он работает по умолчанию, и как он работает, например в BaseSection.

Особенно то, как формируется значок Excel и как генерируется Id.

А дальше сделать всё по аналогии.

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

Добрый день!
Столкнулся с такой проблемой:
При попытке раскрасить грид (LeadSection, переопределил onLoadData) новые стили (customStyle) успешно применяются только к первой видимой выборке в 15 записей, остальные же при прокрутке имеют дефолтный фон. Подскажите как решить эту проблему?
Версия 7.2

Нравится

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

Иван, добрый день!

Предоставьте, пожалуйста, примеры Вашей реализации для анализа проблемы.

Ок, прикреплен файл с кодом секции..
В коде (метод loadSelect) увеличен объем выборки данных до 500, как временное решение.

Добрый день!

Для решения задачи следует переопределить два метода - «onLoadData» и «loadGridCollectionItems». Пример кода во вложении.
examplesolution.txt

Спасибо, но такой подход решает проблему порождая другую. В методе "loadSelect" добавлены фильтры по ответственному и статусу лида для определенной роли. При переопределении метода «loadGridCollectionItems» этот фильтр перестает отрабатывать...

Спс, проблема решилась (фильтры убрал, сделал БП права на запись).

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

Здравствуйте.

Пытаюсь реализовать задачу, изменить цвет активностей (на оранжевый), если у активности высокий приоритет.
Переопределил метод prepareResponseCollection:
prepareResponseCollection: function(collection) {
var highPriorityId = "D625A9FC-7EE6-DF11-971B-001D60E938C6";
this.callParent(arguments);
var colour = "#F94D00";
collection.each(function(item) {
if (item.get("PriorityId") === highPriorityId) {
item.customStyle = {
background: colour
};
item.set("Background", colour);
}
}, this);
}

Если без ифа, то цвет меняют все активности.
С ифом не работает(цвет не меняется).
Подскажите, что неправильно (подозрение на item.get("PriorityId") )?

Нравится

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

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

Попробуйте в сравнении использовать item.get("Priority").value - в активностях поле "Приоритет" типа "Справочник".

При использовании item.get("Priority").value страница активностей перестала отображаться вообще (Загрузка, не прекращается, не загружает)

Попробуйте

var priority = item.get("Priority");
if (!this.Ext.isEmpty(priority) && (priority.value === highPriorityId)) {
...
}

Возможно, не для всех активностей установлен приориет.

Теперь страница отображается, но цвет активностей с высоким приоритетом не меняется.
По всей видимости, дело не в этом.
Также проверил, приоритет проставлен для всех активностей.

Алексей, Вы добавляли поле "Priority" в атрибуты схемы?

attributes: {
	...
	"Priority": {
		dataValueType: Terrasoft.DataValueType.LOOKUP
	}
}

Также попробуйте включить отладчик, установить точку остановки в момент проверки условия и проверить значение переменной priority в этот момент.

в priority - undefined.
Вот код:
define("ActivitySectionV2", ["ConfigurationConstants", "FieldForceConfigurationConstants"],
function(ConfigurationConstants, FieldForceConfigurationConstants) {
return {

entitySchemaName: "Activity",
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
attributes: {
"Priority": {
dataValueType: Terrasoft.DataValueType.LOOKUP
}
},

methods: {
prepareResponseCollection: function(collection) {
var highPriorityId = "D625A9FC-7EE6-DF11-971B-001D60E938C6";
this.callParent(arguments);
var colour = "#F94D00";
collection.each(function(item) {
var priority = item.get("Priority");
debugger;
if ((!this.Ext.isEmpty(priority)) && (priority.value === highPriorityId)) {

item.customStyle = {
background: colour
};
item.set("Background", colour);
}
}, this);
}
},
diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
};
});

Скриншот

Алексей, Вы хотите реализовать данный функционал в расписании активностей? Дело в том, что в режиме расписания доступны не все колонки схемы Activity, а только некоторые. Для получения значения поля "Приоритет" активности необходимо добавить соответствующую колонку в запрос.

Попробуйте для начала вместо item.get("Priority") подставить item.get("Status"). Если значение будет отличаться от undefined, переопределите схему ActivitySectionV2, добавив в список колонок метода getGridDataColumns колонку "Priority".

Здравствуйте, Олег.
Действительно, после подставки item.get("Status") - priority получила значение.
После переопределения метода getGridDataColumns и добавления в него колонки "Priority" все заработало.
Спасибо Вам за консультацию.

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

Здравствуйте!
Есть следующая задача:
В зависимости от условий в реестре раздела поле отображается либо зеленым, либо красным цветом.

Как можно реализовать данный функционал?

Нравится

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

Добрый день!

Ниже приведу алгоритм примера реализации, как сделать, чтобы была подсветка записей реестра если у продажи на объекте поле IsNotInterest = true:

1. Создаем метод gridRecolor

gridRecolor: function () {
   var gridData = this.getGridData();
   var items = gridData.getItems();
   var loadedObject = {};
   Terrasoft.each(items, function (item) {
      item.customStyle = null;
      var facilityId = item.get("Facility").value;
      var opportunityId = item.get("Opportunity").value;
      var isNotInterest = item.get("IsNotInterest");
      //Если условие подходит, меняем цвет записи на темно-серый.
      if (isNotInterest) {
         item.customStyle = {
           'color' : "darkgrey"
         }
      }
      var primaryValue = item.get(item.primaryColumnName);
      //Формируем новый набор данных уже с подсветкой
      loadedObject[primaryValue] = item;
   }, this);
   gridData.clear();
   //загружаем новый набор данных
   gridData.loadAll(loadedObject);
},

2. Замещаем метод onGridDataLoaded, добавив в него вызов gridRecolor

onGridDataLoaded: function () {
   this.callParent(arguments);
   this.gridRecolor();
},

3. Profit!

Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.

"Пащенко Александр Сергеевич" написал:

Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.

Для колонки данную функциональность невозможно реализовать на уровне пользователя системы.
Необходимо переделывать базовую логику приложения (ядро).

Добрый день!

Дмитрий, такая функция выделяет нужным цветом текстовое содержимое полей. Скажите пожста, а можно ли выделять цветом не текст, а целый ряд(фон), который соответствует записи? Вот так:

 

Добрый день!

Такая реализация выделяет цветом текстовое содержимое записи. А можно сделать так, чтобы выделялась цветом весь ряд/запись как фон указанного цвета?

Есть бесплатное дополнение Records color highlighting.

Показать все комментарии
В связи с появлением ссылок в 7.5 в карточке стало слишком много синего цвета.Чтобы визуально отделять данные-ссылки от заголовков деталей и групп полей, предлагаю последним сменить цвет с синего на какой-то другой
1 комментарий

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

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

Рассмотрим пример, как можно легко и просто поменять css-стили в bpm'online.
Например, нам необходимо изменить цвет левой панели с разделами.
Большинство css-стилей в bpm'online 7.3 и выше вынесены в отдельный модуль - CommonCSSV2. Кроме стилей в нем ничего нет, поэтому его легко заместить, чтобы поменять какие-либо из базовых стилей.
Для того, чтобы понять, какие стили применяются к тем или иным компонентам можно воспользоваться консолью браузера и сразу попробовать применить другие стили:

Попробуем изменить цвет:

Уже неплохо, но хотелось бы также поменять и цвета элементов списка. Вот они:

Итак, определились, какие css-классы нужно менять:

.ts-sidebar-list {
         background-color: #357C29;
}
.left-panel {
         background-color: #357C29;
}

Несмотря на то, что некоторые классы определены не в CommonCSSV2:

мы все равно можем переопределить их там же.

Стили определены на вкладке LESS модуля. Вот класс .left-panel, который нужно переопределить:

Итак, мы добавляем замещающий клиентский модуль для CommonCSSV2 в конфигурации в пользовательском пакете:

Сохраняем и переоткрываем. Теперь там появилась вкладка LESS. Первым делом копируем туда весь код из базового модуля:

Добавляем в конец

.ts-sidebar-list {
         background-color: #357C29;
}
.left-panel {
         background-color: #357C29;
}

Сохраняем (публикуем). Возвращаемся к пользовательскому интерфейсу, чистим кэш и перезагружаем страницу:

Нравится

Поделиться

2 комментария

Здравствуйте, скажите пожалуйста как найти этот LESS модуль в настройках? Версия 7.4.1

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

модуль называется CommonCSSV2. А LESS это таблица стилей.
Открываете в конфигурации объект "CommonCSSV2" (Рис. 1).

И в самом объекте есть вкладка "LESS".

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

Добрый день!

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

Спасибо!

Нравится

4 комментария

цвет столбца
цвет заголовка?.. не думаю

Оп, действительно столбец легко менять, странно что не заметил.

А цвет текста заголовка может все-таки можно как-то программно поменять?

Добрый день, коллеги.

По столбцам менять цвет/шрифт объект грида не позволяет. Можно только по срокам и/или ячейкам.
Свойство Color интерфейса IDataGridColumn позволяет задавать цвет текста в ячейке по умолчанию, но доступа к изменению цвету заголовка таблицы, к сожалению, нет.

Все понял, спасибо!

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

Возможно ли изменить цвет элемента формы NumericEdit?

Нравится

2 комментария

Да, об этом писал Лучкив Александр в своем блоге

ясно, значит обновляться надо

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

Для того, чтобы на детали «Контакты» раздела «Контрагенты» основной контакт был выделен жирным шрифтом, Вам необходимо выполнить следующие действия:

1. Запустить TS Admin под пользователем с правами администратора;
2. Открыть сервис скрипта scr_ContactsInAccountGridArea;
3. Найти в этом скрипте функцию grdDataOnGetRowDrawInfo и добавить в нее фрагмент

         var dsAccount = Services.GetNewItemByUSI('ds_Account');
         var CurrentAccountID = BaseGridArea.GridDataset.Values('AccountID');
         ApplyDatasetFilter(dsAccount, 'ID', CurrentAccountID, true);
         dsAccount.Open();
         var MainContact = dsAccount.Values('PrimaryContactID');
         dsAccount.Close();
         if (MainContact == BaseGridArea.GridDataset.Values('ContactID')) {
                   Font.bold = true;
         }

как показано на скриншоте:

/system/files/3_18.png

Сохраните изменения.

4. Откройте сервис sq_ContactInAccount, установите фокус на колонку AccountID и установите флаг «Всегда выбирать в запросе»:

/system/files/4_13.png

Сохраните изменения.

Перезапустите TS Client для проверки функционала:

/system/files/fin.png

Нравится

Поделиться

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