IMsFormulaTransform.Transform

Синтаксис

Transform(Selector: IMsFormulaTransformSelector): IMsFormula;

Параметры

Selector. Объект, определяющий срез переменной, по которому необходимо настроить параметры метода расчёта.

Описание

Свойство Transform возвращает объект, позволяющий настроить параметры метода расчёта. Если в моделируемой переменной имеются дополнительные измерения, то существует возможность для каждого среза определить свой метод расчёта.

Пример

Sub Main;

Var

MB: IMetabase;

CrInf: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Model: IMsModel;

Trans: IMsFormulaTransform;

VarTrans: IMsFormulaTransformVariable;

Tree: IMsFormulaTransformSlicesTree;

Slice: IMsFormulaTransformSlice;

Selector: IMsFormulaTransformSelector;

Formula: IMsFormula;

Linear: IMsLinearRegressionTransform;

Varr: IMsVariable;

TransVar: IMsFormulaTransformVariable;

Begin

MB := MetabaseClass.Active;

CrInf := Mb.CreateCreateInfo;

CrInf.ClassId := MetabaseObjectClass.KE_CLASS_MSMODEL;

CrInf.Id := "New_LinReg";

CrInf.Name := "New_LinReg";

CrInf.Parent := Mb.ItemById("KONT_MODEL");

CrInf.Permanent := False;

MObj := Mb.CreateObject(CrInf).Edit;

Model := MObj As IMsModel;

Trans := Model.Transform;

//добавлений моделируемой переменной

Varr := MB.ItemByIdNamespace("Var_11", MB.ItemById("KONT_MODEL").Key).Bind As IMsVariable;

Model.Output.Add(Varr);

For i := 0 To Varr.Dimensions.Count - 1 Do

Trans.DimensionTransparent(Model.Transform.Outputs.Item(0), Varr.Dimensions.Item(i).Model) := True;

End For;

VarTrans := Trans.Outputs.Item(0);

Tree := VarTrans.SlicesTree(VarTrans);

Slice := Tree.CreateSlice(1);

Selector := Model.Transform.CreateSelector;

Selector.Slice := Slice;

Formula := Model.Transform.Transform(Selector);

Formula.Kind := MsFormulaKind.LinearRegression;

Formula.Level := DimCalendarLevel.Year;

//переход к настройке параметров линейной регрессии

Linear := Formula.Method As IMsLinearRegressionTransform;

Varr := MB.ItemByIdNamespace("Var_Factor", MB.ItemById("KONT_MODEL").Key).Bind As IMsVariable;

//добавление фактора

Model.Input.Add(Varr);

TransVar := Model.Transform.Inputs.Item(0);

Linear.Explanatories.Add.Expression.AsString := Model.Transform.SliceToTerm(TransVar.SlicesTree(VarTrans).CreateSlice(1), "");

MObj.Save;

End Sub Main;

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

См. также:

IMsFormulaTransform