Aggregator(Destination: IAutoCubeDestination): IMatrixAggregatorModel;
Destination - вариант отображения куба, для которого необходимо настроить агрегацию по измерению.
Свойство Aggregator определяет параметра агрегации по измерению для указанного варианта отображения куба.
Для выполнения примера предполагается наличие в репозитории автоматического куба с идентификатором "AUTO_CUBE". Первое измерения куба содержит более одного уровня.
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
AutoCub: IAutoCube;
Dim: IAutoCubeDimension;
AggregatorManager: MatrixAggregatorManager;
IAggregatorManager: IMatrixAggregatorManager;
AggregatorModel: IMatrixAggregatorModel;
BasicAggregator: IBasicMatrixAggregator;
LevelBasicAggregator: IBasicMatrixLevelAggregator;
Dimension: IAutoCubeDimension;
DimensionModel: IDimensionModel;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("AUTO_CUBE").Edit;
AutoCub := MObj As IAutoCube;
Dim := AutoCub.Dimensions.Item(0);
//Создаем новый AggregatorManager
AggregatorManager := New MatrixAggregatorManager.Create;
IAggregatorManager := AggregatorManager As IMatrixAggregatorManager;
//Создаем Aggregator
AggregatorModel := IAggregatorManager.CreateAggregator("BasicMatrixAggregator");
Dimension := AutoCub.Dimensions.Item(0);
DimensionModel := Dimension.Dimension;
//Указываем измерение, по которому настраивается агрегация
AggregatorModel.Dimension := DimensionModel;
BasicAggregator := AggregatorModel As IBasicMatrixAggregator;
//Указываем уровень-источник и уровень-приемник
LevelBasicAggregator := BasicAggregator.LevelAggregation(DimensionModel.Levels.Item(0));
LevelBasicAggregator.Include(DimensionModel.Levels.Item(1)) := True;
//Метод агрегации - Фактическое среднее
LevelBasicAggregator.Operation := BasicAggregatorOperation.ActualMean;
//Не сохранять неагрегированные данные
LevelBasicAggregator.PreserveExistingData := False;
//Не использовать значение во владельце при агрегации
LevelBasicAggregator.IncludeOwner := False;
//Устанавливаем параметры агрегации для измерения в автокубе
Dimension.Aggregator(AutoCub.Destinations.Item(0)) := AggregatorModel;
MObj.Save;
End Sub Main;
После выполнения примера для первого измерения автоматического куба будет настроена агрегация данных. Агрегация будет осуществляться со второго уровня на первый, метод агрегации - фактическое среднее.
См. также: