Result: IMsFormulaTerm;
Свойство Result возвращает результирующий ряд.
Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «TRANSFORMATION». В данном контейнере должны присутствовать стандартная модель с идентификатором «M_SPLICE» и переменные с идентификаторами «PRECED», «FOLLOW».
Sub Main;
Var
mb: IMetabase;
ModelCont: IMetabaseObjectDescriptor;
Descript: IMetabaseObjectDescriptor;
Obj: IMetabaseObject;
Model: IMsModel;
Transform: IMsFormulaTransform;
InputsVar: IMsFormulaTransformVariables;
TransformVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
Selector: IMsFormulaTransformSelector;
Formula: IMsFormula;
Splice: IMsSpliceTransform;
TermInfo : IMsFormulaTermInfo;
Obj_x1: IMetabaseObject;
ModelVar_x1: IMsVariable;
Obj_x2: IMetabaseObject;
ModelVar_x2: IMsVariable;
Begin
mb := MetabaseClass.Active;
ModelCont := mb.ItemById("TRANSFORMATION");
Descript := mb.ItemByIdNamespace("M_SPLICE", ModelCont.Key);
Obj := Descript.Edit;
Model := Obj As IMsModel;
// Настраиваем параметры модели
Transform := Model.Transform;
TransformVar := Transform.Outputs.Item(0);
Slice := TransformVar.Slices.Add(Null);
Selector := Transform.CreateSelector;
Selector.Slice := Slice;
Formula := Transform.Transform(Selector);
Formula.Level := DimCalendarLevel.Year;
Formula.Kind := MsFormulaKind.Splice;
Splice := Formula.Method As IMsSpliceTransform;
Splice.MethodType := MsSpliceType.Butt;
Debug.WriteLine("Выходная переменная: " + Splice.Result.TermToText);
InputsVar := Transform.Inputs;
InputsVar.Clear;
// Добавляем первую входную переменную (предыдущий ряд) и задаем ее параметры
Descript := mb.ItemByIdNamespace("PRECED", ModelCont.Key);
Obj_x1 := Descript.Bind;
ModelVar_x1 := Obj_x1 As IMsVariable;
InputsVar.Add(ModelVar_x1 As IVariableStub);
TransformVar := InputsVar.Item(0);
Slice := TransformVar.Slices.Add(Null);
TermInfo := Transform.CreateTermInfo;
TermInfo.Slice := Slice;
Splice.PrecedingSerie := TermInfo;
Splice.PrecedingEndDate := DateTime.ComposeDay(2005, 1, 1);
// Добавляем первую входную переменную (последующий ряд) и задаем ее параметры
Descript := mb.ItemByIdNamespace("FOLLOW", ModelCont.Key);
Obj_x2 := Descript.Bind;
ModelVar_x2 := Obj_x2 As IMsVariable;
InputsVar.Add(ModelVar_x2 As IVariableStub);
TransformVar := InputsVar.Item(1);
Slice := TransformVar.Slices.Add(Null);
TermInfo := Transform.CreateTermInfo;
TermInfo.Slice := Slice;
Splice.FollowingSerie := TermInfo;
Splice.FollowingStartDate := DateTime.ComposeDay(2004, 1, 1);
Obj.Save;
End Sub Main;
После выполнения примера модель «M_SPLICE» будет осуществлять совмещение рядов «PRECED» и «FOLLOW». Наименование терма, соответствующего результирующей переменной, будет выведено в окно консоли.
См. также: