Добавление объектов в таблицу

Для работы с объектами в таблице предназначен интерфейс ITabObjects.

Приведен пример добавления и группировки двух фигур в регламентном отчете с идентификатором «REPORT_TAB».

Будут добавлены эллипс и треугольник, которые затем будут объединены в группу. В результате таблица будет выглядеть следующим образом:

Пример Fore

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

Sub Objects;
Var
    mb: IMetabase;
    Report: IPrxReport;
    Table: ITabSheet;
    Objs: ITabObjects;
    Obj, Obj1: ITabObject;
    Placement: IGxRectF;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем регламентный отчет
    Report := mb.ItemById("REPORT_TAB").Edit As IPrxReport;
    // Получаем таблицу
    Table := (Report.ActiveSheet As IPrxTable).TabSheet;
    // Получаем коллекцию объектов отчета
    Objs := Table.Objects;
    // Очищаем коллекцию
    Objs.Clear;
    // Задаем расположение первого объекта
    Placement := New GxRectF.Create(10105035);
    // Добавляем первый объект в коллекцию
    Obj := Objs.Add("PrxShape", Placement);
    // Задаем текст всплывающей подсказки для первого объекта
    Obj.Tooltip := "Эллипс";
    // Указываем тип первого объекта - эллипс
    (Obj As iprxShape).Type := PrxShapeType.Ellipse;
    // Задаем расположение второго объекта
    Placement := New GxRectF.Create(50357550);
    // Добавляем второй объект в коллекцию
    Obj1 := Objs.Add("PrxShape", Placement);
    // Задаем текст всплывающей подсказки для второго объекта
    Obj1.Tooltip := "Треугольник";
    // Указываем тип второго объекта - треугольник
    (Obj1 As iprxShape).Type := PrxShapeType.Triangle;
    // Выделяем оба объекта
    Obj.Select_;
    Obj1.Select_;
    // Объединяем выделенные объекты в группу
    Objs.GroupSelected;
    // Сохраняем изменения
    (Report As IMetabaseObject).Save;
End Sub Objects;

Пример Fore.NET

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

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Report: IPrxReport;
    Table: ITabSheet;
    Objs: ITabObjects;
    Obj, Obj1: ITabObject;
    Placement: GxRectF;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем регламентный отчет
    Report := mb.ItemById["REPORT_TAB"].Edit() As IPrxReport;
    // Получаем таблицу
    Table := (Report.ActiveSheet As IPrxTable).TabSheet;
    // Получаем коллекцию объектов отчета
    Objs := Table.Objects;
    // Очищаем коллекцию
    Objs.Clear();
    // Задаем расположение первого объекта
    Placement := New GxRectFClass.Create();
    Placement.Create(10105035);
    // Добавляем первый объект в коллекцию
    Obj := Objs.Add("PrxShape", Placement);
    // Задаем текст всплывающей подсказки для первого объекта
    Obj.Tooltip := "Эллипс";
    // Указываем тип первого объекта - эллипс
    (Obj As iprxShape).Type := PrxShapeType.pstEllipse;
    // Задаем расположение второго объекта
    Placement.Create(50357550);
    // Добавляем второй объект в коллекцию
    Obj1 := Objs.Add("PrxShape", Placement);
    // Задаем текст всплывающей подсказки для второго объекта
    Obj1.Tooltip := "Треугольник";
    // Указываем тип второго объекта - треугольник
    (Obj1 As iprxShape).Type := PrxShapeType.pstTriangle;
    // Выделяем оба объекта
    Obj.@Select();
    Obj1.@Select();
    // Объединяем выделенные объекты в группу
    Objs.GroupSelected();
    // Сохраняем изменения
    (Report As IMetabaseObject).Save();
End Sub;

См. также:

Общие принципы программирования с использованием сборки Tab