Code: String;
Свойство Code определяет выражение для расчета модели.
Для формирования выражения используйте язык R. Более подробное описание языка R приведено в документации к R.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS», содержащим модель с идентификатором «MODEL_LINEAR_R». Данная модель должна рассчитываться методом «R». В репозитории должна быть настроена интеграция с R. Подробнее о том, как можно настроить интеграцию вы можете узнать в разделе «Как настроить интеграцию с R?».
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
mb: IMetabase;
msKey: Integer;
modelObj: IMetabaseObject;
transf: IMsFormulaTransform;
formula: IMsFormula;
RTransform: IMsRTransform;
inputs: IMsFormulaTermList;
inputTerm, result: IMsRFormulaTerm;
Begin
// Получаем репозиторий
mb := MetabaseClass.Active;
// Получаем ключ контейнера моделирования
msKey := mb.GetObjectKeyById("MS");
// Получаем модель R
modelObj := mb.ItemByIdNamespace("MODEL_LINEAR_R", msKey).Edit;
// Получаем параметры расчета модели
transf := (modelObj As IMsModel).Transform;
formula := transf.FormulaItem(0);
RTransform := formula.Method As IMsRTransform;
// Получаем первую входную переменную
inputs := RTransform.Inputs;
inputTerm := inputs.Item(0) As IMsRFormulaTerm;
// Переименовываем входную переменную
inputTerm.Name := "a";
// Получаем моделируемую
переменную
result := RTransform.Result As IMsRFormulaTerm;
// Переименовываем выходную переменную
result.Name := "res";
// Задаем выражение
для расчета модели
RTransform.Code := "res <- a + 1;";
// Сохраняем изменения
modelObj.Save;
End Sub UserProc;
В результате выполнения примера для модели «MODEL_LINEAR_R» будет задан код для расчета.
См. также:
IMsRTransform | Модель «R»