IEtlPlainDataProvider.UnpivotMode

Синтаксис Fore

UnpivotMode: Boolean;

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

UnpivotMode: Boolean;

Описание

Свойство UnpivotMode определяет признак импорта данных в режиме кросс-таблицы.

Комментарии

Кросс-таблица - это способ представления данных, при котором информация о различных показателях располагается в заголовках строк и столбцов, а на пересечении строк и столбцов располагаются фактические данные.

Допустимые значения:

Пример Fore

Для выполнения примера предполагается наличие в репозитории задачи 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(5050);
    WxProvider.Extension := WxETLProvider As IWxShapeExtension;
     //Сохранение задачи
    (ETLTask As IMetabaseObject).Save;
End Sub UserProc;

При выполнении примера в задаче ETL будет создан новый загрузчик данных из файла Microsoft Excel. Для объекта будут настроены параметры, необходимые для импорта данных в режиме кросс-таблицы.

Пример Fore.NET

Необходимые требования и результат выполнения примера 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(5050);
    WxProvider.PinPosition := ObjPoint;
    WxProvider.Extension := WxETLProvider As IWxShapeExtension;
     //Сохранение задачи
    (ETLTask As IMetabaseObject).Save();
End Sub;

См. также:

IEtlPlainDataProvider