IPivotDimensionFilterSettings.Condition

Синтаксис Fore

Condition: IExpression;

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

Condition: Prognoz.Platform.Interop.ForeSystem.IExpression;

Описание

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

Комментарии

Для определения, будут ли для измерения использоваться настройки фильтрации, используйте IPivotDimensionFilterSettings.UseCondition.

Для задания выражения в виде символьной строки используйте IExpression.AsString.

Если в формуле присутствует параметр, то перед параметром ставится символ «:». Например, формула имеет вид: AttributeId >= :Parameter, где:

Пример Fore

Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS_FILTER». Источником данных является куб. Первое измерение имеет атрибут с идентификатором «ORDER».

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

Sub UserProc;
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    Dim: IPivotDimension;
    Filter: IPivotDimensionFilterSettings;
    Param: IMetabaseObjectParam;
Begin
    MB := MetabaseClass.Active;
    Express := MB.ItemById("EXPRESS_FILTER").Edit As IEaxAnalyzer;
    // Добавим параметр
    Param := (Express As IMetabaseObject).Params.Add;
    Param.DataType := DbDataType.Integer;
    Param.Name := "ParamExp";
    Param.Id := "ParamExp";
    Param.DefaultValue := 2;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Получим измерение
    Dim := Pivot.Dimensions.Item(0);
    // Получим настройки фильтрации для измерения
    Filter := Dim.Settings.Filter;
    // Зададим выражение, по которому будет осуществляться фильтрация
    Filter.UseCondition := True;
    Filter.Condition.AsString := "Order>:ParamExp";
    // Сохраним изменения
    (Express As IMetabaseObject).Save;
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Pivot;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Pivot: IPivot;
    Dim: IPivotDimension;
    Filter: IPivotDimensionFilterSettings;
    Param: IMetabaseObjectParam;
Begin
    MB := Params.Metabase;
    Express := MB.ItemById["EXPRESS_FILTER"].Edit() As IEaxAnalyzer;
    // Добавим параметр
    Param := (Express As IMetabaseObject).Params.Add();
    Param.DataType := DbDataType.ddtInteger;
    Param.Name := "ParamExp";
    Param.Id := "ParamExp";
    Param.DefaultValue := 2;
    // Получим настройки отображения таблицы данных отчета
    Pivot := Express.Pivot;
    // Получим измерение
    Dim := Pivot.Dimensions.Item[0];
    // Получим настройки фильтрации для измерения
    Filter := Dim.Settings.Filter;
    // Зададим выражение, по которому будет осуществляться фильтрация
    Filter.UseCondition := True;
    Filter.Condition.AsString := "Order>:ParamExp";
    // Сохраним изменения
    (Express As IMetabaseObject).Save();
End Sub;

См. также:

IPivotDimensionFilterSettings