IMsCrossDimensionAggregationOptions.RebaseDate

Синтаксис

RebaseDate: Variant;

Описание

Свойство RebaseDate определяет базовый период для расчета агрегации.

Комментарии

Для установки уровня расчета функции Rebase в RebaseDate передайте массив, первым элементом которого будет динамика расчета, вторым дата. Если уровень расчета Rebase должен совпадать с уровнем расчета модели, то в RebaseDate передается дата (допускается использование даты в строковом представлении).

Пример

Если в RebaseDate передается дата в строковом представлении, то использование свойства приведено в примере для IMsCrossDimensionAggregationOptions.LevelValue.

Если в RebaseDate передается массив, то пример приведен ниже.

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

Sub UserProc;
Var
    mb: IMetabase;
    RubrDescr: IMetabaseObjectDescriptor;
    Rubr: IRubricator;
    msDescr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Formula: IMsFormula;
    Aggr: IMsCrossDimensionAggregationTransform;
    strsGen: IMsFormulaStringGenerator;
    Options: IMsCrossDimensionAggregationOptions;
    RebaseDate: Array[2Of Variant;
Begin
    mb := MetabaseClass.Active;
    RubrDescr := mb.ItemById("FC");
    Rubr := RubrDescr.Bind As IRubricator;
    msDescr := Rubr.ModelSpace;
    Model := mb.ItemByIdNamespace("MODEL_AGGR", msDescr.Key).Edit As IMsModel;
    Transform := Model.Transform;
    Formula := Transform.FormulaItem(0);
    Aggr := Formula.Method As IMsCrossDimensionAggregationTransform;
    Aggr.AgregationMethod := MsAgregationMethodType.Sum;
    Options := Aggr.Options;
    Options.Threshold := 0;
    Options.Rebase := True;
    RebaseDate[0] := DimCalendarLevel.Year;
    RebaseDate[1] := DateTime.ComposeDay(200211);
    Options.RebaseDate := RebaseDate;
    Options.UseFillGaps := False;
    strsGen := Formula.CreateStringGenerator;
    strsGen.ShowFullVariableNames := True;
    Debug.WriteLine("Выражение агрегации: " + strsGen.Execute);
    (Model As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера будет изменены следующие параметры модели:

В окно консоли будет выведено выражение, по которому рассчитывается агрегация. Например:

Выражение агрегации: World for publication|BCA[t] = Rebase(Сумма((BCA[t]) * (BCI[t])) / Сумма(BCI[t]), 01.01.2002)

См. также:

IMsCrossDimensionAggregationOptions