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