IMetabaseObjectDescriptor.Open

Синтаксис

Open(Params: IMetabaseObjectParamValues): IMetabaseObjectInstance;

Open(Params: Prognoz.Platform.Interop.Metabase.IMetabaseObjectParamValues): Prognoz.Platform.Interop.Metabase.IMetabaseObjectInstance;

Параметры

Params. Значения параметров, с которыми осуществляется открытие объекта. Если у объекта отсутствуют параметры, то необходимо передавать значение Null.

Описание

Метод Open осуществляет открытие объекта и возвращает его данные.

Комментарии

Метод Open создает экземпляр объекта, но при этом не открывает его в визуальном интерфейсе. В визуальном интерфейсе будут открыты только формы. Для открытия визуального интерфейса других объектов репозитория используйте команду Object.Open.

При открытии параметрических объектов, коллекцию для указания значений параметров можно получить с помощью метода IMetabaseObjectParams.CreateEmptyValues.

Примеры

Пример открытия формы

Для выполнения примера предполагается наличие в репозитории формы с идентификатором «Form_open».

Добавьте ссылку на системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById(
"Form_open").Bind;
    MObj.Open(
Null);
End Sub UserProc;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById[
"Form_open"].Bind();
    MObj.Open(
Null);
End Sub;

После выполнения примера будет открыта форма.

Пример открытия запроса

Для выполнения примера предполагается наличие в репозитории запроса с идентификатором «Query_1». Данный запрос создан с двумя параметрами.

Добавьте ссылки на системные сборки: Db, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Params: IMetabaseObjectParamValues;
    Inst: IDatasetInstance;
    Fields: IDatasetInstanceFields;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById(
"Query_1");
    Params := MObj.Params.CreateEmptyValues;
    Params.Item(
0).Value := 100;
    Params.Item(
1).Value := 300;
    
//Открытие запроса
    Inst := MObj.Open(Params) As IDatasetInstance;
    Fields := Inst.Fields;
    
//Просмотр значений
    While Not Inst.Eof Do
        Debug.WriteLine(Fields.Item(
0).Value);
        Inst.Next;
    
End While;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Param: IMetabaseObjectParamValues;
    Inst: IDatasetInstance;
    Fields: IDatasetInstanceFields;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById[
"Query_1"];
    Param := MObj.Params.CreateEmptyValues();
    Param.Item[
0].Value := 100;
    Param.Item[
1].Value := 300;
    Inst := MObj.Open(Param) 
As IDatasetInstance;
    Fields := Inst.Fields;
    
While Not Inst.Eof() Do
        System.Diagnostics.Debug.WriteLine(Fields.Item[
0].Value);
        Inst.Next();
    
End While;
End Sub;

В результате выполнения примера будет открыт запрос с указанными значениями параметров. Значения первого столбца данных, полученных при выполнении запроса, будут выведены в консоль среды разработки.

См. также:

IMetabaseObjectDescriptor