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