Open(Params: IMetabaseObjectParamValues): 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;
В результате выполнения примера будет открыт запрос с указанными значениями параметров. Значения первого столбца данных, полученных при выполнении запроса, будут выведены в консоль среды разработки.
См. также: