Создание вычисляемого куба

Рассмотрим пример создания вычисляемого куба с использованием языка Fore. Для создания куба необходимо наличие в репозитории следующих объектов:

  1. Какой-либо куб с идентификатором «CUBE_SOURCE», который будет выступать в качестве источника данных для создаваемого вычисляемого куба;

  2. Данный куб должен содержать в своей структуре календарное измерение с идентификатором «CALENDAR».

Указанный ниже пример создает в корневой папке репозитория новый объект - Вычисляемый куб и производит настройку его параметров:

Для выполнения примеров добавьте ссылки на системные сборки: Cubes, Dimensions, Metabase.

Пример

Sub CreateCalculatedCube;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    CalcCube: ICalculatedCube;
    CubeModel: ICubeModel;
    CubeDest: ICubeModelDestination;
    CalcSource: ICalculatedCubeSource;
    SourceDim, CalcDim: ICalculatedCubeDimension;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_CALCCUBE;
    CrInfo.Id := "New_Calc_Cube";
    CrInfo.Name := "Новый вычисляемый куб";
    CrInfo.Parent := MB.Root;
    MObj := MB.CreateObject(CrInfo).Edit;
    CalcCube := MObj As ICalculatedCube;
    //Добавление источника, на базе значений которого будут производиться вычисления по формулам
    CubeModel := Mb.ItemById("CUBE_SOURCE").Bind As ICubeModel;
    CubeDest := CubeModel.Destinations.DefaultDestination;
    CalcSource := CalcCube.Sources.Add(CubeDest);
    //Добавляем измерения куба-источника в структуру вычисляемого куба
    For Each SourceDim In CalcSource.Dimensions Do
        CalcDim := CalcCube.Dimensions.Add(SourceDim.Dimension);
        If (SourceDim.Dimension As IMetabaseObject).Id = "CALENDAR" Then
            SourceDim.Fixed := True;
            CalcDim.Fixed := True;
        End If;
    End For;
    MObj.Save;
End Sub CreateCalculatedCube;

См. также:

Примеры