IPrxDataSources.AddEx

Синтаксис Fore

AddEx(Value: IMetabaseObjectDescriptor);

Синтаксис Fore.NET

AddEx(Value: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor);

Параметры

Value. Дескриптор объекта.

Описание

Метод AddEx подключает источник, дескриптор которого передается через параметр Value.

Комментарии

Используйте метод для подключения экспресс-отчета в качестве источника регламентного отчета.

При подключении куба или экспресс-отчета с сохраненным представлением при создании среза настройки размещения измерений и отметка будут подтягиваться из представления куба или экспресс-отчета.

Пример Fore

Для выполнения примера предполагается наличие экспресс-отчета с идентификатором «EXP1» и регламентного отчета с идентификатором «REP1». Создайте форму, добавьте на нее кнопку с наименованием «Button1», компонент ReportBox c наименованием «ReportBox1» и компонент UiReport  c наименованием «UiReport1», укажите «UiReport1» в качестве источника «ReportBox1». Добавьте ссылки на системные сборки Tab, Report, Metabase.

Class OBJ62507Form: Form
    ReportBox1: ReportBox;
    UiReport1: UiReport;
    Button1: Button;
    
    rep: IPrxReport;

    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Var  DS: IPrxDataSource;
         er: IMetabaseObjectDescriptor;
         dataS: IPrxDataSources;
         DI: IPrxDataIsland;
         DIs: IPrxDataIslands;
         slice: IPrxSlice;
         slices: IPrxSlices;
    Begin
         er := MetabaseClass.Active.ItemById("EXP1"As IMetabaseObjectDescriptor;
         dataS := rep.DataSources;
         dataS.AddEx(er);
         DS := dataS.Item(rep.DataSources.Count - 1);
         text := DS.Parent.Name;
         slices :=  DS.Slices;
         slice := slices.Add;
         DIs := rep.DataIslands;
         DI := DIs.Add;
         DI.Slice := slice;
         DI.Sheet := rep.Sheets.Item(0);
         DI.Range := (rep.Sheets.Item(0As IPrxTable).TabSheet.Cell(00);
         DI.OutputPart := PrxDataIslandPart.Full;
         rep.Recalc;
         rep.ActiveSheet := rep.Sheets.Item(0);
    End Sub Button1OnClick;

    Sub OBJ62507FormOnCreate(Sender: Object; Args: IEventArgs);
    Begin
        rep := MetabaseClass.Active.ItemById("REP1").Edit As IPrxReport;
        UiReport1.Instance := rep;
    End Sub OBJ62507FormOnCreate;

End Class OBJ62507Form;

После выполнения примера при нажатии на кнопку «Button1» указанный экспресс-отчет будет добавлен в качестве источника на второй лист компонента ReportBox, в тексте заголовка окна формы будет отражено название указанного экспресс-отчета.

Пример Fore.NET

Для выполнения примера предполагается наличие экспресс-отчета с идентификатором «EXP1» и регламентного отчета с идентификатором «REP1». Создайте форму, добавьте на нее кнопку с наименованием «Button1», компонент ReportBoxNet c наименованием «ReportBoxNet1» и конмпонент UiReportNet  c наименованием «UiReportNet1», укажите «UiReportNet1» в качестве источника «ReportBoxNet1», установите значение True свойства Active компонента «UiReportNet1». Добавьте системные сборки Tab, Report, Metabase.

Imports System;
Imports System.Collections.Generic;
Imports System.ComponentModel;
Imports System.Data;
Imports System.Drawing;
Imports System.Text;
Imports System.Windows.Forms;
Imports Prognoz.Platform.Forms.NET;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Forms;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

Public Partial Class OBJ934Form: Prognoz.Platform.Forms.NET.ForeNetForm
    
Public Constructor OBJ934Form();
    
Begin
        InitializeComponent();
    
End Constructor;

    rep: IPrxReport;
    
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    
Var
        DSS: IPrxDataSources;
        DS: IPrxDataSource;
        Sheets: IPrxSheets;
        er: IMetabaseObjectDescriptor;
        DI: IPrxDataIsland;
        DIs: IPrxDataIslands;
        slice: IPrxSlice;
    
Begin
        er := self.Metabase.ItemById[
"EXP1"As IMetabaseObjectDescriptor;
        DSS := rep.DataSources;
        DSS.AddEx(er);
        DS := DSS.Item[DSS.Count - 
1];
        text := DS.Parent.Name;
        slice := DS.Slices.Add();
        DIs := rep.DataIslands;
        DI := DIs.Add();
        DI.Slice := slice;
        Sheets := rep.Sheets;
        DI.Sheet := Sheets.Item[0];
        DI.Range := (Sheets.Item[0
As IPrxTable).TabSheet.Cell[00];
        DI.OutputPart := PrxDataIslandPart.pdipFull;
        Rep.Recalc();
        rep.ActiveSheet := rep.Sheets.Item[0];
    
End Sub;

    
Private Sub OBJ934Form_Load(sender: System.Object; e: System.EventArgs);
    
Begin
        rep := self.Metabase.ItemById[
"REP1"].Edit() As IPrxReport;
        uireportnet1.ReportUi.Instance := rep;
    
End Sub;

End Class;

После выполнения примера при нажатии на кнопку «Button1» указанный экспресс-отчет будет добавлен в качестве источника на второй лист компонента ReportBoxNet, в тексте заголовка окна формы будет отражено название указанного экспресс-отчета.

См. также:

IPrxDataSources