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

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

  1. Базы данных с идентификатором «DB»;

  2. Справочник фактов с идентификатором «FACTS»;

  3. Справочник стран с идентификатором «COUNTRY»;

  4. Календарный справочник с идентификатором «CALENDAR»;

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

Для выполнения примеров добавьте ссылки на системные сборки: Cubes, Db, Dimensions, Metabase. Для Fore.NET пример также пропишите соответствующие строки Imports.

Пример Fore

Sub CreateAutoCube;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    AutoCube: IAutoCube;
    Dims: IAutoCubeDimensions;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_AUTOCUBE;
    CrInfo.Id := "New_Auto_Cube";
    CrInfo.Name := "Новый автоматический куб";
    CrInfo.Parent := MB.Root;
    MObj := MB.CreateObject(CrInfo).Edit;
    AutoCube := MObj As IAutoCube;
    //Указываем БД, в которой будут храниться данные куба
    AutoCube.Database := MB.ItemById("DB").Bind As IDatabase;
    //Задаем список измерений куба
    Dims := AutoCube.Dimensions;
    Dims.Add(MB.ItemById("FACTS").Bind As IDimensionModel);
    Dims.Add(MB.ItemById("COUNTRY").Bind As IDimensionModel);
    Dims.Add(MB.ItemById("CALENDAR").Bind As IDimensionModel);
    MObj.Save;
End Sub CreateAutoCube;

Пример Fore.NET

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Metabase;

Sub CreateAutoCube(MB: IMetabase);
Var
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    AutoCube: IAutoCube;
    Dims: IAutoCubeDimensions;
Begin
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_AUTOCUBE As Integer;
    CrInfo.Id := "New_Auto_Cube";
    CrInfo.Name := "Новый автоматический куб";
    CrInfo.Parent := MB.Root;
    MObj := MB.CreateObject(CrInfo).Edit();
    AutoCube := MObj As IAutoCube;
    //Указываем БД, в которой будут храниться данные куба
    AutoCube.Database := MB.ItemById["DB"].Bind() As IDatabase;
    //Задаем список измерений куба
    Dims := AutoCube.Dimensions;
    Dims.Add(MB.ItemById["FACTS"].Bind() As IDimensionModel);
    Dims.Add(MB.ItemById["COUNTRY"].Bind() As IDimensionModel);
    Dims.Add(MB.ItemById["CALENDAR"].Bind() As IDimensionModel);
    MObj.Save();
End Sub;

См. также:

Примеры