FormatType: DtTextFormatType;
Свойство FormatType определяет формат структуры файла, в соответствии с которым будет производиться экспорт данных. По умолчанию используется формат с разделителями.
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором "Etl".
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
EtlTask: IEtlTask;
EtlConsumer: IEtlPlainDataConsumer;
TextConsumer: IDtTextConsumer;
Fields: IDtFieldDefinitions;
Field: IDtTextConsumerField;
WxConsumer: IWxRectangle;
WxETLConsumer: IWxETLObject;
Begin
MB := MetabaseClass.Active;
//Поиск задачи ETL. Объект репозитория с идентификатором "ETL"
MObj := MB.ItemById("Etl").Edit;
EtlTask := MObj As IEtlTask;
//Начало создания источника
//Создание объекта "Экспорт в текст"
EtlConsumer := EtlTask.Create(EtlObjectType.PlainDataTextConsumer) As IEtlPlainDataConsumer;
EtlConsumer := EtlConsumer.Edit;
EtlConsumer.Id := "Text_Consumer";
EtlConsumer.Name := "Экспорт в текст";
EtlConsumer.Description := "Экспорт в текст";
//Настройка источника данных
TextConsumer := EtlConsumer.Consumer As IDtTextConsumer;
TextConsumer.File := "c:\Data_Out.txt";
TextConsumer.FormatType := DtTextFormatType.Fixed;
TextConsumer.RowDelimiter := #13 + #10; //Возврат каретки + перевод строки
TextConsumer.WriteHeader := True;
//Настройка полей фиксированной длины
Fields := TextConsumer.Fields;
Field := Fields.Add As IDtTextConsumerField;
Field.Name := "Field0";
Field.DataType := DbDataType.String;
Field.FixedLength := 15;
Field := Fields.Add As IDtTextConsumerField;
Field.Name := "Field1";
Field.DataType := DbDataType.String;
Field.FixedLength := 15;
Field := Fields.Add As IDtTextConsumerField;
Field.Name := "Field2";
Field.DataType := DbDataType.String;
Field.FixedLength := 15;
EtlConsumer.FillDefault;
//Сохраняем источник
EtlConsumer.Save;
//Конец создания источника
//Начало создания визуального объекта
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(50, 50);
WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
//Конец создания визуального объекта
//Сохранение задачи Etl
MObj.Save;
End Sub Main;
После выполнения примера будет создан новый приемник данных, осуществляющий экспорт данных в текстовый файл. При экспорте в качестве разделителя строк будет использоваться сочетание Возврат каретки+Перевод строки, структура полей будет фиксированной. На одно поле будет отводиться 15 позиций. В первую строку файла будут экспортироваться наименования полей. Если файл не существует - он будет создан.
См. также: