Express > Интерфейсы сборки Express > IEaxAnalyzerOptions > IEaxAnalyzerOptions.UseSharedEventHandler
UseSharedEventHandler: Boolean;
UseSharedEventHandler: boolean;
Свойство UseSharedEventHandler определяет, будет ли экспресс-отчет использовать обработчик событий.
Возможные значения:
True. По умолчанию. Экспресс-отчет будет использовать обработчик событий;
False. Экспресс-отчет не будет использовать обработчик событий.
Объекты Fore.NET нельзя использовать в качестве обработчика событий.
Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS_EVENTHANDLER».
Также в репозитории необходимо наличие модуля-обработчика событий с идентификатором «EXPRESSREPEVENTS», который содержит класс «ExpressEvents» для реализации событий. Описание данного класса приведено в примере для IEaxAnalyzerUserEvents.OnAfterExecuteAnalyzer.
Добавьте ссылки на системные сборки: Express, Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
Analyzer: IEaxAnalyzer;
Options: IEaxAnalyzerOptions;
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("EXPRESSREPEVENTS");
// Установим класс модуля
EventHandler.EventsClass := "ExpressRep_Events";
// Сохраним изменения в параметрах репозитория
(SParams As ImetabaseObject).Save;
// Получим экспресс-отчет
Analyzer := MB.ItemById("EXPRESS_EVENTHANDLER").Edit As IEaxAnalyzer;
// Получим параметры отчета
Options := Analyzer.Options;
// Будем использовать обработчик событий
If Options.UseSharedEventHandler = False Then
Options.UseSharedEventHandler := True;
End If;
// Сохраним изменения в экспресс-отчете
(Analyzer As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера экспресс-отчет будет использовать указанный обработчик событий.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.KeFore;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Analyzer: IEaxAnalyzer;
Options: IEaxAnalyzerOptions;
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["EXPRESSREPEVENTS"];
// Установим класс модуля
EventHandler.EventsClass := "ExpressRep_Events";
// Сохраним изменения в параметрах репозитория
(SParams As ImetabaseObject).Save();
// Получим экспресс-отчет
Analyzer := MB.ItemById["EXPRESS_EVENTHANDLER"].Edit() As IEaxAnalyzer;
// Получим параметры отчета
Options := Analyzer.Options;
// Будем использовать обработчик событий
If Options.UseSharedEventHandler = False Then
Options.UseSharedEventHandler := True;
End If;
// Сохраним изменения в экспресс-отчете
(Analyzer As IMetabaseObject).Save();
End Sub;
См. также: