ReportBeforeObjectRectChangeEventArgs.Create

Синтаксис

Create (Report: IReportBox; Sheet: IPrxSheet; Object: ITabObject; Type: TabObjectChangeType, Value: IGxRectF; Cancel: Boolean);

Create (Report: Prognoz.Platform.Interop.Report.ReportBox; Sheet: Prognoz.Platform.Interop.Report.IPrxSheet; Object: Prognoz.Platform.Interop.Tab.ITabObject; Type: Prognoz.Platform.Interop.Tab.TabObjectChangeType; Value: Prognoz.Platform.Interop.Drawing.IGxRectF; Cancel: boolean);

Параметры

Report. Компонент, для которого генерируется событие;

Sheet. Лист отчёта, для которого генерируется событие;

Object. Объект, для которого генерируется событие;

Type. Тип изменения, которое происходит с объектом;

Value. Новое положение и размер объекта;

Cancel. Признак того, отменять ли вращение объекта.

Описание

Конструктор Create создаёт аргумент события, возникающего до перемещения объекта или изменения его размеров.

Комментарии

По умолчанию аргументы события генерируются автоматически при наступлении события. Конструктор требуется для вызова события вручную.

Возможные значения параметра Cancel:

Пример

Для выполнения примера предполагается наличие формы, содержащей компоненты ReportBox с наименованием ReportBox1 и UiReport с наименованием UiReport1, являющийся источником данных для ReportBox1. В свойстве Active компонента UiReport1 установите значение True. UiReport1 должен содержать загруженный регламентный отчет с фигурами на активном листе.

В примере будет создан и вызван пользовательский обработчик для события OnBeforeObjectChange в компоненте ReportBox1.

Вместо компонентов Fore используйте их Fore.NET аналоги.

Для примера Fore процедура UserOnBeforeObjectChange должна быть назначена обработчиком события OnBeforeObjectChange для компонента ReportBox1.

Для примера Fore.NET процедура ReportBeforeObjectRectChangeEventArgs_Create_FormForm_Shown должна быть назначена обработчиком события Shown для формы.

Добавьте ссылки на системные сборки: Drawing, Report, Tab.

// Создаем пользовательский обработчик события OnBeforeObjectChange
Sub UserOnBeforeObjectChange(Sender: Object; Args: IReportObjectChangeEventArgs);
Begin
    
Select Case Args.Type
    
Case TabObjectChangeType.Angle:
        Debug.WriteLine(
"Объект '" + Args.Object.Id + "' повернули");
    
Case TabObjectChangeType.Rect:
        Debug.WriteLine(
"Объект '" + Args.Object.Id + "' переместили или изменили его размер");
    
End Select;
End Sub UserOnBeforeObjectChange;
// Вызываем пользовательский обработчик события OnBeforeObjectChange    
Public Sub UserProc;
Var
    Report: IPrxReport;
    Sheet: IPrxSheet;
    Tab: ITabSheet;
    rObject: ITabObject;
    Rect: IGxRectF;
    Argument: IReportBeforeObjectRectChangeEventArgs;
Begin
    Report := ReportBox1.Report.Report;
    Sheet := Report.Sheets.Item(
0);
    Tab := (Sheet 
As IPrxTable).TabSheet;
    rObject := Tab.Objects.Object(
"PrxShape1"As ITabObject;
    Rect := 
New GxRectF.Create(10106060);
    Argument := 
New ReportBeforeObjectRectChangeEventArgs.Create(ReportBox1, Sheet, rObject, TabObjectChangeType.Rect, Rect, False);
    ReportBox1.OnBeforeObjectChange(ReportBox1, Argument);
End Sub UserProc;

Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

// Создаем пользовательский обработчик события OnBeforeObjectChange
Public Sub UserOnBeforeObjectChange(Sender: Object; Args: IReportObjectChangeEventArgs);
Begin
    Select Case Args.Type
    
Case TabObjectChangeType.toctAngle:
        System.Diagnostics.Debug.WriteLine(
"Объект '" + Args.Object.Id + "' повернули");
    
Case TabObjectChangeType.toctRect:
        System.Diagnostics.Debug.WriteLine(
"Объект '" + Args.Object.Id + "' переместили или изменили его размер");
    
End Select;
End Sub UserOnBeforeObjectChange;
// Назначаем событию OnBeforeObjectChange пользовательский обработчик UserOnBeforeObjectChange
Private Sub ReportBeforeObjectRectChangeEventArgs_Create_FormForm_Shown(sender: System.Object; e: System.EventArgs);
Begin
    ReportBoxNet1.OnBeforeObjectChange += 
New Prognoz.Platform.Forms.Net.ReportBoxNet.OnBeforeObjectChangeEventHandler(UserOnBeforeObjectChange);
End Sub;
// Вызываем пользовательский обработчик события OnBeforeObjectChange    
Public Sub UserProc();
Var
    Report: IPrxReport;
    Sheet: IPrxSheet;
    Tab: ITabSheet;
    rObject: ITabObject;
    Rect: GxRectFClass = 
New GxRectFClass.Create();
    Argument: ReportBeforeObjectRectChangeEventArgsClass = 
New ReportBeforeObjectRectChangeEventArgsClass.Create();
Begin
    Report := ReportBoxNet1.Source.Report;
    Sheet := Report.Sheets.Item[
0];
    Tab := (Sheet 
As IPrxTable).TabSheet;
    rObject := Tab.Objects.Object[
"PrxShape1"As ITabObject;
    Rect.Create(
10106060);
    Argument.Create(ReportBoxNet1.CtrlBox 
As ReportBox, Sheet, rObject, TabObjectChangeType.toctRect, Rect, False);
    UserOnBeforeObjectChange(ReportBoxNet1, Argument);
End Sub UserProc;

В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnAfterObjectChange.

См. также:

ReportObjectChangeEventArgs