IDtObjectDataFormat.UsePredefinedDateFormats

Синтаксис Fore

UsePredefinedDateFormats: Boolean;

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

UsePredefinedDateFormats: Boolean;

Описание

Свойство UsePredefinedDateFormats определяет использование предопределения формата даты поля, согласно заданному формату через свойство IDtFieldDefinition.DateFormat.

Комментарии

Возможные значения свойства:

Пример

Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ELT». Также имеется текстовый файл «Data_Import.txt», располагающийся в папке «C:\Temp\Data_Import».

Содержимое файла

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

Sub UserProc;
Var
    MB: IMetabase;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    TextProvider: IDtTextProvider;
    DateFormat: IDtObjectDataFormat;
    WxProvider: IWxRectangle;
    WxETLProvider: IWxETLObject;
Begin
    MB := MetabaseClass.Active;
    EtlTask := MB.ItemById(
"ETL").Edit As IEtlTask;
    
//Создание объекта "Импорт из текста"
    EtlProvider := EtlTask.Create(EtlObjectType.PlainDataTextProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit;
    EtlProvider.Id := 
"Data_Import";
    EtlProvider.Name := 
"Data_Import";
    EtlProvider.Description := 
"Data_Import";
    
//Настройка источника данных
    TextProvider := EtlProvider.Provider As IDtTextProvider;
    TextProvider.File := 
"C:\Temp\Data_Import.txt";
    DateFormat := TextProvider.StringDataFormat;
    DateFormat.UsePredefinedDateFormats := 
True;
    TextProvider.FieldsFromFile;
    TextProvider.Fields.item(
0).DateFormat := "$Year$A$Quarter$";
    TextProvider.Fields.item(
0).DataType := dbdatatype.Date;
    TextProvider.Fields.item(
1).DateFormat := "$Year$M$Quarter$";
    TextProvider.Fields.item(
1).DataType := dbdatatype.Date;
    TextProvider.Fields.item(
2).DateFormat := "$Year$$Month$$Day$";
    TextProvider.Fields.item(
2).DataType := dbdatatype.Date;
    EtlProvider.FillDefault;
    
//Сохраняем источник
    EtlProvider.Save;
    
//Создание визуального объекта
    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;
    
//Сохранение задачи Etl
    (EtlTask As IMetabaseObject).Save;
End Sub UserProc;

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;
Imports Prognoz.Platform.Interop.Forms;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    TextProvider: IDtTextProvider;
    DateFormat: IDtObjectDataFormat;
    WxProvider: IWxRectangle;
    WxETLProvider: IWxETLObject;
    OutPoint: GxPointF = 
New GxPointFClass();
Begin
    MB := Params.Metabase;
    EtlTask := MB.ItemById[
"ETL"].Edit() As IEtlTask;
    
//Создание объекта "Импорт из текста"
    EtlProvider := EtlTask.Create(EtlObjectType.eotPlainDataTextProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit();
    EtlProvider.Id := 
"Data_Import";
    EtlProvider.Name := 
"Data_Import";
    EtlProvider.Description := 
"Data_Import";
    
//Настройка источника данных
    TextProvider := EtlProvider.Provider As IDtTextProvider;
    TextProvider.File := 
"C:\Temp\Data_Import.txt";
    DateFormat := TextProvider.StringDataFormat;
    DateFormat.UsePredefinedDateFormats := 
True;
    
//DateFormat.DateFormat := "$Day$M$Month$Q$Year$";
    TextProvider.FieldsFromFile();
    TextProvider.Fields.item[
0].DateFormat := "$Year$A$Quarter$";
    TextProvider.Fields.item[
0].DataType := dbdatatype.ddtDate;
    TextProvider.Fields.item[
1].DateFormat := "$Year$M$Quarter$";
    TextProvider.Fields.item[
1].DataType := dbdatatype.ddtDate;
    TextProvider.Fields.item[
2].DateFormat := "$Year$Month$Day$";
    TextProvider.Fields.item[
2].DataType := dbdatatype.ddtDate;
    EtlProvider.FillDefault();
    
//Сохраняем источник
    EtlProvider.Save();
    
//Создание визуального объекта
    WxProvider := EtlTask.Workspace.CreateRectangle();
    WxETLProvider := 
New WxETLObject.Create();
    WxETLProvider.ETLObject := EtlProvider;
    WxProvider.Style.TextPosition := WxTextPosition.wtpBottom;
    WxProvider.Style.PictureMarginTop := -
10;
    OutPoint := WxProvider.PinPosition;
    OutPoint.Create(
5050);
    WxProvider.Extension := WxETLProvider 
As IWxShapeExtension;
    
//Сохранение задачи Etl
    (EtlTask As IMetabaseObject).Save();
End Sub;

При выполнении примера в задаче ETL будет создан новый источник данных - Импорт из текста. Источник будет связан с указанным текстовым файлом, для разбора дат в различных полях будут предопределены различные форматы. В результате импорта будут получены следующие значения:

См. также:

IDtObjectDataFormat