Object: IMetabaseObjectDescriptor;
Object: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;
Свойство Object определяет объект, который будет использоваться для обработки событий.
Обработчиками событий могут являться только следующие объекты Fore:
сборка;
модуль;
форма.
Данное свойство актуально, если свойства ISharedEventHandler.Enabled принимает значение True.
Для выполнения примера в репозитории необходимо наличие модуля с идентификатором «EXPRESS_EVENTS», который будет служить обработчиком событий экспресс-отчетов. Модуль содержит специальный класс EventsClass, описание которого приведено на странице «Обработка событий».
Добавьте ссылки на системные сборки: Fore, Metabase.
Sub UserPRoc;
Var
MB: IMetabase;
SParams: ISharedParams;
ShPar: IMetabaseObjectDescriptor;
EventHandlers: ISharedEventHandlers;
EventHandler: ISharedEventHandler;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим область глобальных переменных
ShPar := MB.SpecialObject(MetabaseSpecialObject.SharedParams);
// Получим параметры репозитория
SParams := Shpar.Edit As ISharedParams;
// Получим объект для работы с обработчиком событий отчетов
EventHandlers := SParams.EventHandlers;
// Будем использовать обработчик событий отчетов
EventHandlers.Enabled := True;
// Получим и активируем обработчик событий экспресс-отчетов
EventHandler := EventHandlers.EventHandler(SharedEventHandlerType.ExpressReport);
EventHandler.Enabled := True;
// Подключим модуль для обработки событий
EventHandler.Object := MB.ItemById("EXPRESS_EVENTS");
// Установим класс модуля
EventHandler.EventsClass := "EVENTSCLASS";
// Сохраним изменения
(SParams As ImetabaseObject).Save;
End Sub UserPRoc;
После выполнения примера для экспресс-отчетов будет установлен обработчик событий.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.KeFore;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
SParams: ISharedParams;
ShPar: IMetabaseObjectDescriptor;
EventHandlers: ISharedEventHandlers;
EventHandler: ISharedEventHandler;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим область глобальных переменных
ShPar := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams];
// Получим параметры репозитория
SParams := Shpar.Edit() As ISharedParams;
// Получим объект для работы с обработчиком событий отчетов
EventHandlers := SParams.EventHandlers;
// Будем использовать обработчик событий отчетов
EventHandlers.Enabled := True;
// Получим и активируем обработчик событий экспресс-отчетов
EventHandler := EventHandlers.EventHandler[SharedEventHandlerType.sehtExpressReport];
EventHandler.Enabled := True;
// Подключим модуль для обработки событий
EventHandler.Object := MB.ItemById["EXPRESS_EVENTS"];
// Установим класс модуля
EventHandler.EventsClass := "EVENTSCLASS";
// Сохраним изменения
(SParams As ImetabaseObject).Save();
End Sub;
См. также: