IDtUserConsumer.UserData

Синтаксис Fore

UserData: IXmlDomElement;

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

UserData: Prognoz.Platform.Interop.MsXml2.IXmlDomElement;

Описание

Свойство UserData определяет дополнительные настройки в формате XML для пользовательского приёмника данных.

Комментарии

Дополнительные настройки определяются в интерфейсе IDtRecordsetUserData класса, реализующего данный интерфейс и интерфейс IDtRecordsetConsumer.

Особенности работы с XML-файлами представлены на странице «Пример работы с XML-файлами».

Пример Fore

Для выполнения примера в репозитории необходимо наличие:

Добавьте ссылки на системные сборки: Andy, Dal, Drawing, Dt, Etl, Metabase, Xml.

Sub UserProc;
Var
    MB: IMetabase;
    EtlTask: IEtlTask;
    EtlConsumer: IEtlPlainDataConsumer;
    UserConsumer: IDtUserConsumer;
    WxConsumer: IWxRectangle;
    WxETLConsumer: IWxETLObject;
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим задачу ETL
    EtlTask := MB.ItemById("ETL").Edit As IEtlTask;
    //Создадим объект «Приёмник пользователя» в задаче ETL
    EtlConsumer := EtlTask.Create(EtlObjectType.PlainDataUserConsumer) As IEtlPlainDataConsumer;
    EtlConsumer := EtlConsumer.Edit;
    EtlConsumer.Id := "User_Consumer";
    EtlConsumer.Name := "Приёмник пользователя";
    EtlConsumer.Description := "Приёмник пользователя";
    //Настроим приёмник данных
    UserConsumer := EtlConsumer.Consumer As IDtUserConsumer;
    UserConsumer.ForeModule := MB.ItemById("MYCONSUMER").Bind;
    UserConsumer.ForeClass := "MyConsumer";
    Debug.WriteLine("Пользовательские данные в формате XML" + UserConsumer.UserData.xml);
    Fields := UserConsumer.Fields;
    Field := Fields.Add;
    Field.DataType := DbDataType.String;
    Field.Name := "Наименование";
    Field := Fields.Add;
    Field.DataType := DbDataType.Float;
    Field.Name := "Значение";
    EtlConsumer.FillDefault;
    //Сохраним настройки приёмника данных
    EtlConsumer.Save;
    // Создадим визуальное представление объекта в задаче ETL
    WxConsumer := EtlTask.Workspace.CreateRectangle;
    WxETLConsumer := New WxETLObject.Create;
    WxETLConsumer.ETLObject := EtlConsumer;
    WxConsumer.Style.TextPosition := WxTextPosition.Bottom;
    WxConsumer.Style.PictureMarginTop := -10;
    WxConsumer.PinPosition := New GxPointF.Create(5050);
    WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
    //Сохраненим изменения
    (EtlTask As IMEtabaseObject).Save;
End Sub UserProc;

После выполнения примера в указанной задаче ETL будет создан пользовательский приёмник данных на основе указанного класса. В окно консоли будут выведены пользовательские данные в формате XML.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Etl;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    EtlTask: IEtlTask;
    EtlConsumer: IEtlPlainDataConsumer;
    UserConsumer: IDtUserConsumer;
    WxConsumer: IWxRectangle;
    WxETLConsumer: WxETLObject = New WxETLObjectClass();
    PointF: GxPointF = New GxPointFClass();
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим задачу ETL
    EtlTask := MB.ItemById["ETL"].Edit() As IEtlTask;
    //Создадим объект «Приёмник пользователя» в задаче ETL
    EtlConsumer := EtlTask.Create(EtlObjectType.eotPlainDataUserConsumer) As IEtlPlainDataConsumer;
    EtlConsumer := EtlConsumer.Edit();
    EtlConsumer.Id := "User_Consumer";
    EtlConsumer.Name := "Приёмник пользователя";
    EtlConsumer.Description := "Приёмник пользователя";
    //Настроим приёмник данных
    UserConsumer := EtlConsumer.Consumer As IDtUserConsumer;
    UserConsumer.ForeModule := MB.ItemById["MYCONSUMER"].Bind();
    UserConsumer.ForeClass := "MyConsumer";
    System.Diagnostics.Debug.WriteLine("Пользовательские данные в формате XML" + UserConsumer.UserData.xml);
    Fields := UserConsumer.Fields;
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtString;
    Field.Name := "Наименование";
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtFloat;
    Field.Name := "Значение";
    EtlConsumer.FillDefault();
    //Сохраним настройки приёмника данных
    EtlConsumer.Save();
    // Создадим визуальное представление объекта в задаче ETL
    WxConsumer := EtlTask.Workspace.CreateRectangle();
    //WxETLConsumer := New WxETLObject.Create;
    WxETLConsumer.ETLObject := EtlConsumer;
    WxConsumer.Style.TextPosition := WxTextPosition.wtpBottom;
    WxConsumer.Style.PictureMarginTop := -10;
    PointF.Create(5050);
    WxConsumer.PinPosition := PointF;
    WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
    //Сохраненим изменения
    (EtlTask As IMEtabaseObject).Save();
End Sub;

См. также:

IDtUserConsumer