MatrixAggregator(
Stub: IVariableStub;
DimInstance: IDimInstance): IBasicMatrixAggregator;
Stub. Структура переменной, в которой осуществляется агрегация.
DimInstance. Данные, которые необходимо сагрегировать.
Свойство MatrixAggregator возвращает объект, содержащий свойства и методы, необходимые для агрегации данных.
Public Class My_Method: Object, IMsUserTransformImplementation
Sub Execute(Calculation: IMsMethodCalculation; Coo: IMsFormulaTransformCoord;
Explained: IMsFormulaTerm; Explanatories: IMsFormulaTermList);
Var
ExpVarStub: IVariableStub;
Matr: IMatrix;
CalendarInst: IDimInstance;
BasicAggr: IBasicMatrixAggregator;
LevAggr: IBasicMatrixLevelAggregator;
Lvls: IDimLevelsInstance;
Cub: ICubeInstance;
Begin
ExpVarStub := Explained.Slice.Variable.VariableStub;
Matr := Calculation.Variable(ExpVarStub);
CalendarInst := (ExpVarStub.Calendar As IMetabaseObject).Open(Null) As IDimInstance;
BasicAggr := Calculation.MatrixAggregator(ExpVarStub, CalendarInst);
//Для уровня по умолчанию
Lvls := CalendarInst.Levels;
LevAggr := BasicAggr.LevelAggregation(Lvls.Item(0).Level);
LevAggr.Operation := BasicAggregatorOperation.ArithmeticalMean;
LevAggr.Include(Lvls.Item(1).Level) := True;
//Получение матрицы агрегированных данных
Matr := BasicAggr.Execute(0, Matr);
//Сохранение агрегированных данных в куб переменной
Cub := ((ExpVarStub As IMsVariable).Cube As IMetabaseObject).Open(Null) As ICubeInstance;
Cub.Destinations.DefaultDestination.CreateStorage.SaveMatrix(Matr, Matr.ValueFlag);
End Sub Execute;
Sub Set_params(ParamValue: IMsUserMethodParams);
Begin
//Получение значений параметров
End Sub Set_params;
End Class My_Method;
Данный пример является макросом, содержащим пользовательский метод расчета модели. Моделируемая переменная модели, которая использует при расчете пользовательский метод, в своей структуре должна иметь два шага расчета. При расчете модели будет осуществлена агрегация данных в моделируемой переменной. Агрегация производится с нижнего уровня на верхний с использованием метода арифметического среднего.
См. также:
IMsMethodCalculation|IMsUserTransform|IMsUserTransform.Assembly|IMsUserTransform.ClassName