DateFormatEx(Level: DimCalendarLevel): String;
Level. Уровень календаря, для которого задается формат.
Свойство DateFormatEx определяет формат дат для нескольких уровней календарного измерения.
Для задания формата дат для нескольких уровней последовательно указывайте их с помощью данного свойства. Например, код для задания формата годовой и квартальной динамики:
Sub UserProc;
Var
Binding: ICubeMetaExporterBinding;
Begin
…
Binding.CalendarDateFormatEx(DimCalendarLevel.Year) := "$Year$";
Binding.CalendarDateFormatEx(DimCalendarLevel.Quarter) := "$Year$Q$Quarter$";
…
End Sub UserProc;
Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «TSBD». Данная база данных временных рядов должна иметь годовую и квартальную динамики и пользовательский атрибут временных рядов с идентификатором «INDICATOR».
Добавьте ссылки на системные сборки: Cubes, Dal, Dimensions, Dt, Metabase.
Sub UserProc;
Var
TextConsumer: IDtTextConsumer;
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
RubDescr: IMetabaseObjectDescriptor;
ObjDesc: IMetabaseObjectDescriptor;
Obj: IMetabaseObject;
ExportRequestDef: IExportRequestDefinition;
RequestParams: IExportRequestParams;
Rubr: IRubricator;
Binding: ICubeMetaExporterBinding;
ExportRequestInst: IExportRequestInstance;
Begin
// Получаем текущий репозиторий
MB := MetabaseClass.Active;
// Создаем текстовый приемник данных
TextConsumer := New DtTextConsumer.Create;
TextConsumer.File := "C:\result.txt";
TextConsumer.FormatType := DtTextFormatType.Delimited;
TextConsumer.DelimitedColumnDelimiter := ";";
TextConsumer.DelimitedTextQualifier := """";
TextConsumer.Encoding := "WIN";
TextConsumer.WriteHeader := True;
TextConsumer.Metabase := MB;
// Получаем базу данных временных рядов
RubDescr := MB.ItemById("TSDB");
// Создаем объект экспорта
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPORTREQUEST;
CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", RubDescr.Key);
CrInfo.Permanent := True;
CrInfo.Parent := RubDescr;
ObjDesc := MB.CreateObject(CrInfo);
Obj := ObjDesc.Edit;
// Задаем параметры экспорта
ExportRequestDef := Obj As IExportRequestDefinition;
RequestParams := ExportRequestDef.Exporter;
// Указываем базу данных временных рядов, данные которой будут экспортированы
Rubr := RubDescr.Bind As IRubricator;
RequestParams.Rubricator := Rubr;
// Указываем приемник данных
RequestParams.Consumer := TextConsumer As IDtConsumer;
// Указыавем, что приемник должен быть очищен перед экспортом
RequestParams.ClearBeforeExport := True;
// Задаем параметры экспорта атрибута «INDICATOR»
Binding := RequestParams.Bindings.Add;
Binding.FieldName := "IndicatorKey";
Binding.DataType := DbDataType.Integer;
Binding.BindingType := CubeMetaExporterBindingType.Attribute;
Binding.Attribute := "INDICATOR";
Binding.KeyField := "KEY";
// Задаем параметры экспорта дат
Binding := RequestParams.Bindings.Add;
Binding.FieldName := "Date";
Binding.DataType := DbDataType.String;
Binding.BindingType := CubeMetaExporterBindingType.Calendar;
Binding.ValueFieldName := "Value";
Binding.ValueDataType := DbDataType.Float;
// Задаем формат экспорта дат
Binding.DateFormatEx(DimCalendarLevel.Year) := "$Year$";
Binding.DateFormatEx(DimCalendarLevel.Quarter) := "$Year$Q$Quarter$";
// Задаем экспортируемые уровни календаря
RequestParams.CalendarLevelSet := DimCalendarLevelSet.Year Or DimCalendarLevelSet.Quarter;
// Создаем вычисляемое поле для экспорта
Binding := RequestParams.Bindings.Add;
Binding.FieldName := "CalcField";
Binding.DataType := DbDataType.Float;
Binding.BindingType := CubeMetaExporterBindingType.Calculated;
Binding.Expression := "Value * 1.25";
// Сохраняем объект экспорта
Obj.Save;
// Выполняем экспорт
ExportRequestInst := ObjDesc.OpenWithParam(Null) As IExportRequestInstance;
ExportRequestInst.Export;
End Sub UserProc;
В результате выполнения примера в файл «C:\result.txt» будут выгружены годовые и квартальные значения и значения атрибута «INDICATOR» из базы данных временных рядов. Также будет создано вычисляемое поле «CalcField», содержащее годовые и квартальные значения, увеличенные в 1,25 раза.
См. также: