IDtUserProviderEx.Module

Синтаксис

Module: IMetabaseObjectDescriptor;

Module: Prognoz.Platform.Interop.Metabase.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(
10Var 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». В окно консоли будет выведено количество фактически загруженных строк.

См. также:

IDtUserProviderEx