OutputParamID: String;
OutputParamID: string;
Свойство OutputParamID определяет параметр, в который будет выгружаться отметка фильтра в каждой итерации расчёта.
Для задания отметки используйте свойство IMsAggregationFilter.AggregationSelection.
Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «TSDB», содержащей во внутреннем контейнере моделирования метамодель с идентификатором «METAMODEL». Данная метамодель должна содержать в цепочке расчёта модель расширенной агрегации с идентификатором «MODEL». Модель должна содержать фильтр агрегации.
Добавьте ссылки на системные сборки: «Cubes», «Dal», «Metabase», «Ms».
Sub UserProc;
Var
mb: IMetabase;
Rubr: IRubricator;
ms: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
Params: IMsModelParams;
Param: IMsModelParam;
Model: IMsModel;
Trans: IMsFormulaTransform;
Aggr: IMsCrossDimensionAggregationTransform;
Filter: IMsAggregationFilter;
Begin
mb := MetabaseClass.Active;
Rubr := mb.ItemById("TSDB").Bind As IRubricator;
ms := Rubr.ModelSpace;
MetaModel := mb.ItemByIdNamespace("METAMODEL", ms.Key).Edit As IMsMetaModel;
Params := MetaModel.Params;
Params.Clear;
Param := Params.Add;
Param.DataType := DbDataType.String;
Param.DefaultValue := "";
Param.Name := "Selection";
Param.ID := "Selection";
(MetaModel As IMetabaseObject).Save;
Model := mb.ItemByIdNamespace("MODEL", ms.Key).Edit As IMsModel;
Trans := Model.Transform;
Aggr := Trans.FormulaItem(0).Method As IMsCrossDimensionAggregationTransform;
Filter := Aggr.Filter.Item(0);
Filter.OutputParamID := "Selection";
(Model As IMetabaseObject).Save;
End Sub UserProc;
Результат выполнения примера: в метамодель добавлен строковый параметр «Selection», в который будет выгружаться отметка фильтра в каждой итерации расчёта.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Rubr: IRubricator;
ms: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
MParams: IMsModelParams;
Param: IMsModelParam;
Model: IMsModel;
Trans: IMsFormulaTransform;
Aggr: IMsCrossDimensionAggregationTransform;
Filter: IMsAggregationFilter;
Begin
mb := Params.Metabase;
Rubr := mb.ItemById["TSDB"].Bind() As IRubricator;
ms := Rubr.ModelSpace;
MetaModel := mb.ItemByIdNamespace["METAMODEL", ms.Key].Edit() As IMsMetaModel;
MParams := MetaModel.Params;
MParams.Clear();
Param := MParams.Add();
Param.DataType := DbDataType.ddtString;
Param.DefaultValue := "";
Param.Name := "Selection";
Param.ID := "Selection";
(MetaModel As IMetabaseObject).Save();
Model := mb.ItemByIdNamespace["MODEL", ms.Key].Edit() As IMsModel;
Trans := Model.Transform;
Aggr := Trans.FormulaItem[0].Method As IMsCrossDimensionAggregationTransform;
Filter := Aggr.Filter.Item[0];
Filter.OutputParamID := "Selection";
(Model As IMetabaseObject).Save();
End Sub;
См. также: