IDtUserProviderEx.CustomObject

Синтаксис Fore

CustomObject: Variant;

Синтаксис Fore.NET

CustomObject: object;

Описание

Свойство предназначено только для чтения.

Свойство CustomObject возвращает объект, который является источником данных, полученным с помощью пользовательского алгоритма.

Комментарии

Источник данных доступен только после вызова метода IDtObject.Open.

Пример Fore

Для выполнения примера предполагается наличие модуля с идентификатором «CUSTOM_LOAD», содержащего класс «MyDtCustomProvider». Добавьте ссылки на системные сборки «Metabase», «Dt».

Sub UserProc_CustomObject;
Var
    UsProv: IDtUserProviderEx;
    CustProv: IDtCustomProvider;
    Values: Array;
    ReadingRows: Integer;
    b: Object;
Begin
    UsProv := New DtUserProviderEx.Create;
    UsProv.Metabase := MetabaseClass.Active;
    UsProv.ImplClass := "CUSTOM_LOAD.MyDtCustomProvider";
    UsProv.Open;
    UsProv.FieldsFromFile;
    b := UsProv.CustomObject As Object;
    CustProv := b As IDtCustomProvider;
    If CustProv.ImplementFetchRows Then
        CustProv.FetchRows(10, Values);
    Else
        While Not CustProv.Eof Do
            CustProv.Fetch(Values);
        End While;
    End If;
    ReadingRows := CustProv.ReadingRowsCount;
    Debug.WriteLine("Прочитано " + ReadingRows.ToString + " строк");
    UsProv.Close;
End Sub UserProc_CustomObject;

Результат выполнения примера: с помощью пользовательского алгоритма будет выполнена попытка загрузить в массив «Values» строки из источника данных, полученного с помощью пользовательского алгоритма. В окно консоли будет выведено количество фактически загруженных строк.

Пример Fore.NET

Для выполнения примера предполагается наличие .NET сборки с идентификатором «CUSTOM_LOAD_NET», содержащей класс «MyDtCustomProvider».

Imports Prognoz.Platform.Interop.Dt;

Public Shared Sub Main(Params: StartParams);
Var
    UsProv: IDtUserProviderEx;
    CustProv: IDtCustomProvider;
    Values: Array;
    ReadingRows: Integer;
    b: Object;
Begin
    UsProv := New DtUserProviderEx.Create();
    UsProv.Metabase := Params.Metabase;
    UsProv.ImplClass := "CUSTOM_LOAD_NET.MyDtCustomProvider";
    UsProv.Open();
    UsProv.FieldsFromFile();
    b := UsProv.CustomObject As Object;
    CustProv := UsProv.CustomObject As IDtCustomProvider;
    If CustProv.ImplementFetchRows() Then
        CustProv.FetchRows(10Var Values);
    Else
        While Not CustProv.Eof Do
            CustProv.Fetch(Var Values);
        End While;
    End If;
    ReadingRows := CustProv.ReadingRowsCount();
    System.Diagnostics.Debug.WriteLine("Прочитано " + ReadingRows.ToString() + " строк");
    UsProv.Close();
End Sub;

Результат выполнения примера: с помощью пользовательского алгоритма будет выполнена попытка загрузить в массив «Values» первые 10 строк из источника данных, полученного с помощью пользовательского алгоритма. В окно консоли будет выведено количество фактически загруженных строк.

См. также:

IDtUserProviderEx