IMsCumulativeTransform.CumulativeMethod

Синтаксис

CumulativeMethod: MsCumulativeMethodType;

Описание

Свойство CumulativeMethod определяет метод накопления.

Пример

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

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

Sub UserProc;
Var
    ActiveMetabase: IMetabase;
    ModelCont, Descript: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    TransformVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    Slice: IMsFormulaTransformSlice;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    CumTr: IMsCumulativeTransform;
    trInfo: IMsFormulaTermInfo;
    Term: IMsFormulaTerm;
    Obj_x1: IMetabaseObject;
    ModelVar_x1: IMsVariable;
    Calcul: IMsMethodCalculation;
Begin
    ActiveMetabase := MetabaseClass.Active;
    ModelCont := ActiveMetabase.ItemById("CONT_MODEL");
    Descript := ActiveMetabase.ItemByIdNamespace("MODEL_CUMULATIVE", ModelCont.Key);
    Obj := Descript.Edit;
    Model := Obj As IMsModel;
    Model.CalculationPeriod := MsCalculationPeriod.Both;
    Descript := ActiveMetabase.ItemByIdNamespace("VAR_CUMULATIVE", ModelCont.Key);
    Obj_x1 := Descript.Bind;
    ModelVar_x1 := Obj_x1 As IMsVariable;
    Transform := Model.Transform;
    TransformVar := Transform.Outputs.Item(0);
    Transform.Outputs.Clear;
    TransformVar := Transform.Outputs.Add(ModelVar_x1 As IVariableStub);
    Coord := Transform.CreateCoord(TransformVar);
    Slice := TransformVar.Slices.Add(Null);
    Selector := Transform.CreateSelector;
    Selector.Slice := Slice;
    Formula := Transform.Transform(Selector);
    Formula.Kind := MsFormulaKind.Cumulative;
    CumTr := Formula.Method As IMsCumulativeTransform;
    Transform.Inputs.Clear;
    TransformVar := Transform.Inputs.Add(ModelVar_x1 As IVariableStub);
    TransformVar := Transform.Inputs.Item(0);
    Slice := TransformVar.Slices.Add(Null);
    trInfo := Transform.CreateTermInfo;
    trInfo.Slice := Slice;
    CumTr.CumulativeMethod := MsCumulativeMethodType.Max;
    Term := CumTr.Result;
    Debug.WriteLine(Term.TermToText);
    CumTr.Input := trInfo;
    calcul.Period.IdentificationStartDate := DateTime.ComposeDay(19900101);
    calcul.Period.IdentificationEndDate := DateTime.ComposeDay(20081231);
    calcul.Period.ForecastStartDate := DateTime.ComposeDay(20090101);
    calcul.Period.ForecastEndDate := DateTime.ComposeDay(20101231);
    Calcul := Model.CreateCalculation As IMsMethodCalculation;
    CumTr.Execute(Calcul, Coord);
    Obj.Save;
End Sub UserProc;

После выполнения примера для модели будут установлены новые параметры, затем она будет рассчитана. В окно консоли будет выведено наименование результирующего ряда.

См. также:

IMsCumulativeTransform