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;
После выполнения примера в кубе будут добавлены параметры агрегации первой альтернативной иерархии указанного измерения:
включена агрегация отмеченных элементов в измерении;
изменен метод агрегации на сумму.
См. также: