ICubeMetaExporter.AutoPeriod

Синтаксис Fore

AutoPeriod: IRubricatorAutoPeriodDate;

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

AutoPeriod: Prognoz.Platform.Interop.Cubes.IRubricatorAutoPeriodDate;

Описание

Свойство AutoPeriod возвращает параметры периода экспорта временных рядов.

Комментарии

По умолчанию начало/окончание периода экспорта совпадает с началом/окончанием данных.

Если период экспорта задан относительно даты начала или окончания данных, то границы данных определяются исходя из значения свойства ICubeMetaExporter.ExportMode:

Пример Fore

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

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

Sub UserProc;
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    Exporter: ICubeMetaExporter;
    Binding: ICubeMetaExporterBinding;
    ExpPeriod: IRubricatorAutoPeriod;
    ExpPeriodDate: IRubricatorAutoPeriodDate;
Begin
    // Создаем текстовый приемник данных
    TextConsumer := New DtTextConsumer.Create;
    TextConsumer.File := "C:\result.txt";
    TextConsumer.WriteHeader := True;
    // Создаем объект, предназначенный для экспорта
    Exporter := New CubeMetaExporterClass.Create;
    // Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    // Задаем базу данных временных рядов, данные которой будут экспортированы
    Exporter.Rubricator := MB.ItemById("TSDB").Bind As IRubricator;
    // Указываем приемник данных
    Exporter.Consumer := TextConsumer As IDtConsumer;
    // Задаем параметры экспорта атрибута «INDICATOR»
    Binding := Exporter.Bindings.Add;
    Binding.FieldName := "INDICATOR_KEY";
    Binding.DataType := DbDataType.Integer;
    Binding.BindingType := CubeMetaExporterBindingType.Attribute;
    Binding.Attribute := "INDICATOR";
    Binding.KeyField := "KEY";
    // Задаем параметры экспорта дат
    Binding := Exporter.Bindings.Add;
    Binding.FieldName := "Date";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Calendar;
    // Задаем формат экспорта дат
    Binding.DateFormatEx(DimCalendarLevel.Year) := "$Year$";
    Binding.DateFormatEx(DimCalendarLevel.Quarter) := "$Year$Q$Quarter$";
    // Задаем период экспорта данных
    ExpPeriod := Exporter.AutoPeriod;
    ExpPeriodDate := ExpPeriod.Start;
    ExpPeriodDate.AutoDateType := RubricatorAutoDateType.DateStart;
    ExpPeriodDate.Offset := 1;
    ExpPeriodDate := ExpPeriod.End_;
    ExpPeriodDate.AutoDateType := RubricatorAutoDateType.DateEnd;
    ExpPeriodDate.Offset := -1;
    // Задаем экспортируемые уровни календаря
    Exporter.CalendarLevelSet := DimCalendarLevelSet.Year Or DimCalendarLevelSet.Quarter;
    // Выполняем экспорт
    Exporter.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;
    Exporter: ICubeMetaExporter;
    Binding: ICubeMetaExporterBinding;
    ExpPeriod: IRubricatorAutoPeriod;
    ExpPeriodDate: IRubricatorAutoPeriodDate;
Begin
    // Создаем текстовый приемник данных
    TextConsumer := New DtTextConsumer.Create();
    TextConsumer.File := "C:\result.txt";
    TextConsumer.WriteHeader := True;
    // Создаем объект, предназначенный для экспорта
    Exporter := New CubeMetaExporterClass.Create();
    // Получаем текущий репозиторий
    MB := Params.Metabase;
    // Задаем базу данных временных рядов, данные которой будут экспортированы
    Exporter.Rubricator := MB.ItemById["TSDB"].Bind() As IRubricator;
    // Указываем приемник данных
    Exporter.Consumer := TextConsumer As IDtConsumer;
    // Задаем параметры экспорта атрибута «INDICATOR»
    Binding := Exporter.Bindings.Add();
    Binding.FieldName := "INDICATOR_KEY";
    Binding.DataType := DbDataType.ddtInteger;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtAttribute;
    Binding.Attribute := "INDICATOR";
    Binding.KeyField := "KEY";
    // Задаем параметры экспорта дат
    Binding := Exporter.Bindings.Add();
    Binding.FieldName := "Date";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtCalendar;
    // Задаем формат экспорта дат
    Binding.DateFormatEx[DimCalendarLevel.dclYear] := "$Year$";
    Binding.DateFormatEx[DimCalendarLevel.dclQuarter] := "$Year$Q$Quarter$";
    ExpPeriod := Exporter.AutoPeriod;
    ExpPeriodDate := ExpPeriod.Start;
    ExpPeriodDate.AutoDateType := RubricatorAutoDateType.radtDateStart;
    ExpPeriodDate.Offset := 1;
    ExpPeriodDate := ExpPeriod.@End;
    ExpPeriodDate.AutoDateType := RubricatorAutoDateType.radtDateEnd;
    ExpPeriodDate.Offset := -1;
    // Задаем экспортируемые уровни календаря
    Exporter.CalendarLevelSet := DimCalendarLevelSet.dclsYear Or DimCalendarLevelSet.dclsQuarter;
    // Выполняем экспорт
    Exporter.Export();
End Sub;

См. также:

ICubeMetaExporter