IPivot.AddEventHandler

Синтаксис Fore

AddEventHandler(Events: IPivotEvents): Integer;

Синтаксис Fore.NET

AddEventHandler(Events: Prognoz.Platform.Interop.Pivot.IPivotEvents): integer;

Параметры

Events. Класс обработчика событий таблицы.

Описание

Метод AddEventHandler определяет обработчик событий таблицы.

Комментарии

Обработчик событий таблицы используется только в рамках сессии и не сохраняется вместе с отчетом, поэтому целесообразно использовать формы Fore или Fore.NET.

Пример Fore

Для выполнения примера в репозитории необходимо наличие:

Подключение обработчика будет осуществляться при открытии формы. Удаление обработчика событий с использованием метода IPivot.RemoveEventHandler  - при закрытии формы.

Добавьте ссылки на системные сборки: Dimensions, Pivot, Ui.

// Обработчик событий
Public Class Pivot_Events: PivotEvents
    
    // Событие, возникающее при редактировании содержимого отметки измерения
    Public Sub OnSelectionContentChange(Value: IDimInstance);
    Begin
        WinApplication.InformationBox("Произошло событие OnSelectionContentChange для " + Value.Ident);
    End Sub OnSelectionContentChange;
    
End Class Pivot_Events;

// Открытие формы
Sub EVENTHANDLERFormOnShow(Sender: Object; Args: IEventArgs);
Var
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    cl: Pivot_Events;
Begin
    // Получим экспресс-отчет
    Express := UiErAnalyzer1.ErAnalyzer;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Включим возможность генерации событий
    Pivot.EventsEnabled := True;
    // Создадим новый класс
    cl := New Pivot_Events.Create;
    // Подключим обработчик событий для таблицы
    Pivot.AddEventHandler(cl);
End Sub EVENTHANDLERFormOnShow;


// Закрытие формы
Sub EVENTHANDLERFormOnClose(Sender: Object; Args: IEventArgs);
Var
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    cl: Pivot_Events;
Begin
    // Получим экспресс-отчет
    Express := UiErAnalyzer1.ErAnalyzer;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Включим возможность генерации событий
    Pivot.EventsEnabled := True;
    // Создадим новый класс
    cl := New Pivot_Events.Create;
    // Подключим обработчик событий для таблицы
    Pivot.AddEventHandler(cl);
    // Удалим обработчик событий
    Pivot.RemoveEventHandler(Pivot.AddEventHandler(cl));
End Sub EVENTHANDLERFormOnClose;

После запуска формы переименуйте элемент измерения, который отображается в шапке/боковике таблицы. В результате будет выведено информационное окно, в котором указано для измерения с каким идентификатором возникло событие.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;

// Обработчик событий
Public Class Pivot_Events: IPivotEvents
    
    // Событие, возникающее при редактировании содержимого отметки измерения
    Public Sub OnSelectionContentChange(Value: IDimInstance);
    Begin
        MessageBox.Show("Произошло событие OnSelectionContentChange для " + Value.Ident);
    End Sub OnSelectionContentChange;
    // Вызов остальных методов для реализации событий
    …
End Class Pivot_Events;

// Открытие формы
Private Sub EVENTHANDLER_NETForm_Shown(sender: System.Object; e: System.EventArgs);
Var
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    cl: Pivot_Events;
Begin
    // Получим экспресс-отчет
    Express := UiErAnalyzerNet1.ErAnalyzer.ErAnalyzer;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Включим возможность генерации событий
    Pivot.EventsEnabled := True;
    // Создадим новый класс
    cl := New Pivot_Events.Create();
    // Подключим обработчик событий для таблицы
    Pivot.AddEventHandler(cl);
End Sub;

// Закрытие формы
Private Sub EVENTHANDLER_NETForm_FormClosing(sender: System.Object; e: System.Windows.Forms.FormClosingEventArgs);
Var
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    cl: Pivot_Events;
Begin
    // Получим экспресс-отчет
    Express := UiErAnalyzerNet1.ErAnalyzer.ErAnalyzer;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Включим возможность генерации событий
    Pivot.EventsEnabled := True;
    // Создадим новый класс
    cl := New Pivot_Events.Create();
    // Подключим обработчик событий для таблицы
    Pivot.AddEventHandler(cl);
    // Удалим обработчик событий
    Pivot.RemoveEventHandler(Pivot.AddEventHandler(cl));
End Sub;

См. также:

IPivot