Report > Интерфейсы сборки Report > IPrxDataSources > IPrxDataSources.AddEx
AddEx(Value: IMetabaseObjectDescriptor);
AddEx(Value: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor);
Value. Дескриптор объекта.
Метод AddEx подключает источник, дескриптор которого передается через параметр Value.
Используйте метод для подключения экспресс-отчета в качестве источника регламентного отчета.
При подключении куба или экспресс-отчета с сохраненным представлением при создании среза настройки размещения измерений и отметка будут подтягиваться из представления куба или экспресс-отчета.
Для выполнения примера предполагается наличие экспресс-отчета с идентификатором «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(0) As IPrxTable).TabSheet.Cell(0, 0);
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, в тексте заголовка окна формы будет отражено название указанного экспресс-отчета.
Для выполнения примера предполагается наличие экспресс-отчета с идентификатором «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[0, 0];
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, в тексте заголовка окна формы будет отражено название указанного экспресс-отчета.
См. также: