Свойства, методы и особенности наложения блокировок редактирования отдельных строк в GroupEdit

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.Для заблокированных для ввода строк недоступна операция удаления.