IEtlPlainDataProvider.UnpivotMode

Fore syntax

UnpivotMode: Boolean;

Fore.NET syntax

UnpivotMode: Boolean;

Description

The UnpivotMode property determines whether data is imported in the crosstab mode.

Comments

Crosstab is a method of data presentation, at which information about various factors is located in headers of rows and columns, and actual data is located in row and column cells.

Available values:

Fore example

Executing the example requires that the repository contains an ETL task with the ETL_Task identifier. The file system contains a Microsoft Excel file named Data.xlsx, the file data is presented in the crosstab mode.

Example of file

SubUserProc; Var MB:IMetabase; ETLTask:IEtlTask; ETLProvider:IEtlPlainDataProvider; UnpivotProvider:IDtUnpivotProvider; ExcelProviderEx:IDtExcelProviderEx; WxProvider:IWxRectangle; WxETLProvider:IWxETLObject; Begin MB:=MetabaseClass.Active; ETLTask:=MB.ItemById("ETL_Task").EditAsIEtlTask; //Create a new provider ETLProvider:=ETLTask.Create(EtlObjectType.PlainDataExcelProviderEx)AsIEtlPlainDataProvider; ETLProvider:=ETLProvider.Edit;

//Cross table mode ETLProvider.UnpivotMode:=True; //Determine the provider from which import is performed ExcelProviderEx:=ETLProvider.ProviderAsIDtExcelProviderEx; ExcelProviderEx.File:="c:\data.xlsx"; ExcelProviderEx.Sheet:="Sheet1"; ExcelProviderEx.HasHeader:=False; ExcelProviderEx.Format:="XLSX"; //Set up cross table parameters 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; //Save the provider ETLProvider.FillDefault; ETLProvider.Save; //Create visual object WxProvider:=EtlTask.Workspace.CreateRectangle; WxETLProvider:=NewWxETLObject.Create;

WxETLProvider.ETLObject:=EtlProvider; WxProvider.Style.TextPosition:=WxTextPosition.Bottom; WxProvider.Style.PictureMarginTop:=-10; WxProvider.PinPosition:=NewGxPointF.Create(50,50); WxProvider.Extension:=WxETLProviderAsIWxShapeExtension; //Save the task (ETLTaskAsIMetabaseObject).Save; EndSubUserProc;

On executing the example a new data loader is created in the ETL task from Microsoft Excel file. Parameters required to import data in the crosstab mode are set up for the object.

Fore.NET example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

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;
     //Create a new source
    ETLProvider := ETLTask.Create(EtlObjectType.eotPlainDataExcelProviderEx) As IEtlPlainDataProvider;
    ETLProvider := ETLProvider.Edit();
     //Crosstab mode
    ETLProvider.UnpivotMode := True;
     //Specify a source, from which import will be executed
    ExcelProviderEx := ETLProvider.Provider As IDtExcelProviderEx;
    ExcelProviderEx.File := "c:\data.xlsx";
    ExcelProviderEx.Sheet := "Sheet1";
    ExcelProviderEx.HasHeader := False;
    ExcelProviderEx.Format := "XLSX";

//Set up cross table parameters 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; //Save provider ETLProvider.FillDefault(); ETLProvider.Save(); //Create visual object 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:=WxETLProviderAsIWxShapeExtension; //Save task (ETLTaskAsIMetabaseObject).Save(); EndSub;

See also:

IEtlPlainDataProvider