IExportRequestParams.Bindings

Синтаксис Fore

Bindings: ICubeMetaExporterBindings;

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

Bindings: Prognoz.Platform.Interop.Cubes.ICubeMetaExporterBindings;

Описание

Свойство Bindings определяет привязки атрибутов базы данных временных рядов с полями приемника данных.

Комментарии

Для определения экспортируемой базы данных временных рядов используйте свойство IExportRequestParams.Rubricator.

Пример Fore

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

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

Sub UserProc;
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    Params: IExportRequestParams;
    Binding: ICubeMetaExporterBinding;
    Filter: ICubeMetaExporterFilter;
    FilterValues: Array;
    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;
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST");
    CrInfo.Permanent := True;
    CrInfo.Parent := MB.ItemById("TSDB").Bind;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit;
    ExportRequestDef := Obj As IExportRequestDefinition;
// Параметры экспорта
    Params := ExportRequestDef.Exporter;
    Params.Rubricator := MB.ItemById("TSDB").Bind As IRubricator;
    Params.Consumer := TextConsumer As IDtConsumer;
    Params.ClearBeforeExport := True;
// Привязка атрибута COUNTRY
    Binding := Params.Bindings.Add;
    Binding.FieldName := "CountryNm";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Attribute;
    Binding.Attribute := "COUNTRY";
    Binding.KeyField := "NAME";
// Привязка календаря
    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;
// Параметры фильтрации
    Params.ByColumns := True;
    Params.PeriodStart := DateTime.Parse("01.01.2000");
    Params.PeriodEnd := DateTime.Parse("01.01.2008");
    Params.CalendarLevel := DimCalendarLevel.Year;
    Params.RowCount := 1000;
    Filter := Params.Filters.Add;
    Filter.Attribute := "COUNTRY";
    FilterValues := New Variant[2];
    FilterValues[0] := 512;
    FilterValues[1] := 914;
    Filter.ValuesList := FilterValues;
    Obj.Save;
// Экспорт
    ExportRequestInst := (ExportRequestDef As IMetabaseObjectDescriptor).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;

Public Shared Sub Main(Params: StartParams);
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    ExpParams: IExportRequestParams;
    Binding: ICubeMetaExporterBinding;
    Filter: ICubeMetaExporterFilter;
    FilterValues: Array;
    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;
    CrInfo.Parent := MB.ItemById["TSDB"].Bind();
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", CrInfo.Parent.Key);
    CrInfo.Permanent := True;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit();
    ExportRequestDef := Obj As IExportRequestDefinition;
// Параметры экспорта
    ExpParams := ExportRequestDef.Exporter;
    ExpParams.Rubricator := MB.ItemById["TSDB"].Bind() As IRubricator;
    ExpParams.Consumer := TextConsumer As IDtConsumer;
    ExpParams.ClearBeforeExport := True;
// Привязка атрибута COUNTRY
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "CountryNm";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtAttribute;
    Binding.Attribute := "COUNTRY";
    Binding.KeyField := "NAME";
// Привязка календаря
    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;
// Параметры фильтрации
    ExpParams.ByColumns := True;
    ExpParams.PeriodStart := DateTime.Parse("01.01.2000");
    ExpParams.PeriodEnd := DateTime.Parse("01.01.2008");
    ExpParams.CalendarLevel := DimCalendarLevel.dclYear;
    ExpParams.RowCount := 1000;
    Filter := ExpParams.Filters.Add();
    Filter.Attribute := "COUNTRY";
    FilterValues := New object[2];
    FilterValues[0] := 512;
    FilterValues[1] := 914;
    Filter.ValuesList := FilterValues;
    Obj.Save();
// Экспорт
    ExportRequestInst := (ExportRequestDef As IMetabaseObjectDescriptor).OpenWithParam(NullAs IExportRequestInstance;
    ExportRequestInst.Export();
End Sub;

См. также:

IExportRequestParams