IMsFormulaTerm.TermInfo

Синтаксис

TermInfo: IMsFormulaTermInfo;

Описание

Свойство TermInfo определяет параметры терма.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором "KONT_MODEL". В контейнере имеется переменная "Var_1", которая в дальнейшем будет использоваться как моделируемая, а также переменная "Var_Factor", используемая как фактор.

Sub Main;

Var

MB: IMetabase;

Kont: IMetabaseObjectDescriptor;

CrInf: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Model: IMsModel;

Trans: IMsFormulaTransform;

VarTrans: IMsFormulaTransformVariable;

Tree: IMsFormulaTransformSlicesTree;

Slice: IMsFormulaTransformSlice;

Selector: IMsFormulaTransformSelector;

Formula: IMsFormula;

NonLinear: IMsNonLinearRegressionTransform;

Varr: IVariableStub;

TransVar: IMsFormulaTransformVariable;

TermX1: IMsFormulaTerm;

TermX1Info: IMsFormulaTermInfo;

Begin

MB := MetabaseClass.Active;

Kont := Mb.ItemById("KONT_MODEL");

//создание модели

CrInf := Mb.CreateCreateInfo;

CrInf.ClassId := MetabaseObjectClass.KE_CLASS_MSMODEL;

CrInf.Id := "New_NonLinReg";

CrInf.Name := "New_NonLinReg";

CrInf.Parent := Kont;

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

Model := MObj As IMsModel;

Trans := Model.Transform;

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

Varr := MB.ItemByIdNamespace("Var_1", Kont.Key).Bind As IVariableStub;

Trans.Outputs.Add(Varr);

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

Tree := VarTrans.SlicesTree(VarTrans);

Slice := Tree.CreateSlice(1);

Selector := Trans.CreateSelector;

Selector.Slice := Slice;

Formula := Trans.Transform(Selector);

Formula.Kind := MsFormulaKind.NonLinearRegression;

Formula.Level := DimCalendarLevel.Year;

NonLinear := Formula.Method As IMsNonLinearRegressionTransform;

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

Varr := MB.ItemByIdNamespace("Var_Factor", Kont.Key).Bind As IVariableStub;

Trans.Inputs.Add(Varr);

TransVar := Trans.Inputs.Item(0);

Slice := TransVar.SlicesTree(VarTrans).CreateSlice(1);

//сопоставление терма срезу в переменной

TermX1 := NonLinear.Operands.Add(Slice);

TermX1Info := TermX1.TermInfo;

//изменение параметров первого терма

TermX1Info.Inversion := MsInversion.DLog;

TermX1Info.InversionLag := MsInversionLag.PrecidingYear;

TermX1Info.Lag := "-1";

TermX1.TermInfo := TermX1Info;

//создание уравнения

NonLinear.Expression.AsString := "A0+" + TermX1Info.TermInnerText + "/10";

MObj.Save;

End Sub Main;

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

См. также:

IMsFormulaTerm