Настройка объектов отчета

Рассмотрим пример добавления на лист регламентного отчета диаграммы, источником данных которой является добавленный ранее срез данных.

Для выполнения примера предполагается наличие в репозитории регламентного отчета с идентификатором «REPORT_INTRO» и стандартного куба с идентификатором «CUBE_SEP», используемого в качестве источника данных отчета. Для источника данных регламентного отчета определен срез с идентификатором «Slice».

Пример Fore

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    Tab: ITabSheet;
    Chart: IPrxChart;
    ClassId: String;
    Placement: IGxRectF;
    Source: IPrxDataSource;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("REPORT_INTRO").Edit;
    Report := MObj As IPrxReport;
    Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
    ClassId:="PrxChart";
    Placement:=New GxRectF.Create(50,50,200,200);
    Chart := (Tab.Objects.Add(ClassId,Placement)) As IPrxChart;
    Chart.SourceType := PrxChartSourceType.Slice;
    Source := Report.DataSources.FindById("CUBE_SEP");
    Chart.Slice := Source.Slices.FindByName("Slice");
    (Chart As IChart).Type := ChartType.Circles;
    MObj.Save;
End Sub UserProc;

В результате выполнения примера на лист регламентного отчета будет добавлена диаграмма, в качестве источника данных которой выбран срез указанного источника данных. Для диаграммы определено ее расположение на листе и установлен тип «Круговая диаграмма».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    Tab: ITabSheet;
    Chart: IPrxChart;
    ClassId: String;
    Placement: GxRectF = New GxRectFClass();
    Source: IPrxDataSource;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["REPORT_INTRO"].Edit();
    Report := MObj As IPrxReport;
    Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
    ClassId:="PrxChart";
    Placement.Create(50,50,200,200);
    Chart := (Tab.Objects.Add(ClassId,Placement)) As IPrxChart;
    Chart.SourceType := PrxChartSourceType.pcstSlice;
    Source := Report.DataSources.FindById("CUBE_SEP");
    Chart.Slice := Source.Slices.FindByName("Slice");
    (Chart As IChart).Type := ChartType.chtCircles;
    MObj.Save();
End Sub;

См. также:

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