ICubeCacheItem.GetCubeInstance

Синтаксис

GetCubeInstance: ICubeInstance;

Описание

Метод GetCubeInstance возвращает открытый экземпляр куба, для которого сохранён кэш.

Пример

Для выполнения примера предполагается наличие стандартного куба с идентификатором STD_CUBE. Для куба закэширован какой-либо набор данных.

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

Sub UserProc;
Var
    MB: IMetabase;
    MDesc, CacheDesc: IMetabaseObjectDescriptor;
    CubeInst: ICubeInstance;
    DestInst: ICubeInstanceDestination;
    CacheSaver: ICubeCacheSaver;
    Items: ICubeCacheItems;
    Item: ICubeCacheItem;
    Matr: IMatrix;
Begin
    MB := MetabaseClass.Active;
    MDesc := MB.ItemById("STD_CUBE");
    // Получение хранилища кэша
    CacheDesc := GetCache(MDesc);
    If CacheDesc <> Null Then
        CacheSaver := CacheDesc.Edit As ICubeCacheSaver;
        // Экземпляры кэша из СУБД
        Items := CacheSaver.GetItemsFromDatabase;
        If Items.Count > 0 Then
            Item := Items.Item(0);
            CubeInst := Item.GetCubeInstance;
            Debug.WriteLine("Cube: " + (CubeInst.Cube As IMetabaseObject).Name);
            DestInst := Item.GetCubeInstanceDestination;
            Debug.WriteLine("Destination: " + DestInst.Name);
            Item.LoadMatrix;
            Matr := Item.GetMatrix;
            Debug.WriteLine("Matrix count values: " + Matr.Count.ToString);
        End If;
    End If;
End Sub UserProc;

Function GetCache(MObj: IMetabaseObjectDescriptor): IMetabaseObjectDescriptor;
Var
    Desc: IMetabaseObjectDescriptor;
Begin
    For Each Desc In MObj.Children Do
        If Desc.ClassId = MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER Then
            Return Desc;
        End If;
    End For;
    Return Null;
End Function GetCache;

При выполнении примера для указанного куба будут получены экземпляры кэша. По первому экземпляру кэша в консоль среды разработки будет выведена информация о кубе и варианте отображения куба, для которых производилось кэширование, а также количество элементов в матрице, которая сохранена в кэше.

См. также:

ICubeCacheItem