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