Sub OnBeforeOpenReport(Report: IPrxReport; Var Cancel: Boolean);
Begin
// набор операторов
End Sub OnBeforeOpenReport;
Report - регламентный отчет, сгенерировавший событие.
Cancel - данный параметр отвечает за открытие отчета. При значении данного параметра True регламентный отчет открыт не будет, при значении False - отчет будет открыт.
Метод OnBeforeOpenReport реализует событие, происходящее перед открытием регламентного отчета.
Если в событии OnBeforeOpenReport поменять отметку в измерении среза данных, к которому привязан элемент управления, то отчет (ReportEvents.OnAfterExecuteReport, ReportEvents.OnBeforeExecuteReport) и его листы (ReportEvents.OnAfterRecalcSheet, ReportEvents.OnBeforeRecalcSheet) будут вычисляться дважды. Для обхода данной особенности используйте алгоритм:
Отключите вычисление листа(ов), к которому(ым) привязан элемент управления. Для этого свойство IPrxControl.AutoRecalc должно принять значение False.
Если используется аналитическая область данных, то выключаем вычисление таблицы. Для этого свойство IPivot.EventsEnabled должно принять значение False.
Измените отметку в измерении среза данных.
Если используется аналитическая область данных, то включаем вычисление таблицы. Для этого свойство IPivot.EventsEnabled должно принять значение True.
Включите вычисление листа(ов), к которому(ым) привязан элемент управления. Для этого свойство IPrxControl.AutoRecalc должно принять True.
Примечание. Если используется обычная область данных, то пункты 2 и 4 следует пропустить.
См. также: