IStandardCubeDimension.AggregatorHierarchies

Синтаксис

AggregatorHierarchies(FactKey: Variant; Destination: IStandardCubeDestination): IMatrixAggregatorModelHierarchies;

AggregatorHierarchies[FactKey: System.Object, Destination: Prognoz.Platform.Interop.Cubes.IStandardCubeDestination]: Prognoz.Platform.Interop.Matrix.IMatrixAggregatorModelHierarchies;

Параметры

FactKey. Ключ элемента измерения фактов, для которого необходимо настроить агрегацию по уровням альтернативной иерархии;

Destination. Вариант отображения куба, для которого необходимо настроить агрегацию.

Описание

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

Пример

Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором «CUBE». Измерение с индексом «1» использует справочник, у которого настроена альтернативная иерархия.

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

Sub UserProc;
Var
    MB: IMetabase;
    Cub: IStandardCube;
    Hiers: IMatrixAggregatorModelHierarchies;
    AggHier: IBasicMatrixAggregator;
    Dim: IStandardCubeDimension;
    Dest: IStandardCubeDestination;
    HierKey: Integer;
Begin
    MB := MetabaseClass.Active;
    
// Получим куб для редактирования
    Cub := MB.ItemById("CUBE").Edit As IStandardCube;
    
// Получим первое измерение куба
    Dim := Cub.Dimensions.Item(1);
    
// Получим параметры варианта отображения куба
    Dest := Cub.Destinations.Item(0);
    
// Получим список альтернативных иерархий
    Hiers := Dim.AggregatorHierarchies(1, Dest);
    
// Добавим настройки агрегации для справочника альтернативной иерархии
    HierKey := Dim.Dimension.Hierarchies.Item(0).Key;
    AggHier := Hiers.Add(HierKey) 
As IBasicMatrixAggregator;
    
// Изменим параметры агрегации
    AggHier.UseSelection := True;
    AggHier.DefaultLevelAggregation.Operation := BasicAggregatorOperation.Sum;
    
// Сохраним изменения в кубе
    (Cub As IMetabaseObject).Save;
End Sub UserProc;

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Cub: IStandardCube;
    Hiers: IMatrixAggregatorModelHierarchies;
    AggHier: IBasicMatrixAggregator;
    Dim: IStandardCubeDimension;
    Dest: IStandardCubeDestination;
    HierKey: UInteger;
Begin
    MB := Params.Metabase;
    
// Получим куб для редактирования
    Cub := MB.ItemById["CUBE"].Edit() As IStandardCube;
    
// Получим первое измерение куба
    Dim := Cub.Dimensions.Item[1];
    
// Получим параметры варианта отображения куба
    Dest := Cub.Destinations.Item[0];
    
// Получим список альтернативных иерархий
    Hiers := Dim.AggregatorHierarchies[1, Dest];
    
// Добавим настройки агрегации для справочника альтернативной иерархии
    HierKey := Dim.Dimension.Hierarchies.Item[0].Key As UInteger;
    AggHier := Hiers.Add(HierKey) 
As IBasicMatrixAggregator;
    
// Изменим параметры агрегации
    AggHier.UseSelection := True;
    AggHier.DefaultLevelAggregation.Operation := BasicAggregatorOperation.baoSum;
    
// Сохраним изменения в кубе
    (Cub As IMetabaseObject).Save();
End Sub;

После выполнения примера в кубе будут добавлены параметры агрегации первой альтернативной иерархии указанного измерения:

См. также:

IStandardCubeDimension