Module: IMetabaseObjectDescriptor;
Свойство Module определяет модуль/сборку Fore/Fore.NET репозитория, где реализован пользовательский алгоритм получения данных.
Свойство Module используется в комбинации со свойством Macro.
Для выполнения примера предполагается наличие модуля с идентификатором «CUSTOM_IMPORT» (.NET-сборки с идентификатором «CUSTOM_IMPORT_NET»), содержащего класс «MyDtCustomProvider».
Добавьте ссылки на системные сборки: Dt, Metabase.
Sub UserProc;
Var
MB: IMetabase;
UserProvider: IDtUserProviderEx;
CustomProvider: IDtCustomProvider;
Values: Array;
ReadingRows: Integer;
Begin
MB := MetabaseClass.Active;
UserProvider := New DtUserProviderEx.Create;
UserProvider.Metabase := MB;
UserProvider.Module := MB.ItemById("CUSTOM_IMPORT");
UserProvider.Macro := "MyDtCustomProvider";
UserProvider.Open;
UserProvider.FieldsFromFile;
CustomProvider := UserProvider.CustomProvider;
If CustomProvider.ImplementFetchRows Then
CustomProvider.FetchRows(10, Values);
Else
While Not CustomProvider.Eof Do
CustomProvider.Fetch(Values);
End While;
End If;
ReadingRows := CustomProvider.ReadingRowsCount;
Debug.WriteLine("Прочитано " + ReadingRows.ToString + " строк.");
UserProvider.Close;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
UserProvider: IDtUserProviderEx;
CustomProvider: IDtCustomProvider;
Values: Array;
ReadingRows: Integer;
Begin
MB := Params.Metabase;
UserProvider := New DtUserProviderEx.Create();
UserProvider.Metabase := MB;
UserProvider.Module := MB.ItemById["CUSTOM_IMPORT_NET"];
UserProvider.Macro := "MyDtCustomProvider";
UserProvider.Open();
UserProvider.FieldsFromFile();
CustomProvider := UserProvider.CustomProvider;
If CustomProvider.ImplementFetchRows() Then
CustomProvider.FetchRows(10, Var Values);
Else
While Not CustomProvider.Eof Do
CustomProvider.Fetch(Var Values);
End While;
End If;
ReadingRows := CustomProvider.ReadingRowsCount();
System.Diagnostics.Debug.WriteLine("Прочитано " + ReadingRows.ToString() + " строк.");
UserProvider.Close();
End Sub;
При выполнении примера с помощью пользовательского алгоритма будет выполнена загрузка строк из источника данных в массив «Values». В окно консоли будет выведено количество фактически загруженных строк.
См. также: