IExportRequestInstance.Export

Синтаксис

Export;

Описание

Метод Export осуществляет экспорт показателей.

Пример

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

Sub Main;

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 := "OBJ_EXPORTREQUEST";

CrInfo.Permanent := True;

CrInfo.Parent := MB.ItemById("OBJ_RUBRICATOR").Bind;

ObjDesc := MB.CreateObject(CrInfo);

Obj := ObjDesc.Edit;

ExportRequestDef := Obj As IExportRequestDefinition;

 

// Параметры экспорта

Params := ExportRequestDef.Exporter;

Params.Rubricator := MB.ItemById("OBJ_RUBRICATOR").Bind As IRubricator;

Params.Consumer := TextConsumer As IDtConsumer;

Binding := Params.Bindings.Add;

Binding.FieldName := "CountryNm";

Binding.DataType := DbDataType.String;

Binding.BindingType := CubeMetaExporterBindingType.Attribute;

Binding.Attribute := "COUNTRIES";

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;

Filter := Params.Filters.Add;

Filter.Attribute := "COUNTRIES";

FilterValues := New Variant[2];

FilterValues[0] := 512;

FilterValues[1] := 914;

Filter.ValuesList := FilterValues;

Obj.Save;

 

// Экспорт

ExportRequestInst := (ExportRequestDef As IMetabaseObjectDescriptor).OpenWithParam(Null) As IExportRequestInstance;

ExportRequestInst.Export;

End Sub Main;

После выполнения примера будет осуществлен экспорт показателей в текстовый файл «C:\result.txt». Экспортированы будут лишь данные с 2000 по 2008 годы для тех показателей, значение атрибута «COUNTRIES» у которых равняется «512» или «914».

См. также:

IExportRequestInstance