ICubeMetaExporterBinding.DataDomain

Синтаксис Fore

DataDomain: DbDataDomain;

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

DataDomain: Prognoz.Platform.Interop.Dal.DbDataDomain;

Описание

Свойство DataDomain определяет тип данных для хранения в атрибуте многобайтовой информации.

Комментарии

Для атрибута типа «Длинный текст» данное свойство должно иметь значение DbDataDomain.Memo, а свойство IMetaAttribute.DataType - значение DbDataType.String.

При работе с атрибутом «Длинный текст» учитывайте следующие ограничения:

Пример Fore

Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «TSDB_MEMO», содержащей следующие атрибуты временных рядов:

Добавьте ссылки на системные сборки: Cubes, Dal, Dimensions, Dt, Metabase, Rds.

Sub UserProc;
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RubDescr: IMetabaseObjectDescriptor;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    Params: IExportRequestParams;
    Rubr: IRubricator;
    Binding: ICubeMetaExporterBinding;
    FactsDict: IMetaDictionary;
    Attr: IMetaAttribute;
    ExportRequestInst: IExportRequestInstance;
Begin
    // Настраиваем приемник данных для экспорта в текстовый формат
    TextConsumer := New DtTextConsumer.Create;
    TextConsumer.File := "C:\result.txt";
    TextConsumer.FormatType := DtTextFormatType.Delimited;
    TextConsumer.DelimitedColumnDelimiter := ";";
    TextConsumer.DelimitedTextQualifier := """";
    TextConsumer.Encoding := "WIN";
    TextConsumer.WriteHeader := True;
    // Получаем текущий репозиторий и создаем объект экспорта
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPORTREQUEST;
    RubDescr := MB.ItemById("TSDB_MEMO");
    CrInfo.Parent := RubDescr;
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", RubDescr.Key);
    CrInfo.Permanent := True;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit;
    // Получаем параметры экспорта
    ExportRequestDef := Obj As IExportRequestDefinition;
    Params := ExportRequestDef.Exporter;
    // Указываем источник данных
    Rubr := RubDescr.Bind As IRubricator;
    Params.Rubricator := Rubr;
    // Указываем приёмник данных
    Params.Consumer := TextConsumer As IDtConsumer;
    // Задаем привязку для атрибута CITY
    Binding := Params.Bindings.Add;
    Binding.FieldName := "CityKey";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Attribute;
    FactsDict := Rubr.Facts;
    Attr := FactsDict.Attributes.FindById("CITY");
    Binding.AttributeKey := Attr.Key;
    Binding.KeyField := "KEY";
    // Задаем привязку для календаря
    Binding := Params.Bindings.Add;
    Binding.FieldName := "Year";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Calendar;
    Binding.DateFormat := "$Year$";
    Binding.ValueFieldName := "Value";
    Binding.ValueDataType := DbDataType.Float;
    // Задаем привязку для атрибута A_COMMENT, имеющего тип «Длинный текст»
    Binding := Params.Bindings.Add;
    Binding.FieldName := "Comment";
    Binding.DataType := DbDataType.String;
    Binding.DataDomain := DbDataDomain.Memo;
    Binding.BindingType := CubeMetaExporterBindingType.ValueAttribute;
    Binding.Attribute := "A_COMMENT";
    // Задаем календарную динамику экспортируемых данных
    Params.CalendarLevel := DimCalendarLevel.Year;
    // Сохраняем изменения
    Obj.Save;
    // Выполняем экспорт
    ExportRequestInst := ObjDesc.OpenWithParam(NullAs IExportRequestInstance;
    ExportRequestInst.Export;
End Sub UserProc;

В результате выполнения примера данные из базы данных временных рядов будут экспортированы в файл «C:\result.txt».

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RubDescr: IMetabaseObjectDescriptor;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    ExpParams: IExportRequestParams;
    Rubr: IRubricator;
    Binding: ICubeMetaExporterBinding;
    FactsDict: IMetaDictionary;
    Attr: IMetaAttribute;
    ExportRequestInst: IExportRequestInstance;
Begin
    // Настраиваем приемник данных для экспорта в текстовый формат
    TextConsumer := New DtTextConsumer.Create();
    TextConsumer.File := "C:\result.txt";
    TextConsumer.FormatType := DtTextFormatType.tftDelimited;
    TextConsumer.DelimitedColumnDelimiter := ";";
    TextConsumer.DelimitedTextQualifier := """";
    TextConsumer.Encoding := "WIN";
    TextConsumer.WriteHeader := True;
    // Получаем текущий репозиторий и создаем объект экспорта
    MB := Params.Metabase;
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPORTREQUEST As integer;
    RubDescr := MB.ItemById["TSDB_MEMO"];
    CrInfo.Parent := RubDescr;
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", RubDescr.Key);
    CrInfo.Permanent := True;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit();
    // Получаем параметры экспорта
    ExportRequestDef := Obj As IExportRequestDefinition;
    ExpParams := ExportRequestDef.Exporter;
    // Указываем источник данных
    Rubr := RubDescr.Bind() As IRubricator;
    ExpParams.Rubricator := Rubr;
    // Указываем приёмник данных
    ExpParams.Consumer := TextConsumer As IDtConsumer;
    // Задаем привязку для атрибута CITY
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "CityKey";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtAttribute;
    FactsDict := Rubr.Facts;
    Attr := FactsDict.Attributes.FindById("CITY");
    Binding.AttributeKey := Attr.Key;
    Binding.KeyField := "KEY";
    // Задаем привязку для календаря
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "Year";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtCalendar;
    Binding.DateFormat := "$Year$";
    Binding.ValueFieldName := "Value";
    Binding.ValueDataType := DbDataType.ddtFloat;
    // Задаем привязку для атрибута A_COMMENT, имеющего тип «Длинный текст»
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "Comment";
    Binding.DataType := DbDataType.ddtString;
    Binding.DataDomain := DbDataDomain.dddMemo;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtValueAttribute;
    Binding.Attribute := "A_COMMENT";
    // Задаем календарную динамику экспортируемых данных
    ExpParams.CalendarLevel := DimCalendarLevel.dclYear;
    // Сохраняем изменения
    Obj.Save();
    // Выполняем экспорт
    ExportRequestInst := ObjDesc.OpenWithParam(NullAs IExportRequestInstance;
    ExportRequestInst.Export();
End Sub;

См. также:

ICubeMetaExporterBinding