AddEventHandler(Events: IPivotEvents): Integer;
AddEventHandler(Events: Prognoz.Platform.Interop.Pivot.IPivotEvents): integer;
Events. Класс обработчика событий таблицы.
Метод AddEventHandler определяет обработчик событий таблицы.
Обработчик событий таблицы используется только в рамках сессии и не сохраняется вместе с отчетом, поэтому целесообразно использовать формы Fore или Fore.NET.
Для выполнения примера в репозитории необходимо наличие:
формы, содержащей следующие компоненты:
EaxDocumentViewerBox с идентификатором «EaxDocumentViewerBox1»;
UiErAnalyzer с идентификатором «UiErAnalyzer1», который служит источником данных для «EaxDocumentViewerBox1»;
экспресс-отчета, являющегося источником данных для «UiErAnalyzer1». Отчет содержит таблицу.
Подключение обработчика будет осуществляться при открытии формы. Удаление обработчика событий с использованием метода 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. Вместо компонентов 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;
См. также: