IDtUserProvider.UserData

Синтаксис Fore

UserData: IXmlDomElement;

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

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

Описание

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

Комментарии

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

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

Пример Fore

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

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

Sub UserProc;
Var
    MB: IMetabase;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    UserProvider: IDtUserProvider;
    WxProvider: IWxRectangle;
    WxETLProvider: IWxETLObject;
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим задачу ETL
    EtlTask := MB.ItemById("ETL").Edit As IEtlTask;
    //Создадим объект «Источник пользователя» в задаче ETL
    EtlProvider := EtlTask.Create(EtlObjectType.PlainDataUserProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit;
    EtlProvider.Id := "User_Provider";
    EtlProvider.Name := "Источник пользователя";
    EtlProvider.Description := "Источник пользователя";
    //Настроим источник данных
    UserProvider := EtlProvider.Provider As IDtUserProvider;
    UserProvider.ForeModule := MB.ItemById("MYPROVIDER").Bind;
    UserProvider.ForeClass := "MyProvider";
    Debug.WriteLine("Пользовательские данные в формате XML" + UserProvider.UserData.xml);
    Fields := UserProvider.Fields;
    Field := Fields.Add;
    Field.DataType := DbDataType.String;
    Field.Name := "Наименование";
    Field := Fields.Add;
    Field.DataType := DbDataType.Float;
    Field.Name := "Значение";
    EtlProvider.FillDefault;
    //Сохраним настройки источника данных
    EtlProvider.Save;
    // Создадим визуальное представление объекта в задаче ETL
    WxProvider := EtlTask.Workspace.CreateRectangle;
    WxETLProvider := New WxETLObject.Create;
    WxETLProvider.ETLObject := EtlProvider;
    WxProvider.Style.TextPosition := WxTextPosition.Bottom;
    WxProvider.Style.PictureMarginTop := -10;
    WxProvider.PinPosition := New GxPointF.Create(5050);
    WxProvider.Extension := WxETLProvider 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;
    EtlProvider: IEtlPlainDataProvider;
    UserProvider: IDtUserProvider;
    WxProvider: IWxRectangle;
    WxETLProvider: WxETLObject = New WxETLObjectClass();
    PointF: GxPointF = New GxPointFClass();
    Fields: IDtFieldDefinitions;
    Field: IDtFieldDefinition;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим задачу ETL
    EtlTask := MB.ItemById["ETL"].Edit() As IEtlTask;
    //Создадим объект «Источник пользователя» в задаче ETL
    EtlProvider := EtlTask.Create(EtlObjectType.eotPlainDataUserProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit();
    EtlProvider.Id := "User_Provider";
    EtlProvider.Name := "Источник пользователя";
    EtlProvider.Description := "Источник пользователя";
    //Настроим источник данных
    UserProvider := EtlProvider.Provider As IDtUserProvider;
    UserProvider.ForeModule := MB.ItemById["MYPROVIDER"].Bind();
    UserProvider.ForeClass := "MyProvider";
    System.Diagnostics.Debug.WriteLine("Пользовательские данные в формате XML" + UserProvider.UserData.xml);
    Fields := UserProvider.Fields;
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtString;
    Field.Name := "Наименование";
    Field := Fields.Add();
    Field.DataType := DbDataType.ddtFloat;
    Field.Name := "Значение";
    EtlProvider.FillDefault();
    //Сохраним настройки источника данных
    EtlProvider.Save();
    // Создадим визуальное представление объекта в задаче ETL
    WxProvider := EtlTask.Workspace.CreateRectangle();
    WxETLProvider.ETLObject := EtlProvider;
    WxProvider.Style.TextPosition := WxTextPosition.wtpBottom;
    WxProvider.Style.PictureMarginTop := -10;
    PointF.Create(5050);
    WxProvider.PinPosition := PointF;
    WxProvider.Extension := WxETLProvider As IWxShapeExtension;
    //Сохраненим изменения
    (EtlTask As IMEtabaseObject).Save();
End Sub;

См. также:

IDtUserProvider