RenameVariable(EntryKey: Integer; Name: String): Boolean;
RenameVariable(EntryKey: integer; Name: string): boolean;
EntryKey. Ключ переменной;
Name. Требуемое наименование переменной.
Метод RenameVariable переименовывает указанную внутреннюю переменную метамодели.
Возможные значения:
True. Переименование выполнено успешно;
False. Наименование указанной переменной осталось без изменений.
Для создания внутренней переменной используйте метод IMsMetaModelVisualController.CreateVariable.
Для выполнения примера в репозитории должен присутствовать контейнер моделирования с идентификатором «MS», содержащий задачу моделирования с идентификатором «FILLMODEL». Данная задача должна содержать внутреннюю метамодель, содержащую внутреннюю БД временных рядов и модель.
Добавьте ссылки на системные сборки «Metabase», «Ms».
Sub RenameVariable;
Var
mb: IMetabase;
MsObj: IMetabaseObjectDescriptor;
Meta: IMsMetaModel;
MetaVisual: IMsMetaModelVisualController;
Varable: IMsCalculationChainVariable;
pr: IMsProblem;
i: Integer;
ChainEn: IMsCalculationChainEntries;
Begin
mb := MetabaseClass.Active;
// Получаем контейнер моделирования
MsObj := mb.ItemById("MS");
// Получаем задачу моделирования
pr := mb.ItemByIdNamespace("FILLMODEL", MsObj.Key).Bind As IMsProblem;
// Получаем метамодель
Meta := pr.MetaModel;
MetaVisual := Meta.VisualController;
// Получаем модель
ChainEn := Meta.CalculationChain;
For i := 0 To ChainEn.Count - 1 Do
If ChainEn.Item(i).Type = MsCalculationChainEntryType.Variable Then
Varable := ChainEn.Item(i) As IMsCalculationChainVariable;
MetaVisual.RenameVariable(Varable.Key, Varable.Name + "_");
End If;
End For;
End Sub RenameVariable;
После выполнения примера все внутренние переменные указанной задачи будут переименованы.
Необходимые требования и результат выполнения примера Fore.NET совпадают с необходимыми требованиями и результатом выполнения примера Fore.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsObj: IMetabaseObjectDescriptor;
Meta: IMsMetaModel;
MetaVisual: IMsMetaModelVisualController;
Varable: IMsCalculationChainVariable;
pr: IMsProblem;
i: Integer;
ChainEn: IMsCalculationChainEntries;
Begin
mb := Params.Metabase;
// Получаем контейнер моделирования
MsObj := mb.ItemById["MS"];
// Получаем задачу моделирования
pr := mb.ItemByIdNamespace["FILLMODEL", MsObj.Key].Bind() As IMsProblem;
// Получаем метамодель
Meta := pr.MetaModel;
MetaVisual := Meta.VisualController;
// Получаем модель
ChainEn := Meta.CalculationChain;
For i := 0 To ChainEn.Count - 1 Do
If ChainEn.Item[i].Type = MsCalculationChainEntryType.mccetVariable Then
Varable := ChainEn.Item[i] As IMsCalculationChainVariable;
MetaVisual.RenameVariable(Varable.Key As integer, Varable.Name + "_");
End If;
End For;
End Sub;
См. также: