ICubeLoader.Source

Синтаксис

Source: ICubeModelDestination;

Описание

Свойство Source определяет куб-источник данных для загрузки.

Пример

Для выполнения примера предполагается наличие двух кубов в репозитории. Первый куб будет использоваться в качестве источника, второй - в качестве приемника данных. Идентификаторы кубов "Cube_1" и "Cube_2".

Sub Main;

Var

MB: IMetabase;

CrInf: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Cube: ICubeModel;

CubeDist: ICubeModelDestination;

CubLoad: ICubeLoader;

FixInfo: ICubeLoaderFixInfo;

DimFix: ICubeLoaderDimensionFix;

DimsSource: ICubeModelDimensions;

Dim, Dim1: IDimensionModel;

MapInfo: ICubeLoaderMapInfo;

MapItem: ICubeLoaderMapItem;

i: Integer;

Begin

MB := MetabaseClass.Active;

CrInf := Mb.CreateCreateInfo;

CrInf.ClassId := MetabaseObjectClass.KE_CLASS_CUBELOADER;

CrInf.Id := "Cube_Load";

CrInf.Name := "Cube_Load";

CrInf.Permanent := False;

MObj := Mb.CreateObject(CrInf).Edit;

CubLoad := MObj As ICubeLoader;

//куб-источник

Cube := MB.ItemById("Cube_1").Bind As ICubeModel;

CubeDist := Cube.Destinations.DefaultDestination;

CubLoad.Source := CubeDist;

//измерения куба-источника, среди которых будут искаться измерения куба-приемника для связи

DimsSource := CubeDist.Dimensions;

//куб-приемник

Cube := MB.ItemById("Cube_2").Bind As ICubeModel;

CubeDist := Cube.Destinations.DefaultDestination;

CubLoad.Destination := CubeDist;

//привязка измерений

MapInfo := CubLoad.MapInfo;

For i := 0 To MapInfo.Count - 1 Do

MapItem := MapInfo.Item(i);

Dim := MapItem.Dimension;

Dim1 := DimsSource.FindById((Dim As IMetabaseObject).Id);

If Dim1 <> Null Then

MapItem.MapDimension := Dim1;

MapItem.MapIndex := Dim1.Indexes.PrimaryIndex;

MapItem.DimIndex := Dim.Indexes.PrimaryIndex;

MapItem.Method := CubeLoaderMapMethod.ByIndex;

End If;

End For;

//фиксация измерений

FixInfo := CubLoad.FixInfo;

For Each DimFix In CubLoad.FixInfo Do

DimFix.Operation := BasicAggregatorOperation.ActualMean;

DimFix.Selection.SelectAll;

End For;

MObj.Save;

End Sub Main;

После выполнения примера в корневом каталоге репозитория будет создан объект - Загрузчик в куб. В качестве куба-источника используется куб с идентификатором "Cube_1", в качестве куба-приемника - куб с идентификатором "Cube_2". Одинаковые измерения, имеющиеся в каждом кубе будут связаны по индексу. Измерения, имеющиеся в кубе-источнике, но отсутствующие в кубе-приемнике будут зафиксированы.

См. также:

ICubeLoader