IMsAggregationFilter.OutputParamID

Синтаксис Fore

OutputParamID: String;

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

OutputParamID: string;

Описание

Свойство OutputParamID определяет параметр, в который будет выгружаться отметка фильтра в каждой итерации расчёта.

Комментарии

Для задания отметки используйте свойство IMsAggregationFilter.AggregationSelection.

Пример Fore

Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «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.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;

См. также:

IMsAggregationFilter