IMsAggregationFilter.AggregationParamID

Синтаксис Fore

AggregationParamID: String;

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

AggregationParamID: string;

Описание

Свойство AggregationParamID определяет идентификатор параметра, используемого для задания агрегируемых элементов.

Комментарии

Значения свойств IMsAggregationFilter.AggregationGroup и IMsAggregationFilter.AggregationSelection сбрасываются, если данному свойству присваивается значение.

В зависимости от значения свойства IMsAggregationFilter.UseParamAsGroup параметр рассматривается как отдельный элемент или как группа элементов.

Пример Fore

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

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

Sub UserProc;
Var
    mb: IMetabase;
    RubrDescr: IMetabaseObjectDescriptor;
    Rubr: IRubricator;
    msDescr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Formula: IMsFormula;
    Aggr: IMsCrossDimensionAggregationTransform;
    FiltesList: IMsAggregationFilterList;
    Filter: IMsAggregationFilter;
    Attributes: IMetaAttributes;
    DictDescr: IMetabaseObjectDescriptor;
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;
    FiltesList := Aggr.Filter;
    Attributes := Rubr.Facts.Attributes;
    DictDescr := Attributes.FindById("COUNTRY").ValuesObject;
    Filter := FiltesList.Add(DictDescr.Bind As IDimensionModel);
    Filter.AggregationParamID := "Aggr_Param";
    (Model As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера в модель расширенной агрегации будет добавлен новый фильтр: агрегация будет рассчитана для элементов, определяемых параметром «Aggr_Param».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    RubrDescr: IMetabaseObjectDescriptor;
    Rubr: IRubricator;
    msDescr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Formula: IMsFormula;
    Aggr: IMsCrossDimensionAggregationTransform;
    FiltesList: IMsAggregationFilterList;
    Filter: IMsAggregationFilter;
    Attributes: IMetaAttributes;
    DictDescr: IMetabaseObjectDescriptor;
Begin
    mb := Params.Metabase;
    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;
    FiltesList := Aggr.Filter;
    Attributes := Rubr.Facts.Attributes;
    DictDescr := Attributes.FindById("COUNTRY").ValuesObject;
    Filter := FiltesList.Add(DictDescr.Bind() As IDimensionModel);
    Filter.AggregationParamID := "Aggr_Param";
    (Model As IMetabaseObject).Save();
End Sub;

См. также:

IMsAggregationFilter