UseTransformationFilter: Boolean;
UseTransformationFilter: boolean;
Свойство UseTransformationFilter определяет, будет ли использоваться фильтрация данных по формуле.
Возможные значения:
True. Фильтрация данных по формуле будет использоваться;
False. По умолчанию. Фильтрация данных по формуле использоваться не будет.
Для использования свойства необходимо, чтобы свойство IPivotFilterSettings.Enabled принимало значение True.
Если в формуле присутствует параметр, то перед параметром ставится символ «:». Например, формула имеет вид: AttributeId >= :Parameter, где:
AttributeId. Идентификатор атрибута справочника;
:ParametrId. Идентификатор параметра отчета.
Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS_FILTER». Источником данных является куб.
Добавьте ссылки на системные сборки: Dal, Express, Metabase, Pivot.
Sub UserProc;
Var
MB: IMetabase;
Express: IEaxAnalyzer;
Dim: IEaxDataAreaSlice;
Pivot: IPivot;
Cond: IEaxDataAreaTransformation;
Filter: IPivotFilterSettings;
Param: IMetabaseObjectParam;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим экспресс-отчет
Express := MB.ItemById("EXPRESS_FILTER").Edit As IEaxAnalyzer;
// Добавим параметр в отчет
Param := (Param As IMetabaseObject).Params.Add;
Param.DataType := DbDataType.Integer;
Param.Name := "ParamExp";
Param.DefaultValue := 2;
// Получим настройки фильтрации таблицы
Pivot := Express.Pivot;
Filter := Pivot.Filter As IPivotFilterSettings;
// Зададим выражение для фильтрации
Filter.UseTransformationFilter := True;
Dim := Express.DataArea.Slices.Item(0);
Cond := Dim.FilterTransformations.Item(0);
Cond.Expression.AsString := "Order>:ParamExp";
// Сохраним изменения
(Express As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера в экспресс-отчете будет создан новый параметр. Для таблицы будет задано выражение с использованием данного параметра.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Express: IEaxAnalyzer;
Dim: IEaxDataAreaSlice;
Pivot: IPivot;
Cond: IEaxDataAreaTransformation;
Filter: IPivotFilterSettings;
Param: IMetabaseObjectParam;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим экспресс-отчет
Express := MB.ItemById["EXPRESS_FILTER"].Edit() As IEaxAnalyzer;
// Добавим параметр в отчет
Param := (Param As IMetabaseObject).Params.Add();
Param.DataType := DbDataType.ddtInteger;
Param.Name := "ParamExp";
Param.DefaultValue := 2;
// Получим настройки фильтрации таблицы
Pivot := Express.Pivot;
Filter := Pivot.Filter As IPivotFilterSettings;
// Зададим выражение для фильтрации
Filter.UseTransformationFilter := True;
Dim := Express.DataArea.Slices.Item[0];
Cond := Dim.FilterTransformations.Item[0];
Cond.Expression.AsString := "Order>:ParamExp";
// Сохраним изменения
(Express As IMetabaseObject).Save();
End Sub;
См. также: