IMsFormulaTransformVariables.Add

Fore Syntax

Add(Value: IVariableStub): IMsFormulaTransformVariable;

Fore.NET Syntax

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

Parameters

Value. The variable of the modeling container that must be added to the model.

Description

The Add method adds a variable to the collection.

Fore Example

Executing the example requires a modeling container with the MS_COMM identifier, that contains determinate equation model with the OBJ_MODEL identifier and a variable with the OBJ_VAR identifier. Add links to the Metabase, Ms, Cubes system assemblies.

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;
// Get input variables collection
    InputVars := Transform.Inputs;
// Clearing output variables collection, if elements are present there
    If  Transform.Series.Count > 0 Then
        InputVars.Clear;
    End If;
// Get calculation method parameters
    Formula := Transform.FormulaItem(0);
    DetermTrans := Formula.Method As IMsDeterministicTransform;
// Adding one variable to the model
    Varable := mb.ItemByIdNamespace("OBJ_VAR", MsDescr.Key).Bind As IVariableStub;
    TransformVar := InputVars.Add(Varable);
    Slice := TransformVar.Slices.Add(Null);
    Term := DetermTrans.Operands.Add(Slice);
// Setting expression with the added variable
    Expr := DetermTrans.Expression;
    Expr.AsString := Term.TermToInnerText + " + 9";
// Saving model
    (Model As IMetabaseObject).Save;
End Sub UserProc;

After executing the example the OBJ_VAR variable is added to the OBJ_MODEL model. This variable is a part of the expression that is used for the model calculation.

Fore.NET Example

Executing the example requires a modeling container with the MS_COMM identifier, that contains determinate equation model with the OBJ_MODEL identifier and a variable with the OBJ_VAR identifier.

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;
// Get input variables collection
    InputVars := Transform.Inputs;
// Clearing output variables collection, if elements are present there
    If  Transform.Series.Count > 0 Then
        InputVars.Clear();
    End If;
// Get calculation method parameters
    Formula := Transform.FormulaItem[0];
    DetermTrans := Formula.Method As IMsDeterministicTransform;
// Adding one variable to the model
    Varable := mb.ItemByIdNamespace["OBJ_VAR", MsDescr.Key].Bind() As IVariableStub;
    TransformVar := InputVars.Add(Varable);
    Slice := TransformVar.Slices.Add(Null);
    Term := DetermTrans.Operands.Add(Slice);
// Setting expression with the added variable
    Expr := DetermTrans.Expression;
    Expr.AsString := Term.TermToInnerText() + " + 9";
// Saving model     
    (Model As IMetabaseObject).Save();
End Sub;

After executing the example the OBJ_VAR variable is added to the OBJ_MODEL model. This variable is a part of the expression that is used for the model calculation.

See also:

IMsFormulaTransformVariables