IDtUserConsumerEx.CustomConsumer

Синтаксис Fore

CustomConsumer: IDtCustomConsumer;

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

CustomConsumer: Prognoz.Platform.Interop.Dt.IDtCustomConsumer;

Описание

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

Комментарии

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

Пример Fore

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

Sub UserProc_ImplClass;
Var
    Consumer: IDtUserConsumerEx;
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
    v: Array;
    customCons: IDtCustomConsumer;
Begin
//Массив экспортируемых значений
    v := New Variant[34];
    v[00] := "Греча"; v[10] := 10; v[20] := 313.12;
    v[01] := "Молоко"; v[11] := 20; v[21] := 301.53;
    v[02] := "Сахар"; v[12] := 30; v[22] := 254.13;
    v[03] := "Хлеб"; v[13] := 40; v[23] := 404.11;
    Consumer := New DtUserConsumerEx.Create;
    Consumer.Metabase := MetabaseClass.Active;
    Consumer.ImplClass := "CUSTOM_EXPORT.MyDtCustomConsumer";
    Fields := Consumer.Fields;
    Field := Fields.Add;
    Field.DataType := DbDataType.String;
    Field.Name := "Наименование";
    Field := Fields.Add;
    Field.DataType := DbDataType.Integer;
    Field.Name := "Идентификатор";
    Field := Fields.Add;
    Field.DataType := DbDataType.Float;
    Field.Name := "Значение";
    Consumer.Open;
    Consumer.Clear;
    customCons := Consumer.CustomConsumer;
    If customCons.ImplementPut Then
        Consumer.Put(v);
        Debug.WriteLine("Число записанных строк: " + Consumer.WritingRowsCount.ToString);
    Else
        Debug.WriteLine("Выгрузка двумерных массивов недоступна");
    End If;
    Consumer.Close;
End Sub UserProc_ImplClass;

После выполнения примера данные выгружаются в приёмник с помощью пользовательского алгоритма.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Dal;

Public Shared Sub Main(Params: StartParams);
Var
    Consumer: IDtUserConsumerEx;
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
    v: Array;
    customCons: IDtCustomConsumer;
Begin
//Массив экспортируемых значений
    v := New object[43];
    v[00] := "Греча"; v[01] := 10; v[02] := 313.12;
    v[10] := "Молоко"; v[11] := 20; v[12] := 301.53;
    v[20] := "Сахар"; v[21] := 30; v[22] := 254.13;
    v[30] := "Хлеб"; v[31] := 40; v[32] := 404.11;
    Consumer := New DtUserConsumerEx.Create();
    Consumer.Metabase := Params.Metabase;
    Consumer.ImplClass := "CUSTOM_EXPORT_NET.MyDtCustomConsumer";
    Fields := Consumer.Fields;
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtString;
    Field.Name := "Наименование";
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtInteger;
    Field.Name := "Идентификатор";
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtFloat;
    Field.Name := "Значение";
    Consumer.Open();
    Consumer.Clear();
    customCons := Consumer.CustomConsumer;
    If customCons.ImplementPut() Then
        Consumer.Put(v);
        System.Diagnostics.Debug.WriteLine("Число записанных строк: " + Consumer.WritingRowsCount().ToString());
    Else
        System.Diagnostics.Debug.WriteLine("Выгрузка двумерных массивов недоступна");
    End If;
    Consumer.Close();
End Sub;

После выполнения примера данные выгружаются в приёмник с помощью пользовательского алгоритма.

См. также:

IDtUserConsumerEx