Open(Params: IMetabaseObjectParamValues): IDatasetInstance;
Open(Params: Prognoz.Platform.Interop.Metabase.IMetabaseObjectParamValues): Prognoz.Platform.Interop.Db.IDatasetInstance;
Params. Параметры источника данных. Null если параметры отсутствуют.
Метод Open открывает источник данных. Значения параметров источника данных передаются посредством Params.
Для открытия источника данных с применением фильтра используйте метод IDatasetModel.OpenWhere.
Для выполнения примера предполагается наличие в репозитории запроса с идентификатором «Query_1». Данный запрос имеет один параметр.
Добавьте ссылки на системные сборки «Metabase» и «Db».
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
DSInst: IDatasetInstance;
DSModel: IDatasetModel;
Params: IMetabaseObjectParamValues;
Fields: IDatasetInstanceFields;
Field: IDatasetInstanceField;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("Query_1").Bind;
DSModel := MObj As IDatasetModel;
Params := MObj.Params.CreateEmptyValues;
Params.Item(0).Value := "100";
DSInst := DSModel.Open(Params);
Fields := DSInst.Fields;
While Not DSInst.Eof Do
For Each Field In Fields Do
Debug.Write(Field.Value + " ");
End For;
Debug.WriteLine("");
DSInst.Next;
End While;
End Sub UserProc;
После выполнения примера будет произведено открытие запроса с указанным значением параметра. Данные, полученные в результате выполнения запроса, будут выведены в консоль среды разработки.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Db;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObject;
DSInst: IDatasetInstance;
DSModel: IDatasetModel;
Param: IMetabaseObjectParamValues;
Fields: IDatasetInstanceFields;
Field: IDatasetInstanceField;
Begin
MB := Params.Metabase;
MObj := MB.ItemById["Query_1"].Bind();
DSModel := MObj As IDatasetModel;
Param := MObj.Params.CreateEmptyValues();
Param.Item[0].Value := "100";
DSInst := DSModel.Open(Param);
Fields := DSInst.Fields;
While Not DSInst.Eof() Do
For Each Field In Fields Do
System.Diagnostics.Debug.Write(Field.Value + " ");
End For;
System.Diagnostics.Debug.WriteLine("");
DSInst.Next();
End While;
End Sub;
См. также: