IMsAggregationFilter.InvertSelection

Синтаксис

InvertSelection: Boolean;

Описание

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

Комментарии

Допустимые значения:

Свойство используется только для моделей вида «Агрегация (расширенная)».

Пример

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором CONT_MODEL, содержащего задачу моделирования с идентификатором PROBLEM. В задаче моделирования должна содержаться метамодель, в цепочке расчёта которой содержится модель с идентификатором MODEL. Для модели задайте вид «Агрегация (расширенная)» на панели «Параметры» и настройте фильтр на панели «Спецификация».

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

Sub UserProc;
    
MB: IMetabase;
    RubrDescr, Descr: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Formula: IMsFormula;
    FilterList: IMsAggregationFilterList;
    Filter: IMsAggregationFilter;
    Problem: IMsProblem;
    Settings: IMsProblemCalculationSettings;
    Calc: IMsProblemCalculation;
    Aggr: IMsCrossDimensionAggregationTransform;
    Method: IMsMethod;
Begin
    MB := MetabaseClass.Active;
    
// Получим контейнер моделирования
    RubrDescr := MB.ItemById("CONT_MODEL");
    Descr := RubrDescr.EditDescriptor;
    
// Получим модель
    Model := MB.ItemByIdNamespace("MODEL", Descr.Key).Edit As IMsModel;
    
// Получим задачу моделирования
    Problem := MB.ItemByIdNamespace("PROBLEM", Descr.Key).EditTemporary As IMsProblem;
    
// Получим параметры модели
    Transform := Model.Transform;
    
// Получим метод расчёта модели
    Formula := Transform.FormulaItem(0);
    
// Получим параметры метода расчёта модели
    Method := Formula.Method;
    Aggr := Method 
As IMsCrossDimensionAggregationTransform;
    
// Получим фильтры агрегации
    FilterList := Aggr.Filter;
    
// Выполним инверсию отметки для первого фильтра
    Filter := FilterList.Item(0);
    Filter.InvertSelection := 
True;
    
// Сохраним внесенные изменения
    (Model As IMetabaseObject).Save;
    
// Рассчитаем задачу моделирования
    Settings := Problem.CreateCalculationSettings;
    Calc := Problem.Calculate(Settings);
    
Calc.Run;
End Sub UserProc;

В результате выполнения примера будет рассчитана задача моделирования, содержащаяся в ней метамодель и модель. При расчёте модели выполняется агрегация по заданному фильтру. Для первого измерения фильтра агрегация выполняется по инвертированной отметке.

См. также:

IMsAggregationFilter