UnpivotMode: Boolean;
UnpivotMode: Boolean;
Свойство UnpivotMode определяет признак импорта данных в режиме кросс-таблицы.
Кросс-таблица - это способ представления данных, при котором информация о различных показателях располагается в заголовках строк и столбцов, а на пересечении строк и столбцов располагаются фактические данные.
Допустимые значения:
True. Импорт данных производится в режиме кросс-таблицы. Для определения параметров идентификации данных в кросс-таблице и указания источника данных, в котором данные представлены в кросс-режиме, используйте свойство IEtlPlainDataProvider.UnpivotProvider;
False. Импорт данных производится из источника, указанного в свойстве IEtlPlainDataProvider.Provider.
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ETL_Task». В файловой системе имеется файл Microsoft Excel с наименованием «Data.xlsx», данные в файле представлены в виде кросс-таблицы.
Sub UserProc;
Var
MB: IMetabase;
ETLTask: IEtlTask;
ETLProvider: IEtlPlainDataProvider;
UnpivotProvider: IDtUnpivotProvider;
ExcelProviderEx: IDtExcelProviderEx;
WxProvider: IWxRectangle;
WxETLProvider: IWxETLObject;
Begin
MB := MetabaseClass.Active;
ETLTask := MB.ItemById("ETL_Task").Edit As IEtlTask;
//Создание нового источника
ETLProvider := ETLTask.Create(EtlObjectType.PlainDataExcelProviderEx) As IEtlPlainDataProvider;
ETLProvider := ETLProvider.Edit;
//Режим кросс-таблицы
ETLProvider.UnpivotMode := True;
//Указание источника, из которого будет производиться импорт
ExcelProviderEx := ETLProvider.Provider As IDtExcelProviderEx;
ExcelProviderEx.File := "c:\data.xlsx";
ExcelProviderEx.Sheet := "Sheet1";
ExcelProviderEx.HasHeader := False;
ExcelProviderEx.Format := "XLSX";
//Настройка параметров кросс-таблицы
UnpivotProvider := ETLProvider.UnpivotProvider;
UnpivotProvider.DataBottom := 5;
UnpivotProvider.DataWidth := 5;
UnpivotProvider.DataRight := 11;
UnpivotProvider.DataTop := 1;
UnpivotProvider.HeadTop := 0;
UnpivotProvider.HeadBottom := 0;
UnpivotProvider.HeadColumn := -1;
UnpivotProvider.LeftBegin := 0;
UnpivotProvider.LeftEnd := 1;
//Сохранение источника
ETLProvider.FillDefault;
ETLProvider.Save;
//Создание визуального объекта
WxProvider := EtlTask.Workspace.CreateRectangle;
WxETLProvider := New WxETLObject.Create;
WxETLProvider.ETLObject := EtlProvider;
WxProvider.Style.TextPosition := WxTextPosition.Bottom;
WxProvider.Style.PictureMarginTop := -10;
WxProvider.PinPosition := New GxPointF.Create(50, 50);
WxProvider.Extension := WxETLProvider As IWxShapeExtension;
//Сохранение задачи
(ETLTask As IMetabaseObject).Save;
End Sub UserProc;
При выполнении примера в задаче ETL будет создан новый загрузчик данных из файла Microsoft Excel. Для объекта будут настроены параметры, необходимые для импорта данных в режиме кросс-таблицы.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
ETLTask: IEtlTask;
ETLProvider: IEtlPlainDataProvider;
UnpivotProvider: IDtUnpivotProvider;
ExcelProviderEx: IDtExcelProviderEx;
WxProvider: IWxRectangle;
WxETLProvider: IWxETLObject = New WxEtlObjectClass();
ObjPoint: GxPointF = New GxPointFClass();
Begin
MB := Params.Metabase;
ETLTask := MB.ItemById["ETL_Task"].Edit() As IEtlTask;
//Создание нового источника
ETLProvider := ETLTask.Create(EtlObjectType.eotPlainDataExcelProviderEx) As IEtlPlainDataProvider;
ETLProvider := ETLProvider.Edit();
//Режим кросс-таблицы
ETLProvider.UnpivotMode := True;
//Указание источника, из которого будет производиться импорт
ExcelProviderEx := ETLProvider.Provider As IDtExcelProviderEx;
ExcelProviderEx.File := "с:\data.xlsx";
ExcelProviderEx.Sheet := "Sheet1";
ExcelProviderEx.HasHeader := False;
ExcelProviderEx.Format := "XLSX";
//Настройка параметров кросс-таблицы
UnpivotProvider := ETLProvider.UnpivotProvider;
UnpivotProvider.DataBottom := 5;
UnpivotProvider.DataWidth := 5;
UnpivotProvider.DataRight := 11;
UnpivotProvider.DataTop := 1;
UnpivotProvider.HeadTop := 0;
UnpivotProvider.HeadBottom := 0;
UnpivotProvider.HeadColumn := -1;
UnpivotProvider.LeftBegin := 0;
UnpivotProvider.LeftEnd := 1;
//Сохранение источника
ETLProvider.FillDefault();
ETLProvider.Save();
//Создание визуального объекта
WxProvider := EtlTask.Workspace.CreateRectangle();
WxETLProvider.ETLObject := EtlProvider;
WxProvider.Style.TextPosition := WxTextPosition.wtpBottom;
WxProvider.Style.PictureMarginTop := -10;
ObjPoint.Create(50, 50);
WxProvider.PinPosition := ObjPoint;
WxProvider.Extension := WxETLProvider As IWxShapeExtension;
//Сохранение задачи
(ETLTask As IMetabaseObject).Save();
End Sub;
См. также: