При установке свойства HasCustomDrawCell = true у DataTreeGrid редактирование последнего стало практически невозможным. При занесении значений в редактируемую ячейку и последующем нажатии кнопки Enter ничего не происходит. Если вводить значение на протяжение нескольких секунд значение в ячейке (как будто по таймеру) сбрасывается в 0. И только если успеть ввести значение и перейти мышкой на другую ячейку, то при редактировании программно других ячеек (код вида Dataset.Edit() ……….. Dataset.Post()) выскакивает ошибка о том что dataset not in edit or insert mode.
Если убрать раскраску таблицы HasCustomDrawCell = false всё продолжает нормально работать.
Как реализовать одновременно работу события OnGetCellDrawInfo и возможность редактирования внутри таблицы?
Нравится
Здравствуйте!
Предоставьте следующую информацию:
- Версия конфигурации
- Версия бинарных фалов приложения
- Какие доработки были выполнены для редактируемого грида
- Редактируете реестр или деталь
- Редактируете базовый реестр/деталь
TerrasoftSales 3.3.2.313
Создали собственный раздел, реестр и деталь для внесения плана и сравнение с фактом продаж
Для реестра, где необходима подкраска ячеек редактировали события:
OnAfterEdit (редактирование итоговых данных после правок в привязанном к гриду датасете), OnBeforeEdit (проверка возможности редактирования конкретной ячейки) и CellDrawInfo.
Сейчас временно из ситуации вышли следующим образом: при редактировании значения в ячейке подкрашиваемые ячейки с утвержденным планом становятся обычного цвета, на OnBeforeEdit:
if (CanEdit.Value) {
OldValue = DataField.Value
if (DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = false
}
}
Как только мы вышли из редактирования (сохранили значение или перешли на другую не редактируемую ячейку) – подкраска снова появляется, на OnAfterEdit:
if (!DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = true
}
TerrasoftSales 3.3.2.313
Создали собственный раздел, реестр и деталь для внесения плана и сравнение с фактом продаж
Для реестра, где необходима подкраска ячеек редактировали события:
OnAfterEdit (редактирование итоговых данных после правок в привязанном к гриду датасете), OnBeforeEdit (проверка возможности редактирования конкретной ячейки) и CellDrawInfo.
Сейчас временно из ситуации вышли следующим образом: при редактировании значения в ячейке подкрашиваемые ячейки с утвержденным планом становятся обычного цвета, на OnBeforeEdit:
if (CanEdit.Value) {
OldValue = DataField.Value
if (DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = false
}
}
Как только мы вышли из редактирования (сохранили значение или перешли на другую не редактируемую ячейку) – подкраска снова появляется, на OnAfterEdit:
if (!DataGrid.HasCustomCellDraw) {
DataGrid.HasCustomCellDraw = true
}