Получение таблицы

Для работы с таблицей данных предназначен интерфейс ITabSheet.

В данном разделе приведены различные способы получения таблицы:

Получение таблицы из регламентного отчета

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

Пример Fore

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

Sub GetTable;
Var
    mb: IMetabase;
    Report: IPrxReport;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем регламентный отчет
    Report := mb.ItemById("REPORT_TAB").Bind As IPrxReport;
    // Получаем таблицу
    Table := (Report.ActiveSheet As IPrxTable).TabSheet;
End Sub GetTable;

Пример Fore.NET

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

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Report: IPrxReport;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем регламентный отчет
    Report := mb.ItemById["REPORT_TAB"].Bind() As IPrxReport;
    // Получаем таблицу
    Table := (Report.ActiveSheet As IPrxTable).TabSheet;
End Sub;

Получение таблицы из экспресс-отчета

Приведен пример получения таблицы из экспресс-отчета с идентификатором «OLAP_TAB».

Пример Fore

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

Sub GetTable;
Var
    mb: IMetabase;
    Report: IEaxAnalyzer;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем экспресс-отчет
    Report := mb.ItemById("OLAP_TAB").Bind As IEaxAnalyzer;
    // Получаем таблицу
    Table := Report.Grid.TabSheet;
End Sub GetTable;

Пример Fore.NET

Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Tab;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Report: IEaxAnalyzer;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем экспресс-отчет
    Report := mb.ItemById["OLAP_TAB"].Bind() As IEaxAnalyzer;
    // Получаем таблицу
    Table := Report.Grid.TabSheet;
End Sub;

Получение таблицы с помощью компонента TabSheetBox

Приведен пример получения таблицы с помощью компонента TabSheetBox.

Источник данных - экспресс-отчет

Для выполнения примера предполагается наличие формы, содержащей компоненты TabSheetBox с идентификатором «TabSheetBox1» и UiErAnalyzer с идентификатором «UiErAnalyzer1». В репозитории предполагается наличие экспресс-отчета «OLAP_TAB».

Добавьте ссылку на системную сборку Metabase.

Пример Fore

Sub GetTable;
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Указываем экспресс-отчет в качестве источника данных для UiErAnalyzer1
    UiErAnalyzer1.Object := mb.ItemById("OLAP_TAB");
    // Указываем UiErAnalyzer1 в качестве источника данных для TabSheetBox1
    TabSheetBox1.Source := UiErAnalyzer1 As ITabSheetSource;
    // Активируем UiErAnalyzer1
    UiErAnalyzer1.Active := True;
    // Получаем таблицу
    Table := TabSheetBox1.Source.GetTabSheet;
End Sub GetTable;

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Tab;

Private Sub GetTable();
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := Self.Metabase;
    // Указываем экспресс-отчет в качестве источника данных для uiErAnalyzerNet1
    uiErAnalyzerNet1.Object := mb.ItemById["OLAP_TAB"];
    // Указываем uiErAnalyzerNet1 в качестве источника данных для tabSheetBoxNet1
    tabSheetBoxNet1.Source := uiErAnalyzerNet1.ErAnalyzer As ITabSheetSource;
    // Активируем uiErAnalyzerNet1
    uiErAnalyzerNet1.Active := True;
    // Получаем таблицу
    Table := tabSheetBoxNet1.Source.GetTabSheet();
End Sub;

Источник данных - регламентный отчет

Для выполнения примера предполагается наличие формы, содержащей компоненты TabSheetBox с идентификатором «TabSheetBox1» и UIReport с идентификатором «UiReport1». В репозитории предполагается наличие регламентного отчета с идентификатором «REPORT_TAB».

Пример Fore

Добавьте ссылку на системную сборку Metabase.

Sub GetTable;
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Указываем регламентный отчет в качестве источника данных для UiReport1
    UiReport1.Object := mb.ItemById("REPORT_TAB");
    // Указываем UiReport1 в качестве источника данных для TabSheetBox1
    TabSheetBox1.Source := UiReport1 As ITabSheetSource;
    // Активируем UiReport1
    UiReport1.Active := True;
    // Получаем таблицу
    Table := TabSheetBox1.Source.GetTabSheet;
End Sub GetTable;

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Tab;

Private Sub GetTable();
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := Self.Metabase;
    // Указываем регламентный отчет в качестве источника данных для uiReportNet1
    uiReportNet1.Object := mb.ItemById["REPORT_TAB"];
    // Указываем uiReportNet1 в качестве источника данных для tabSheetBoxNet1
    tabSheetBoxNet1.Source := uiReportNet1.ReportUi As ITabSheetSource;
    // Активируем uiReportNet1
    uiReportNet1.Active := True;
    // Получаем таблицу
    Table := tabSheetBoxNet1.Source.GetTabSheet();
End Sub GetTable;

Источник данных - таблица, не привязанная к репозиторию

Компонент UiTabSheet позволяет создавать таблицы, не привязанные к источникам данных из репозитория.

Для выполнения примера предполагается наличие формы, содержащей компоненты TabSheetBox с идентификатором «TabSheetBox1» и UiTabSheet с идентификатором «UiTabSheet1».

Пример Fore

Добавьте ссылку на системную сборку Metabase.

Sub GetTable;
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Указываем UiTabSheet1 в качестве источника данных для TabSheetBox1
    TabSheetBox1.Source := UiTabSheet1 As ITabSheetSource;
    // Получаем таблицу
    Table := TabSheetBox1.Source.GetTabSheet;
End Sub GetTable;

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Tab;

Private Sub GetTable();
Var
    mb: IMetabase;
    Table: ITabSheet;
Begin
    // Получаем текущий репозиторий
    mb := Self.Metabase;
    // Указываем uiTabSheetNet1 в качестве источника данных для tabSheetBoxNet1
    tabSheetBoxNet1.Source := uiTabSheetNet1.TabSheetUi As ITabSheetSource;
    // Получаем таблицу
    Table := tabSheetBoxNet1.Source.GetTabSheet();
End Sub GetTable;

См. также:

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