ICubeLoaderDimensionBinding.Fields

Fore Syntax

Fields: ICubeCreatorFields;

Fore.NET Syntax

Fields: Prognoz.Platform.Interop.Cubes.ICubeCreatorFields;

Description

The Fields property returns the collection of source field bindings to dimension attributes.

Comments

The property is used if it is required to bind several source fields to several attributes of one dimension.

Fore Example

Executing the example requires the C:\Data.xls file that contains data by countries. The data is located in columns named Country ISO, Country Name, Date and Value, the data has monthly frequency. The repository must have a folder with the F_Cubes identifier.

Sub UserProc;
Var
    MB: IMetabase;
    Loader: ICubeLoaderFromSource;
    Provider: IDtExcelProvider;
    Bindings: ICubeLoaderDimensionBindings;
    Binding: ICubeLoaderDimensionBinding;
    Fields: ICubeCreatorFields;
    Field: ICubeCreatorField;
    FactBindings: ICubeLoaderFactBindings;
    FactBinding: ICubeLoaderFactBinding;
Begin
    MB := MetabaseClass.Active;
    //Data source for cube
    Provider := New DtExcelProvider.Create;
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "C:\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Sheet1$]";
    //Cube data loader 
    Loader := New CubeLoaderFromSource.Create;
    Loader.Parent := MB.ItemById("F_CUBES").Bind;
    //Set up bindings of dimensions and facts
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country ISO");
    Binding.AttributeId := "ISO";
    //Bind the second attribute to dimension
    Fields := Binding.Fields;
    Field := Fields.Add("Country Name");
    Field.AttributeId := "Name";
    Field.DataType := DbDataType.String;
    Field.Identifying := True;
    //Calendar
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.Month);
    //Facts binding
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Cube creation and data loading
    Loader.Load(Provider, Null);
End Sub UserProc;

The import object from Excel and the cube data loader are initialized on executing the example. Bindings of dimensions and facts of created cube are set up. Data of two source fields is loaded to the dimension by countries. A new standard cube, required dictionaries and dimensions and the table to store the data are created on executing the Load method. The data will be imported to the created table.

Fore.NET Example

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

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Loader: ICubeLoaderFromSource = New CubeLoaderFromSourceClass();
    Provider: IDtExcelProvider = New DtExcelProviderClass();
    Bindings: ICubeLoaderDimensionBindings;
    Binding: ICubeLoaderDimensionBinding;
    Fields: ICubeCreatorFields;
    Field: ICubeCreatorField;
    FactBindings: ICubeLoaderFactBindings;
    FactBinding: ICubeLoaderFactBinding;
Begin
    MB := Params.Metabase;
    //Data source for cube
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "C:\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Sheet1$]";
    //Cube data loader 
    Loader.Parent := MB.ItemById["F_CUBES"].Bind();
    //Set up bindings of dimensions and facts
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country ISO");
    Binding.AttributeId := "ISO";
    Fields := Binding.Fields;
    //Bind the second attribute to dimension
    Field := Fields.Add("Country Name");
    Field.AttributeId := "Name";
    Field.DataType := DbDataType.ddtString;
    Field.Identifying := True;
    //Calendar
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.dclMonth);
    //Facts binding
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Cube creation and data loading
    Loader.Load(Provider, Null);
End Sub;

See also:

ICubeLoaderDimensionBinding