IEtlPlainDataFixedUserProvider.Template

Синтаксис Fore

Template: IEtlTemplate;

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

Template: Prognoz.Platform.Interop.KeFore.IEtlTemplate;

Описание

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

Комментарии

Шаблон используется для задания внешнего вида алгоритма пользователя на рабочем поле.

Пример Fore

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

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    FixedUserProvider: IEtlPlainDataFixedUserProvider;
    FixedUserConsumer: IEtlPlainDataFixedUserConsumer;
    Paramss: ISharedParams;
    Templates: IEtlTemplates;
    Template: IEtlTemplate;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим задачу ETL
    MObj := MB.ItemById("ETL_TASK").Edit;
    EtlTask := MObj As IEtlTask;
    //Создадим объект "Источник пользователя"
    FixedUserProvider := EtlTask.Create(EtlObjectType.PlainDataFixedUserProvider) As IEtlPlainDataFixedUserProvider;
    // Будем использовать шаблон
    Paramss := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    Templates := Paramss.EtlTemplates(ETLTemplateType.Provider);
    Template := Templates.Add;
    Template.Module := mb.ItemById("USERSCLASSFORETL");
    Template.Class_ := "User";
    Template.Id := "TemplateProv";
    Template.Name := "TemplNameP";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save;
    // Установим режим для источника
    FixedUserProvider.ExMode := True;
    // Зададим наименование источника
    FixedUserProvider.Name := "Источник пользователя";
    // Визуальное представление источника в задаче
    CreateWXP(FixedUserProvider, EtlTask);
    //Создадим объект "Приемник пользователя"
    FixedUserConsumer := EtlTask.Create(EtlObjectType.PlainDataFixedUserConsumer) As IEtlPlainDataFixedUserConsumer;
    // Будем использовать шаблон
    Paramss := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    Templates := Paramss.EtlTemplates(ETLTemplateType.Consumer);
    Template := Templates.Add;
    Template.Module := mb.ItemById("USERSCLASSFORETL");
    Template.Class_ := "User";
    Template.Id := "TemplateCons";
    Template.Name := "TemplNameC";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save;
    // Установим монопольный режим для приемника
    FixedUserConsumer.ExMode := True;
    // Зададим наименование приемника
    FixedUserConsumer.Name := "Приемник пользователя";
    // Визуальное представление приемника в задаче
    CreateWXC(FixedUserConsumer, EtlTask);
    // Сохраним изменения
    Mobj.Save;
End Sub UserProc;

// Создание визуального объекта источника данных
Sub CreateWXP(CopyObj: IEtlPlainDataProvider; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject;
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle;
    WxDataTrans.Id := CopyObj.Id;
    WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.Bottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := New GxPointF.Create(2020);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXP;

// Создание визуального объекта приемника данных
Sub CreateWXC(CopyObj: IEtlPlainDataConsumer; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject;
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle;
    WxDataTrans.Id := CopyObj.Id;
    WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.Bottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := New GxPointF.Create(4040);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXC;

После выполнения примера будет созданы источник и приёмник данных на основе шаблона.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.KeFore;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    FixedUserProvider: IEtlPlainDataFixedUserProvider;
    FixedUserConsumer: IEtlPlainDataFixedUserConsumer;
    Paramss: ISharedParams;
    Templates: IEtlTemplates;
    Template: IEtlTemplate;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим задачу ETL
    MObj := MB.ItemById["ETL_TASK"].Edit();
    EtlTask := MObj As IEtlTask;
    //Создадим объект "Источник пользователя"
    FixedUserProvider := EtlTask.Create(EtlObjectType.eotPlainDataFixedUserProvider) As IEtlPlainDataFixedUserProvider;
    // Будем использовать шаблон
    Paramss := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
    Templates := Paramss.EtlTemplates[ETLTemplateType.etlttProvider];
    Template := Templates.Add();
    Template.Module := MB.ItemById["USERSCLASSFORETL"];
    Template.@Class := "User";
    Template.Id := "TemplateProv";
    Template.Name := "TemplNameP";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save();
    // Установим режим для источника
    FixedUserProvider.ExMode := True;
    // Зададим наименование источника
    FixedUserProvider.Name := "Источник пользователя";
    // Визуальное представление источника в задаче
    CreateWXP(FixedUserProvider, EtlTask);
    //Создадим объект "Приемник пользователя"
    FixedUserConsumer := EtlTask.Create(EtlObjectType.eotPlainDataFixedUserConsumer) As IEtlPlainDataFixedUserConsumer;
    // Будем использовать шаблон
    Paramss := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
    Templates := Paramss.EtlTemplates[ETLTemplateType.etlttConsumer];
    Template := Templates.Add();
    Template.Module := MB.ItemById["USERSCLASSFORETL"];
    Template.@Class := "User";
    Template.Id := "TemplateCons";
    Template.Name := "TemplNameC";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save();
    // Установим монопольный режим для приемника
    FixedUserConsumer.ExMode := True;
    // Зададим наименование приемника
    FixedUserConsumer.Name := "Приемник пользователя";
    // Визуальное представление приемника в задаче
    CreateWXC(FixedUserConsumer, EtlTask);
    // Сохраним изменения
    Mobj.Save();
End Sub;

// Создание визуального объекта источника данных
Public Shared Sub CreateWXP(CopyObj: IEtlPlainDataProvider; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject = New WxEtlObjectClass();
    PointF: GxPointF = New GxPointFClass();
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle();
    WxDataTrans.Id := CopyObj.Id;
    //WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.wtpBottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := PointF;
    PointF.Create(2020);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXP;

// Создание визуального объекта приемника данных
Public Shared Sub CreateWXC(CopyObj: IEtlPlainDataConsumer; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject = New WxEtlObjectClass();
    PointF: GxPointF = New GxPointFClass();
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle();
    WxDataTrans.Id := CopyObj.Id;
    //WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.wtpBottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := PointF;
    PointF.Create(2020);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXC;

См. также:

IEtlPlainDataFixedUserProvider