Передали данное пожелание команде разработки для анализа возможности внедрения такой возможности в будущих версиях продукта.
Это дополнение реализовано компанией «CRM Tools», с пожеланиями дополнительной логики лучше будет также обратиться и к ним. Будет странно, если поля будут помечаться цветом стандартно, а для строк придётся устанавливать дополнение.
К сожалению, там недостаточная реализация: можно брать только справочное поле, нельзя красить по 2 и больше вариантам, нет возможности покрасить только одно поле, при выделение строки все равно включается базовый цвет. Разработчикам отписался, но обратной связи так и нет.
Есть дополнение Fields color highlighting for bpm'online, оно позволяет выделять фон и текст полей в карточке записей любого раздела различным цветами для заданных ролей пользователей.
При установке свойства HasCustomDrawCell = true у DataTreeGrid редактирование последнего стало практически невозможным. При занесении значений в редактируемую ячейку и последующем нажатии кнопки Enter ничего не происходит. Если вводить значение на протяжение нескольких секунд значение в ячейке (как будто по таймеру) сбрасывается в 0. И только если успеть ввести значение и перейти мышкой на другую ячейку, то при редактировании программно других ячеек (код вида Dataset.Edit() ……….. Dataset.Post()) выскакивает ошибка о том что dataset not in edit or insert mode.
Если убрать раскраску таблицы HasCustomDrawCell = false всё продолжает нормально работать.
Как реализовать одновременно работу события OnGetCellDrawInfo и возможность редактирования внутри таблицы?
Создали собственный раздел, реестр и деталь для внесения плана и сравнение с фактом продаж
Для реестра, где необходима подкраска ячеек редактировали события:
OnAfterEdit (редактирование итоговых данных после правок в привязанном к гриду датасете), OnBeforeEdit (проверка возможности редактирования конкретной ячейки) и CellDrawInfo.
Сейчас временно из ситуации вышли следующим образом: при редактировании значения в ячейке подкрашиваемые ячейки с утвержденным планом становятся обычного цвета, на OnBeforeEdit:
if (CanEdit.Value) {
OldValue = DataField.Value
if (DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = false
}
}
Как только мы вышли из редактирования (сохранили значение или перешли на другую не редактируемую ячейку) – подкраска снова появляется, на OnAfterEdit:
if (!DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = true
}
Создали собственный раздел, реестр и деталь для внесения плана и сравнение с фактом продаж
Для реестра, где необходима подкраска ячеек редактировали события:
OnAfterEdit (редактирование итоговых данных после правок в привязанном к гриду датасете), OnBeforeEdit (проверка возможности редактирования конкретной ячейки) и CellDrawInfo.
Сейчас временно из ситуации вышли следующим образом: при редактировании значения в ячейке подкрашиваемые ячейки с утвержденным планом становятся обычного цвета, на OnBeforeEdit:
if (CanEdit.Value) {
OldValue = DataField.Value
if (DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = false
}
}
Как только мы вышли из редактирования (сохранили значение или перешли на другую не редактируемую ячейку) – подкраска снова появляется, на OnAfterEdit:
if (!DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = true
}