IMsFormulaTransformVariables.Add

Синтаксис Fore

Add(Value: IVariableStub): IMsFormulaTransformVariable;

Синтаксис Fore.NET

Add(Value: Prognoz.Platform.Interop.Cubes.IVariableStub): Prognoz.Platform.Interop.Ms.IMsFormulaTransformVariable;

Параметры

Value. Переменная контейнера моделирования, которую необходимо добавить в модель.

Описание

Метод Add осуществляет добавление переменной в коллекцию.

Пример Fore

Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «MS_COMM», содержащим модель детерминированного уравнения с идентификатором «OBJ_MODEL» и переменную с идентификатором «OBJ_VAR». Добавьте ссылки на системные сборки «Metabase», «Ms», «Cubes».

Sub UserProc;
Var
    mb: IMetabase;
    MsDescr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    InputVars: IMsFormulaTransformVariables;
    Varable: IVariableStub;
    TransformVar: IMsFormulaTransformVariable;
    Slice: IMsFormulaTransformSlice;
    Term: IMsFormulaTerm;
    Formula: IMsFormula;
    DetermTrans: IMsDeterministicTransform;
    Expr: IExpression;
Begin
    mb := MetabaseClass.Active;
    MsDescr := mb.ItemById("MS_COMM");
    Model := mb.ItemByIdNamespace("OBJ_MODEL", MsDescr.Key).Edit As IMsModel;
    Transform := Model.Transform;
// Получаем коллекцию входных переменных
    InputVars := Transform.Inputs;
// Очищаем коллекцию выгружаемых переменных, если в ней есть элементы
    If  Transform.Series.Count > 0 Then
        InputVars.Clear;
    End If;
// Получаем параметры метода расчета
    Formula := Transform.FormulaItem(0);
    DetermTrans := Formula.Method As IMsDeterministicTransform;
// Добавляем одну переменную в модель
    Varable := mb.ItemByIdNamespace("OBJ_VAR", MsDescr.Key).Bind As IVariableStub;
    TransformVar := InputVars.Add(Varable);
    Slice := TransformVar.Slices.Add(Null);
    Term := DetermTrans.Operands.Add(Slice);
// Задаем выражение с участием добавленной переменной
    Expr := DetermTrans.Expression;
    Expr.AsString := Term.TermToInnerText + " + 9";
// Сохраняем модель
    (Model As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера в модель «OBJ_MODEL будет добавлена переменная «OBJ_VAR». Данная переменная будет участвовать в выражении, используемом для расчета модели.

Пример Fore.NET

Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «MS_COMM», содержащим модель детерминированного уравнения с идентификатором «OBJ_MODEL» и переменную с идентификатором «OBJ_VAR».

Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsDescr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    InputVars: IMsFormulaTransformVariables;
    Varable: IVariableStub;
    TransformVar: IMsFormulaTransformVariable;
    Slice: IMsFormulaTransformSlice;
    Term: IMsFormulaTerm;
    Formula: IMsFormula;
    DetermTrans: IMsDeterministicTransform;
    Expr: IExpression;
Begin
    mb := Params.Metabase;
    MsDescr := mb.ItemById["MS_COMM"];
    Model := mb.ItemByIdNamespace["OBJ_MODEL", MsDescr.Key].Edit() As IMsModel;
    Transform := Model.Transform;
// Получаем коллекцию входных переменных
    InputVars := Transform.Inputs;
// Очищаем коллекцию выгружаемых переменных, если в ней есть элементы
    If  Transform.Series.Count > 0 Then
        InputVars.Clear();
    End If;
// Получаем параметры метода расчета
    Formula := Transform.FormulaItem[0];
    DetermTrans := Formula.Method As IMsDeterministicTransform;
// Добавляем одну переменную в модель
    Varable := mb.ItemByIdNamespace["OBJ_VAR", MsDescr.Key].Bind() As IVariableStub;
    TransformVar := InputVars.Add(Varable);
    Slice := TransformVar.Slices.Add(Null);
    Term := DetermTrans.Operands.Add(Slice);
// Задаем выражение с участием добавленной переменной
    Expr := DetermTrans.Expression;
    Expr.AsString := Term.TermToInnerText() + " + 9";
// Сохраняем модель     
    (Model As IMetabaseObject).Save();
End Sub;

После выполнения примера в модель «OBJ_MODEL будет добавлена переменная «OBJ_VAR». Данная переменная будет участвовать в выражении, используемом для расчета модели.

См. также:

IMsFormulaTransformVariables