IAutoCubeDimension.AggregatorHierarchies

Синтаксис

AggregatorHierarchies(Destination: IAutoCubeDestination): IMatrixAggregatorModelHierarchies;

AggregatorHierarchies[Destination: Prognoz.Platform.Interop.Cubes.IAutoCubeDestination]: Prognoz.Platform.Interop.Matrix.IMatrixAggregatorModelHierarchies;

Параметры

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

Описание

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

Пример

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

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

Sub UserProc;
Var
    MB: IMetabase;
    Cub: IAutoCube;
    Hiers: IMatrixAggregatorModelHierarchies;
    AggHier: IBasicMatrixAggregator;
    Dim: IAutoCubeDimension;
    Dest: IAutoCubeDestination;
    HierKey: Integer;
Begin
    MB := MetabaseClass.Active;
    
// Получим куб для редактирования
    Cub := MB.ItemById("CUBE").Edit As IAutoCube;
    
// Получим первое измерение куба
    Dim := Cub.Dimensions.Item(0);
    
// Получим параметры варианта отображения куба
    Dest := Cub.Destinations.Item(0);
    
// Получим список альтернативных иерархий
    Hiers := Dim.AggregatorHierarchies(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: IAutoCube;
    Hiers: IMatrixAggregatorModelHierarchies;
    AggHier: IBasicMatrixAggregator;
    Dim: IAutoCubeDimension;
    Dest: IAutoCubeDestination;
    HierKey: UInteger;
Begin
    MB := Params.Metabase;
    
// Получим куб для редактирования
    Cub := MB.ItemById["CUBE"].Edit() As IAutoCube;
    
// Получим первое измерение куба
    Dim := Cub.Dimensions.Item[0];
    
// Получим параметры варианта отображения куба
    Dest := Cub.Destinations.Item[0];
    
// Получим список альтернативных иерархий
    Hiers := Dim.AggregatorHierarchies[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;

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

См. также:

IAutoCubeDimension