IMsFillGapsTransform.Specified

Синтаксис

Specified: IMsFormulaTermInfo;

Описание

Свойство Specified определяет образцовый ряд для методов обработки пропусков «Pattern» (по шаблону) и «Overlay» (значениями другого ряда). Метод обработки пропусков определяется свойством IMsFillGapsTransform.MissingData.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «CONT_MODEL». В данном контейнере должны присутствовать три переменные моделирования с идентификаторами «INPUT_FILL_GRAPS», «OUTPUT_FILL_GRAPS» и «VAR_EXPL».

Sub Main;

Var

MB: IMetabase;

Cont: IMetabaseObjectDescriptor;

Descript: IMetabaseObjectDescriptor;

ModelKey: Integer;

CrInf: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Model: IMsModel;

Obj_x1: IMetabaseObject;

Transform: IMsFormulaTransform;

Out: IMsFormulaTransformVariables;

TransformVar: IMsFormulaTransformVariable;

Slice: IMsFormulaTransformSlice;

Selector: IMsFormulaTransformSelector;

Formula: IMsFormula;

FillGaps: IMsFillGapsTransform;

ModelVar_x1: IVariableStub;

TermInfo: IMsFormulaTermInfo;

Begin

MB := MetabaseClass.Active;

Cont := Mb.ItemById("CONT_MODEL").Bind;

ModelKey := Cont.Key;

// Создаем новую модель в контейнере моделирования

CrInf := MB.CreateCreateInfo;

CrInf.ClassId := MetabaseObjectClass.KE_CLASS_MSMODEL;

CrInf.Name := "New_Fill_Graps_Model";

CrInf.Parent := Cont;

CrInf.Permanent := True;

MObj := MB.CreateObject(CrInf).Edit;

Model := MObj As IMsModel;

Transform := Model.Transform;

// Задаем моделируемую переменную

Descript := MB.ItemByIdNamespace("INPUT_FILL_GRAPS", ModelKey);

Obj_x1 := Descript.Bind;

ModelVar_x1 := Obj_x1 As IVariableStub;

Out := Transform.Outputs;

Out.Clear;

Out.Add(ModelVar_x1);

// Определяем вид модели

TransformVar := Out.Item(0);

Slice := TransformVar.Slices.Add(Null);

Selector := Transform.CreateSelector;

Selector.Slice := Slice;

Formula := Transform.Transform(Selector);

Formula.Kind := MsFormulaKind.FillGaps;

FillGaps := Formula.Method As IMsFillGapsTransform;

TermInfo := Transform.CreateTerminfo;

TermInfo.Slice := Slice;

FillGaps.InputFactorTerm := TermInfo;

// Задаем переменную, в которую будут выгружаться результаты

Descript := MB.ItemByIdNamespace("OUTPUT_FILL_GRAPS", ModelKey);

Obj_x1 := Descript.Bind;

ModelVar_x1 := Obj_x1 As IVariableStub;

FillGaps.Fitted := ModelVar_x1;

// Определяем параметры расчета модели

FillGaps.MissingData.Method := MissingDataMethod.Overlay;

Descript := MB.ItemByIdNamespace("VAR_EXPL", ModelKey);

Obj_x1 := Descript.Bind;

ModelVar_x1 := Obj_x1 As IVariableStub;

TransformVar := Transform.Inputs.Add(ModelVar_x1);

Slice := TransformVar.Slices.Add(Null);

TermInfo.Slice := Slice;

FillGaps.Specified := TermInfo;

MObj.Save;

End Sub Main;

После выполнения примера в контейнере моделирования будет создана модель «New_Fill_Graps_Model», использующая для расчета метод обработки пропусков. Моделируемая переменная - «INPUT_FILL_GRAPS», результаты выгружаются в переменную «OUTPUT_FILL_GRAPS». Пропущенные значения моделируемого ряда будут заменены значениями из ряда, определяемого переменной «VAR_EXPL».

См. также:

IMsFillGapsTransform