IMsMetaModelVisualController.FindChainVariableBySlice

Синтаксис Fore

FindChainVariableBySlice(Slice: IMsFormulaTransformSlice): IMsCalculationChainVariable;

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

FindChainVariableBySlice(Slice: Prognoz.Platform.Interop.Ms.IMsFormulaTransformSlice): Prognoz.Platform.Interop.Ms.IMsCalculationChainVariable;

Параметры

Slice. Срез переменной.

Описание

Метод FindChainVariableBySlice выполняет поиск переменной по срезу.

Комментарии

Параметр Slice не может принимать значение Null.

Если переменная с указанным срезом не найдена, то метод возвращает значение Null.

Пример Fore

Пример является функцией, возвращающей признак наличия переменной с указанным срезом в цепочке расчёта метамодели. Входной параметр функции - срез переменной. Если переменная найдена, то функция возвращает значение True, в обратном случае - False.

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего задачу моделирования с идентификатором «WEB_PROBLEM». Задача моделирования должна содержать внутреннюю метамодель.

Добавьте ссылки на системные сборки «Metabase», «Ms».

Function FindChainVariableBySlice(Slice: IMsFormulaTransformSlice): Boolean;
Var
    MB: IMetabase;
    MsObj: IMetabaseObject;
    Problem: IMsProblem;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    ChainVar: IMsCalculationChainVariable;
Begin
    MB := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MsObj := MB.ItemById("MODEL_SPACE").Bind;
    // Получаем задачу моделирования
    Problem := MB.ItemByIdNamespace("WEB_PROBLEM", MsObj.Key).Bind As IMsProblem;
    // Получаем метамодель  
    Meta := Problem.MetaModel;
    MetaVisual := Meta.VisualController;
    // Выполняем поиск переменной
    ChainVar := MetaVisual.FindChainVariableBySlice(Slice);
    // Возвращаем признак наличия переменной в метамодели
    If Slice <> Null Then
        Return True;
    Else
        Return False;
    End If;
End Function FindChainVariableBySlice;

В результате выполнения примера функция вернет признак наличия переменной с указанным срезом в цепочке расчёта метамодели.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Ms;

Public Shared Function FindChainVariableBySlice(Slice: IMsFormulaTransformSlice; Params: StartParams): Boolean;
Var
    MB: IMetabase;
    MsObj: IMetabaseObject;
    Problem: IMsProblem;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    ChainVar: IMsCalculationChainVariable;
Begin
    MB := Params.Metabase;
    // Получаем контейнер моделирования
    MsObj := MB.ItemById["MODEL_SPACE"].Bind();
    // Получаем задачу моделирования
    Problem := MB.ItemByIdNamespace["WEB_PROBLEM", MsObj.Key].Bind() As IMsProblem;
    // Получаем метамодель  
    Meta := Problem.MetaModel;
    MetaVisual := Meta.VisualController;
    // Выполняем поиск переменной
    ChainVar := MetaVisual.FindChainVariableBySlice(Slice);
    // Возвращаем признак наличия переменной в метамодели
    If Slice <> Null Then
        Return True;
    Else
        Return False;
    End If;
End Function FindChainVariableBySlice;

См. также:

IMsMetaModelVisualController