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