IMsMetaModelVisualController.LevelFormat

Синтаксис Fore

LevelFormat: MsLevelFormat;

Синтаксис Fore.NET

LevelFormat: Prognoz.Platform.Interop.Ms.MsLevelFormat;

Описание

Свойство LevelFormat определяет режим отображения календарной динамики.

Комментарии

По умолчанию календарная динамика не отображается, т.е. LevelFormat = MsLevelFormat.None.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «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.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;

См. также:

IMsMetaModelVisualController