CustomObject: Variant;
CustomObject: object;
Свойство предназначено только для чтения.
Свойство CustomObject возвращает объект, который является источником данных, полученным с помощью пользовательского алгоритма.
Источник данных доступен только после вызова метода IDtObject.Open.
Для выполнения примера предполагается наличие модуля с идентификатором «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» строки из источника данных, полученного с помощью пользовательского алгоритма. В окно консоли будет выведено количество фактически загруженных строк.
Для выполнения примера предполагается наличие .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(10, Var 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 строк из источника данных, полученного с помощью пользовательского алгоритма. В окно консоли будет выведено количество фактически загруженных строк.
См. также: