IModelling.Splice

Синтаксис

Splice(Output: ITimeSeries;

Input: ITimeSeries;

Method: MsSpliceType;

[Direction: MsSpliceDirection = 0;]

[BoundByDates: Boolean = False;]

[StartDate: String = "";]

[EndDate: String = ""]): Variant;

Параметры

Output. Результирующая переменная.

Input. Переменная, которая будет совмещена с результирующей.

Method. Метод совмещения.

Direction. Направление совмещения. Необязательный параметр. Значение по умолчанию: MsSpliceDirection.Both - в обе стороны.

BoundByDates. Параметр определяет, использовать ли даты начала (StartDate) и окончания (EndDate) совмещения ряда. False - даты игнорируются; True - даты не игнорируются и используются для совмещения переменных. Необязательный параметр. Значение по умолчанию: «False».

StartDate. Дата начала совмещения ряда. Необязательный параметр. Значение по умолчанию не задано.

EndDate. Дата окончания совмещения ряда. Необязательный параметр. Значение по умолчанию не задано.

Описание

Метод Splice осуществляет совмещение переменных.

Пример Fore

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «MS». В данном контейнере содержится модель с идентификатором «MODEL_D», рассчитываемая методом детерминированного уравнения и содержащая более одной входной переменной.

Sub UserProc;

Var

Mb: IMetabase;

ModelSpace, ModelObj: IMetabaseObject;

Transf: IMsFormulaTransform;

Formula: IMsFormula;

Model: IMsModel;

Determ: IMsDeterministicTransform;

TransVar: IMsFormulaTransformVariable;

Slice: IMsFormulaTransformSlice;

TermInfo: IMsFormulaTermInfo;

Inp_1, Inp_2: 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.Pointwise;

Inp_1 := TermInfo.TermInnerText;

TransVar := Transf.Inputs.Item(1);

Slice := TransVar.Slices.Item(0);

TermInfo := Transf.CreateTermInfo;

TermInfo.Slice := Slice;

TermInfo.Type := MsFormulaTermType.Pointwise;

Inp_2 := TermInfo.TermInnerText;

Expr := Determ.Expression;

Expr.References := "Ms";

Expr.AsString := "Splice(" + Inp_1 + ", " + Inp_2 + ", MsSpliceType.Butt, MsSpliceDirection.Both, True, " + """" + "01.01.2003" + """" + "," + """" + "01.01.2006" + """" + ")";

If Expr.Valid

Then ModelObj.Save;

Else Debug.WriteLine("Модель не сохранена: ошибка в формуле");

End If;

End Sub UserProc;

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

Пример использования в выражениях

Выражение 1:

Splice({Brazil|BCA},{China|BCA},MsSpliceType.Pch,MsSpliceDirection.Backward,False)

Результат: выполнено совмещение значений показателей Brazil|BCA и China|BCA методом сращивания данных с темпами прироста в обратном направлении.

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

Выражение 2:

Splice(X1,X2,MsSpliceType.Butt,MsSpliceDirection.Both,True,"01.01.2002","01.01.2007")

Результат: выполнено совмещение значений факторов X1 и X2 c 2002 по 2007 годы.

Применение: можно использовать в формулах моделей контейнера моделирования.

См. также:

IModelling