Шаг 6.8 - Создание процедуры удаления раздела классификатора.
Перейдите в модуль PCLibOKP (см. Урок 5), встаньте на форму fmLibOKP, дважды щелкните на компоненте am - TActionManager и в редакторе действий дважды щелните на действии DelLib - Удалить (см. рис. 6.7).
Рис. 6.7.
Будет создана процедура для указанного действия DelLibExecute. Введите в тело созданной процедуры следующие строки:
procedure TfmLibOKP.DelLibExecute(Sender: TObject);
begin
inherited;
Self.vltv.DeleteBDObject;
// удалить выделенный в таблице объект
end;
Скомпилируйте приложение, загрузите окно классификатора ОКП, встаньте на ветку дерева классификатора, где Вы создавали новый раздел, установите курсор в таблице подчиненных разделов на созданный в предыдущем шаге раздел классификатора и проверьте как работает пункт контекстного меню Удалить (см. рис. 6.8).
Рис. 6.8.
После нажатия на пункт меню Удалить, на экран будет загружено системное предупреждение перед удалением объекта, как указано на рисунке ниже:
Рис. 6.9
Если пользователь подтвердит свои намерения нажатием на кнопку Да, на экран будет загружен диалог выбора типа операции удаления, как показано на рисунке ниже:
Рис. 6.10
В системе Visual Loodsman пользователю предлагается три типа удаления объекта:
- Вырезать объект из текущего состава - при этом сам объект не удаляется из базы данных и все другие родительские связи не удаляются;
- Удалить объект из всех составов в корзину - при этом все родительские связи с другими объектами удаляются, дочерние связи с другими объектами остаются без изменений, а к ключевому атрибуту добавляется префикс RECYCLE_ и объект сохраняется в базе данных, предыдущий объект с вновь созданным ключевым атрибутом удаляется из базы данных безвозвратно;
- Удалить объект из базы данных - при этом происходит безвозвратное удаление объекта, пользователю необходимо осторожно пользоваться данной возможностью, т.к. восстановить объект уже не будет никакой возможности.
Проверьте как работают все три варианта. Далее...