ICalcAggr.Aggregator

Синтаксис

Aggregator(DimModel: IDimensionModel): IBasicMatrixAggregator;

Отсутствует;

Параметры

DimModel. Структура справочника.

Описание

Свойство Aggregator возвращает настройки основного механизма агрегации.

Пример

Для выполнения примера предполагается наличие в репозитории алгоритма расчёта с идентификатором ALGORITHM и стандартного куба с идентификатором CUBE. В алгоритме расчёта должен содержаться блок агрегации, в кубе - измерение с идентификатором DIMENSIONS.

Добавьте ссылку на пользовательскую сборку «Ядро алгоритма расчёта», которая содержится в компоненте «Алгоритмы расчёта», и ссылки на системные сборки: Algo, Cubes, Dimensions, Matrix, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Algo, Aggr: ICalcObject;
    List: ICalcObjectsList;
    CalcAlgo: ICalcAlgorithm;
    Block: ICalcAggr;
    Stub: IVariableStub;
    StandCub: IStandardCube;
    Dim: IStandardCubeDimension;
    Lvl: IDimLevels;
    BasicAggr: IBasicMatrixAggregator;
    LevAggr: IBasicMatrixLevelAggregator;
Begin
    MB := MetabaseClass.Active;
    
// Получим алгоритм расчёта
    MObj := MB.ItemById("ALGORITHM");
    Algo := CalcObjectFactory.CreateCalcObject(MObj, 
True);
    CalcAlgo := Algo 
As ICalcAlgorithm;
    
// Получим список объектов алгоритма расчёта
    List := CalcAlgo.Items;
    
// Получим блок агрегации с индексом «0»
    Aggr := List.Item(0);
    Block := Aggr 
As ICalcAggr;
    
// Получим куб
    StandCub := MB.ItemById("CUBE").Edit As IStandardCube;
    Stub := StandCub 
As IVariableStub;
    
// Зададим куб в качестве приёмника данных
    Block.Stub := Stub;
    
// Настроим основной механизм агрегации для указанного измерения
    Dim := StandCub.Dimensions.FindById("DIMENSIONS");
    BasicAggr := Block.Aggregator(Dim.Dimension);
    
// Получим уровни измерения
    Lvl := Dim.Dimension.Levels;
    
// Зададим параметры для уровня по умолчанию
    LevAggr := BasicAggr.DefaultLevelAggregation;
    LevAggr.Operation := BasicAggregatorOperation.ArithmeticalMean;
    LevAggr.PreserveExistingData := 
True;
    LevAggr.PreserveMethod := ExistingDataPreserveMethod.OnNull;
    
// Сохраним изменения в блоке агрегации
    Block.Save;
End Sub UserProc;

Не предусмотрен.

В результате выполнения примера для блока агрегации будет задан стандартный куб в качестве приёмника данных и настроена агрегация данных для измерения с идентификатором DIMENSIONS.

См. также:

ICalcAggr