ICubeLoaderDimensionBinding.Fields

Синтаксис Fore

Fields: ICubeCreatorFields;

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

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

Описание

Свойство Fields возвращает коллекцию привязок полей источника к атрибутам измерения.

Комментарии

Свойство используется, если необходимо осуществить привязку нескольких полей источника к нескольким атрибутам одного измерения.

Пример Fore

Для выполнения примера предполагается наличие файла «C:\Data.xls», в файле имеются какие-либо данные по странам. Данные располагаются в столбцах с наименованиями «Country ISO», «Country Name», «Date» и «Value», данные имеют месячную динамику. В репозитории предполагается наличие папки с идентификатором «F_Cubes».

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;
    //Источник данных для куба
    Provider := New DtExcelProvider.Create;
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "C:\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Лист1$]";
    //Загрузчик данных в куб
    Loader := New CubeLoaderFromSource.Create;
    Loader.Parent := MB.ItemById("F_CUBES").Bind;
    //Настройка привязок измерений и фактов
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country ISO");
    Binding.AttributeId := "ISO";
    //Привязка второго атрибута к измерению
    Fields := Binding.Fields;
    Field := Fields.Add("Country Name");
    Field.AttributeId := "Name";
    Field.DataType := DbDataType.String;
    Field.Identifying := True;
    //Календарь
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.Month);
    //Привязка фактов
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Создание куба и загрузка данных
    Loader.Load(Provider, Null);
End Sub UserProc;

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

Пример Fore.NET

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

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;
    //Источник данных для куба
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "С:\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Лист1$]";
    //Загрузчик данных в куб
    Loader.Parent := MB.ItemById["F_CUBES"].Bind();
    //Настройка привязок измерений и фактов
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country ISO");
    Binding.AttributeId := "ISO";
    Fields := Binding.Fields;
    //Привязка второго атрибута к измерению
    Field := Fields.Add("Country Name");
    Field.AttributeId := "Name";
    Field.DataType := DbDataType.ddtString;
    Field.Identifying := True;
    //Календарь
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.dclMonth);
    //Привязка фактов
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Создание куба и загрузка данных
    Loader.Load(Provider, Null);
End Sub;

См. также:

ICubeLoaderDimensionBinding