Max(Inputs: Array): Variant;
Max(Context: Prognoz.Platform.Interop.Fore.ForeRuntimeContext; Inputs: System.Array): object;
Context. Context. The parameter is used only in Fore.NET.
Inputs. Variable.
The Max method returns maximum value of variable points.
The method provides a possibility to set calculation period. To do this, use the IModelling.SetPeriod method, by specifying it at any place of input array.
Executing the example requires that the repository contains a modeling container with the MS identifier. This container includes a model with the MODEL_D identifier that is calculated by method of determinate equation and containing more than one input variable.
Add links to the Metabase, Ms system assemblies.
Sub UserProc;
Var
Mb: IMetabase;
ModelSpace, ModelObj: IMetabaseObject;
Transf: IMsFormulaTransform;
Formula: IMsFormula;
Model: IMsModel;
Determ: IMsDeterministicTransform;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
TermInfo: IMsFormulaTermInfo;
Inp_1: String;
Expr: IExpression;
Begin
Mb := MetabaseClass.Active;
ModelSpace := Mb.ItemById("MS").Bind;
ModelObj := Mb.ItemByIdNamespace("MODEL_D", ModelSpace.Key).Edit;
Model := ModelObj As IMsModel;
Transf := Model.Transform;
Formula := Transf.FormulaItem(0);
Determ := Formula.Method As IMsDeterministicTransform;
TransVar := Transf.Inputs.Item(0);
Slice := TransVar.Slices.Item(0);
TermInfo := Transf.CreateTermInfo;
TermInfo.Slice := Slice;
TermInfo.Type := MsFormulaTermType.Serie;
Inp_1 := TermInfo.TermInnerText;
TransVar := Transf.Inputs.Item(1);
Slice := TransVar.Slices.Item(0);
TermInfo := Transf.CreateTermInfo;
TermInfo.Slice := Slice;
TermInfo.Type := MsFormulaTermType.Pointwise;
Expr := Determ.Expression;
Expr.References := "Ms";
Expr.AsString := TermInfo.TermInnerText + "+Max(" + Inp_1 + ")";
If Expr.Valid
Then ModelObj.Save;
Else Debug.WriteLine("The model is not saved: error in formula");
End If;
End Sub UserProc;
After executing the example, the model calculates values of the second input variable increased by maximum value of the first input variable.
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
ModelSpace, ModelObj: IMetabaseObject;
Transf: IMsFormulaTransform;
Formula: IMsFormula;
Model: IMsModel;
Determ: IMsDeterministicTransform;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
TermInfo: IMsFormulaTermInfo;
Inp_1: String;
Expr: IExpression;
Begin
Mb := Params.Metabase;
ModelSpace := Mb.ItemById["MS"].Bind();
ModelObj := Mb.ItemByIdNamespace["MODEL_D", ModelSpace.Key].Edit();
Model := ModelObj As IMsModel;
Transf := Model.Transform;
Formula := Transf.FormulaItem[0];
Determ := Formula.Method As IMsDeterministicTransform;
TransVar := Transf.Inputs.Item[0];
Slice := TransVar.Slices.Item[0];
TermInfo := Transf.CreateTermInfo();
TermInfo.Slice := Slice;
TermInfo.Type := MsFormulaTermType.mfttSerie;
Inp_1 := TermInfo.TermInnerText;
TransVar := Transf.Inputs.Item[1];
Slice := TransVar.Slices.Item[0];
TermInfo := Transf.CreateTermInfo();
TermInfo.Slice := Slice;
TermInfo.Type := MsFormulaTermType.mfttPointwise;
Expr := Determ.Expression;
Expr.References := "Ms";
Expr.AsString := TermInfo.TermInnerText + "+Max(" + Inp_1 + ")";
If Expr.Valid
Then ModelObj.Save();
Else System.Diagnostics.Debug.WriteLine("Model is not saved: error in formula");
End If;
End Sub;
Expression 1:
Max({Brazil|BCA})
Result: maximum value of the Brazil|BCA series observation.
Use: it can be used in formulas of calculated series of time series database and in formulas of attribute-based models of modeling container.
Expression 2:
Max(X1, SetPeriod(2000,2010))
Result: maximum value of the X1 factor point valuefor the period from 2000 to 2010.
Use: it can be used in model variable-based formulas of modeling container.
Expression 3:
Max(1, 2, 3, 4)
Result: 4.
Use: it can be used in formulas of calculated series of time series database and modeling container models.
See also:
IModelling | Time Series Database: Calculator | Modeling Container: Editing Regressor or Formula