Генерируется перед исполнением команды.
Visual Basic |
---|
Public Event CommandBeforeExecute( _ ByVal pCommand As TDMSCommand, _ ByVal pObject As TDMSObject, _ ByRef bCancel As Boolean _ ) |
- pCommand
- Команда, которая должна быть выполнена.
- pObject
- Объект, над которым должна быть выполнена команда.
- bCancel
- TRUE - отменить выполнение команды.
1. Событие является отменяемым: если параметру bCancel присвоено значение TRUE, команда не будет выполнена.
2. Обработчик может быть размещен в скриптах команды, профиля и/или общесистемном.Если обработчики определены на всех уровнях, то последовательность их вызова такова:
- скрипт команды;
- скрипт профиля пользователя;
- общесистемный скрипт.
Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.
3. Схему последовательности генерации событий при выполнении команды на объекте см. на рисунке:
4. Для того, чтобы событие генерировалось при работе через API (вызове метода TDMSApplication.ExecuteCommand Метод), должен быть включен вызов объектных событий в Окне свойств базы данных (см. рисунок).
VB Script (Visual Basic) | ![]() |
---|---|
'====================================================================== 'Текст обработчика может быть размещен в скрипте команды, профиля или 'общесистемном скрипте. Sub Command_BeforeExecute(Command, Obj, Cancel) 'Запретить выполнение определенной команды над определенными типами объектов If Command.SysName = "CMD_TEST" AND Obj.ObjectDef.SysName = "OBJ_TEST" Then MsgBox "Данная команда не может быть выполнена на объектах типа """_ & Obj.ObjectDef.Description & """.", vbInformation, "Отмена выполнения команды" Cancel = True End If End Sub '====================================================================== |