AggregationParamID: String;
AggregationParamID: string;
Свойство AggregationParamID определяет идентификатор параметра, используемого для задания агрегируемых элементов.
Значения свойств IMsAggregationFilter.AggregationGroup и IMsAggregationFilter.AggregationSelection сбрасываются, если данному свойству присваивается значение.
В зависимости от значения свойства IMsAggregationFilter.UseParamAsGroup параметр рассматривается как отдельный элемент или как группа элементов.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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.
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;
См. также: