IBasicMatrixLevelAggregator.Include

Синтаксис

Include(SourceLevel: IDimLevel): Boolean;

Параметры

SourceLevel. Уровень-источник, данные с которого необходимо использовать при агрегации.

Описание

Свойство Include определяет, будут ли при агрегации использоваться данные уровня, передаваемого посредством входного параметра.

Комментарии

Если свойству установлено значение True, то данные уровня SourceLevel будут использоваться при агрегации, иначе не будут. Свойство актуально, если свойствам UseDefaultLevelAggregation и IncludeChildren установлено значение False.

Пример

Для выполнения примера предполагается наличие в репозитории куба с идентификатором "Cube_1". В кубе имеется измерение "D_TO", содержащее более двух уровней.

Добавьте ссылки на системные сборки: Cubes, Dimensions, Matrix, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    StdCube: IStandardCube;
    Man: IMatrixAggregatorManager;
    Dim: IStandardCubeDimension;
    Lvl: IDimLevels;
    BasicAggr: IBasicMatrixAggregator;
    LevAggr: IBasicMatrixLevelAggregator;
    Dest: IStandardCubeDestination;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById(
"CUBE_1").Edit;
    StdCube := MObj 
As IStandardCube;
    
//Создаем новый агрегатор
    Man := New MatrixAggregatorManager.Create As IMatrixAggregatorManager;
    
//Основной механизм агрегации
    BasicAggr := Man.CreateAggregator("BasicMatrixAggregator"As IBasicMatrixAggregator;
    
//Для измерения D_TO
    Dim := StdCube.Destinations.Item(0).Dimensions.FindById("D_TO");
    Lvl := Dim.Dimension.Levels;
    BasicAggr.Dimension := Dim.Dimension;
    
//Для уровня по умолчанию
    LevAggr := BasicAggr.DefaultLevelAggregation;
    LevAggr.Operation := BasicAggregatorOperation.ArithmeticalMean;
    LevAggr.PreserveExistingData := 
True;
    LevAggr.PreserveMethod := ExistingDataPreserveMethod.OnNull;
    
//Для второго уровня
    //Уровень-приемник
    LevAggr := BasicAggr.LevelAggregation(Lvl.Item(Lvl.Count - 2));
    LevAggr.UseDefaultLevelAggregation := 
False;
    
//Метод - Фактическое среднее
    LevAggr.Operation := BasicAggregatorOperation.ActualMean;
    
//Уровень-источник
    LevAggr.Include(Lvl.Item(Lvl.Count - 1)) := True;
    
//Установка агрегации по первому элементу измерения фактов
    Dest := StdCube.Destinations.Item(0);
    Dim.Aggregator(
1, Dest) := BasicAggr;
    MObj.Save;
End Sub UserProc;

После выполнения примера в кубе будет настроена агрегация для измерения "D_TO". Для уровней по умолчанию будет осуществляться агрегация с использованием арифметического среднего. Неагрегированные данные будут сохраняться, если результат не пустое значение. Для предпоследнего уровня будут установлены собственные настройки. Будет осуществляться агрегация данных с последнего уровня, с использованием метода фактического среднего.

См.также:

IBasicMatrixLevelAggregator