IMetabase.ItemByIdNamespace

Синтаксис Fore

ItemByIdNamespace(Id: String; Namespace_: Integer): IMetabaseObjectDescriptor;

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

ItemByIdNamespace[Id: String; Namespace_: Integer]: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;

Параметры

Id. Идентификатор объекта, описание которого необходимо получить.

Namespace_. Ключ объекта-контейнера. В качестве объекта-контейнера могут указываться следующие объекты репозитория: репозиторий НСИ, контейнер моделирования, веб-приложение. Также могут указываться различные объекты, внутренние объекты которых не отображаются в навигаторе объектов (например, база данных временных рядов, контейнер пользовательских классов, справочники и другие).

Описание

Свойство ItemByIdNamespace возвращает описание объекта, содержащегося в каком-либо объекте-контейнере.

Комментарии

Данное свойство используется для доступа к внутренним объектам (например, схема отметки справочников), а также к дочерним объектам, хранящимся в объектах-контейнерах.

Свойство возвращает значение Null, если объект с указанным идентификатором не существует.

Пример Fore

Для выполнения примера предполагается наличие формы и расположенной на ней кнопки с наименованием «Button1». В репозитории имеется репозиторий НСИ с идентификатором «RDS», в котором сохранён справочник НСИ с идентификатором «Dict_1».

Sub UserProc;
Var
    MB: IMetabase;
    RDS: IRdsDictionary;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
Begin
    MB := MetabaseClass.Active;
    RDS := MB.ItemByIdNamespace("Dict_1", MB.GetObjectKeyById("RDS")).Bind As IRdsDictionary;
    If RDS <> Null Then
        Target := WinApplication.Instance.GetPluginTarget("Rds");
        Context := Target.CreateExecutionContext;
        Context.Data := RDS;
        Target.Execute("EditDictionary", Context);
    End If;
End Sub UserProc;

При нажатии на кнопку указанный справочник НСИ будет открыт на редактирование.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Ui;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RDS: IRdsDictionary;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    WinApp: WinApplication = New WinApplicationClass_2();
Begin
    MB := Params.Metabase;
    RDS := MB.ItemByIdNamespace["Dict_1", MB.GetObjectKeyById("RDS")].Bind() As IRdsDictionary;
    If RDS <> Null Then
        Target := WinApp.GetPluginTarget("Rds");
        Context := Target.CreateExecutionContext();
        Context.Data := RDS;
        Target.Execute("EditDictionary", Context, Null);
    End If;
End Sub;

См. также:

IMetabase