IMsDetermAggregationTransform.AggregationGroupParamID

Синтаксис

AggregationGroupParamID: String;

Описание

Свойство AggregationGroupParamID определяет идентификатор параметра, используемого для расчета агрегации.

Комментарии

Если задано значение данного свойства, то свойство IMsDetermAggregationTransform.AggregationGroup игнорируется.

Пример

В данном примере будет рассмотрено задание настроек агрегации: группа агрегации будет определяться через параметр метамодели, содержащей модель.

Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «FC», в которой заданы группы агрегации. Данная база содержит уникальные атрибуты, ссылающиеся на справочники «DICT_CTR» и «DICT_IND». Контейнер моделирования базы данных временных рядов должен содержать метамодель с идентификатором «M_MODEL». Данная метамодель должна содержать параметр «PARAM_GROUP», ссылающийся на справочник «DICT_CTR». Цепочка расчета метамодели должна содержать модель с идентификатором «AGGR_MODEL». Метод расчёта модели - агрегация (базовая), рассчитываемая как детерминированное уравнение.

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

Sub UserProc;
Var
    mb: IMetabase;
    Obj: IMetabaseObject;
    Ruby: IRubricator;
    cmKey: Integer;
    rStub: IVariableStub;
    RepoKey: Integer;
    DictInst: IDimInstance;
    ParamDim: IMsParametrizedDimension;
    Transform: IMsFormulaTransform;
    Model: IMsModel;
    MetaModel: IMsMetaModel;
    TransformVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    DetermAggregation: IMsDetermAggregationTransform;
    Slice: IMsFormulaTransformSlice;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    Sel: IDimSelectionSet;
    Factory: IDimSelectionSetFactory;
Begin
    mb := MetabaseClass.Active;
    Ruby := mb.ItemById("FC").Bind As IRubricator;
    cmKey := Ruby.ModelSpace.Key;
    Obj := mb.ItemByIdNamespace("AGGR_MODEL", cmKey).Edit;
    Model := Obj As IMsModel;
    Transform := Model.Transform;
    Transform.Rubricator := Null;
    Transform.Outputs.Clear;
    rStub := mb.ItemById("FC").Bind As IVariableStub;
    TransformVar := Transform.Outputs.Add(rStub);
    Coord := Transform.CreateCoord(TransformVar);
    Factory := New DimSelectionSetFactory.Create As IDimSelectionSetFactory;
    Sel := Factory.CreateDimSelectionSet;
    RepoKey := (Ruby.Database As IMetabaseObject).Key;
    DictInst := mb.ItemByIdNamespace("DICT_CTR", RepoKey).Open(NullAs IDimInstance;
    Sel.Add(DictInst);
    Sel.Item(0).DeselectAll;
    DictInst := mb.ItemByIdNamespace("DICT_IND", RepoKey).Open(NullAs IDimInstance;
    Sel.Add(DictInst);
    Sel.Item(1).DeselectAll;
    Sel.Item(1).SelectElement(0False);
    Slice := TransformVar.Slices.Add(Sel);
    ParamDim := Slice.ParametrizedDimensions.Item(0);
    MetaModel := mb.ItemByIdNamespace("M_MODEL", cmKey).Bind As IMsMetaModel;
    ParamDim.Parameter := (MetaModel).Params.FindById("PARAM_GROUP");
    Selector := Transform.CreateSelector;
    Selector.Slice := Slice;
    Formula := Transform.Transform(Selector);
    Formula.Kind := MsFormulaKind.DetermAggregation;
    DetermAggregation := Formula.Method As IMsDetermAggregationTransform;
    Formula.Level := DimCalendarLevel.Year;
    DetermAggregation.AggregationExpression := "{PARAM_GROUP}|BCA";
    DetermAggregation.AgregationMethod := MsAgregationMethodType.Max;
    DetermAggregation.AggregationGroupParamID := "PARAM_GROUP";
    Obj.Save;
End Sub UserProc;

После выполнения примера группа агрегации будет определяться через параметр «PARAM_GROUP» у метамодели, содержащей модель «AGGR_MODEL».

См. также:

IMsDetermAggregationTransform