Add: IMsCompositeFormulaTermSet;
Метод Add осуществляет добавление набора составных термов в коллекцию.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования CONT_MODEL с моделью BINREG, использующей для расчёта метод бинарной регрессии. Также в данном контейнере должна присутствовать переменная X2.
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
MB: IMetabase;
SpaceDescr: IMetabaseObjectDescriptor;
MObj: IMetabaseObject;
Model: IMsModel;
Trans: IMsFormulaTransform;
VarTrans: IMsFormulaTransformVariable;
Tree: IMsFormulaTransformSlicesTree;
Slice: IMsFormulaTransformSlice;
Selector: IMsFormulaTransformSelector;
Formula: IMsFormula;
Binary: IMsBinaryRegressionTransform;
Explanatories: IMsCompositeFormulaTermSetList;
TermSet: IMsCompositeFormulaTermSet;
CompTerm: IMsCompositeFormulaTerm;
Var_inp: IMsVariable;
pF_inp: IMsFormulaTransformVariable;
pSlice: IMsFormulaTransformSlice;
pTermInfo: IMsFormulaTermInfo;
Begin
MB := MetabaseClass.Active;
SpaceDescr := mb.ItemById("CONT_MODEL");
MObj := MB.ItemByIdNamespace("BinReg",SpaceDescr.Key).Edit;
Model := MObj As IMsModel;
Trans := Model.Transform;
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);
Binary := Formula.Method As IMsBinaryRegressionTransform;
Explanatories := Binary.Explanatories;
TermSet := Explanatories.Add;
Debug.WriteLine("Индекс
добавленного набора: " + Explanatories.IndexOf(TermSet).ToString);
CompTerm := TermSet.Add;
Var_inp := mb.ItemByIdNamespace("X2",SpaceDescr.Key).Bind As IMsVariable;
pF_inp := Trans.Inputs.Add(Var_inp As IVariableStub);
pSlice := pF_inp.Slices.Add(Null);
CompTerm.Operands.Add(pSlice);
pTermInfo := Trans.CreateTermInfo;
pTermInfo.Slice := pSlice;
CompTerm.Expression.AsString:= pTermInfo.TermInnerText;
MObj.Save;
End Sub UserProc;
В результате выполнения примера в коллекцию объясняющих наборов составных термов модели будет добавлен новый набор. Его индекс в коллекции будет выведен в окно консоли.
См. также: