Ms > Интерфейсы сборки Ms > IMsMetaModelVisualController > IMsMetaModelVisualController.LevelFormat
LevelFormat: MsLevelFormat;
LevelFormat: Prognoz.Platform.Interop.Ms.MsLevelFormat;
Свойство LevelFormat определяет режим отображения календарной динамики.
По умолчанию календарная динамика не отображается, т.е. LevelFormat = MsLevelFormat.None.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего задачу моделирования с идентификатором «PROBLEM». Задача должна содержать внутреннюю метамодель.
Добавьте ссылки на системные сборки «Metabase», «Ms».
Sub UserProc;
Var
mb: IMetabase;
MsObj: IMetabaseObjectDescriptor;
Problem: IMsProblem;
Meta: IMsMetaModel;
MetaVisual: IMsMetaModelVisualController;
ChainEn: IMsCalculationChainEntries;
i: Integer;
ChainVar: IMsCalculationChainVariable;
Begin
mb := MetabaseClass.Active;
// Получаем контейнер моделирования
MsObj := mb.ItemById("MODEL_SPACE");
// Получаем задачу моделирования
Problem := mb.ItemByIdNamespace("PROBLEM", MsObj.Key).Edit As IMsProblem;
// Получаем метамодель
Meta := Problem.MetaModel;
MetaVisual := Meta.VisualController;
// Задаем параметры отображения календарной динамики
MetaVisual.LevelFormat := MsLevelFormat.Long;
MetaVisual.UpdateVariables;
// Выводим наименования переменных в окно консоли
ChainEn := Meta.CalculationChain;
For i := 0 To ChainEn.Count - 1 Do
If ChainEn.Item(i).Type = MsCalculationChainEntryType.Variable Then
ChainVar := ChainEn.Item(i) As IMsCalculationChainVariable;
Debug.WriteLine("Переменная: " + ChainVar.Key.ToString);
Debug.WriteLine(" - исходное наименование: " + ChainVar.OriginalName);
Debug.WriteLine(" - полное наименование: " + ChainVar.FullName);
End If;
End For;
(Problem As IMetabaseObject).Save;
End Sub UserProc;
Результат выполнения примера: для задачи моделирования изменен режим отображения календарной динамики, в окно консоли выведены различные наименования переменных, содержащихся в задаче.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsObj: IMetabaseObjectDescriptor;
Problem: IMsProblem;
Meta: IMsMetaModel;
MetaVisual: IMsMetaModelVisualController;
ChainEn: IMsCalculationChainEntries;
i: Integer;
ChainVar: IMsCalculationChainVariable;
Begin
mb := Params.Metabase;
// Получаем контейнер моделирования
MsObj := mb.ItemById["MODEL_SPACE"];
// Получаем задачу моделирования
Problem := mb.ItemByIdNamespace["PROBLEM", MsObj.Key].Edit() As IMsProblem;
// Получаем метамодель
Meta := Problem.MetaModel;
MetaVisual := Meta.VisualController;
// Задаем параметры отображения календарной динамики
MetaVisual.LevelFormat := MsLevelFormat.mlfLong;
MetaVisual.UpdateVariables();
// Выводим наименвания переменных в окно консоли
ChainEn := Meta.CalculationChain;
For i := 0 To ChainEn.Count - 1 Do
If ChainEn.Item[i].Type = MsCalculationChainEntryType.mccetVariable Then
ChainVar := ChainEn.Item[i] As IMsCalculationChainVariable;
System.Diagnostics.Debug.WriteLine("Переменная: " + ChainVar.Key.ToString());
System.Diagnostics.Debug.WriteLine(" - исходное наименование: " + ChainVar.OriginalName);
System.Diagnostics.Debug.WriteLine(" - полное наименование: " + ChainVar.FullName);
End If;
End For;
(Problem As IMetabaseObject).Save();
End Sub;
См. также: