Обработка событий отчёта

Одним из способов расширения функциональности отчётов является обработка событий, которые генерируются при работе пользователя с отчётом.

Обработчик событий позволяет выполнять заданное действие при каждом возникновении события. Например, при подключении модуля обработки событий появляется возможность:

Для регламентных отчётов можно настроить обработку событий, происходящих:

Основное назначение подключения прикладных макросов и обработчиков событий:

Сигнатура указываемого макроса может содержать параметры.

Работа с модулями обработки событий

Для работы с модулями обработки событий выполните одно из действий:

После выполнения одного из действий будет открыта боковая панель «Список модулей»:

Выберите существующий модуль обработки событий или создайте новый.

Подключение существующего модуля

Создание модуля

Создание обработчика событий

Сброс обработчика событий

Открытие модуля в среде разработки

Удаление модуля из списка

Помимо обработки событий в модуле могут быть реализованы пользовательские функции для преобразования данных. Если в списке модулей содержится такой модуль, то при формировании формулы пользовательские функции будут доступны для использования в мастере функций.

Пример обработчика событий

Для выполнения примера создайте модуль. Добавьте ссылки на системные сборки: Drawing, Express, Report, Tab:

Sub Main;
Begin
    
End Sub Main;

Class EventsClass: ReportEvents
...
    // Событие, происходящее после вычисления листа регламентного отчёта
    Public Sub OnAfterRecalcSheet(Sheet: IPrxSheet);
    Var
        Tab: ITabSheet;
        Range: ITabRange;
        Style: ITabCellStyle;
    Begin
        // Получим таблицу листа отчёта
        Tab := Sheet As ITabSheet;
        // Выберем диапазон ячеек для раскрашивания
        Range := Tab.Cells(00105);
        // Зададим стиль оформления для выбранного диапазона
        Style := Range.Style;
        // Установим закраску фона ячеек выбранного диапазона зелёным цветом
        Style.BackgroundBrush := New GxSolidBrush.Create(GxColor.FromName("Green"));
    End Sub OnAfterRecalcSheet;
...
End Class EventsClass;

В результате при наступлении события, происходящего после вычисления листа регламентного отчёта, фон диапазона ячеек A0:F10 будет перекрашен в зелёный цвет.

См. также:

Построение отчёта