GroupEdit поддерживает возможность блокировки редактирования отдельных строк. Данная возможность позволяет организовать корректное одновременное редактирование объектов в GroupEdit
и на отдельных формах.
Управление блокировками осуществляется с помощью перечисленных ниже свойств, методов и событий.
- Свойство
AllowRowLocking
отвечает за включение режима редактирования с блокировками. - Метод
DisableRow(DataObject dataObject)
блокирует строку с указанным объектом данных для ввода. Блокировка строки подразумевает невозможность ввода данных и ее выделение серым цветом. - Метод
EnableRow(DataObject dataObject)
снимает блокировку со строки с казанным объектом данных. - Метод
IsRowDisabled(DataObject dataObject)
позволяет проверить заблокирована строка или нет. - Метод
LockDataObject(DataObject dataObject)
блокирует объект для монопольного редактирования в GroupEdit (блокировка осуществляется через механизмLockService
. Блокировка объекта может быть снята вызовомUnlockDataObject
или при закрытии формы. - Метод
UnlockDataObject(DataObject dataObject)
разблокирует заблокированныйLockDataObject
объект. - Событие
BeginEdit
при начале редактирования атрибута объекта. - Событие
EndEdit
при окончании редактирования атрибута объекта.
Примечания:
1.При открытии формы агрегатора необходимо накладывать блокировки на все объекты-детейлы, что обусловлено следующими причинами
- нет необходимости писать для ordered детейлов отдельную обработку, т.к. смена ordered-атрибута также ведет к изменению объекта и рассогласованию с открытой формой;
- на форме агрегатора может быть реализована некоторая бизнес-операция, меняющая детейлы.
2.При открытии формы на редактирование GE проверяет наличие блокировок на каждый объект в GE и при наличии блокировки блокирует строку для ввода.
3.При начале редактирования конктретного объекта данных в GE проверяет наличие блокировок на каждый объект в GE и при наличии блокировки, блокирует строку и выдает предупреждение для пользователя.
4.Для заблокированных для ввода строк недоступна операция удаления.