setFilter(report: PP.Exp.EaxDocument, filterMetadata: Object, callback: PP.Delegate);
report. Документ экспресс-отчёта, данные которого нужно отфильтровать;
filterMetadata. Данные фильтра, представляющие собой JSON-объект со следующими полями: area - тип фильтрируемого объекта, conditionType - тип условия, elements - фильтририруемые элементы объекта, enabled - признак того, что фильтр активен, keepParent - признак того, что владельцы скрытых строк не будут отображены, range - диапазон фильтрации, suppressEmpty - признак запрета отображения пустых значений, suppressNoNumeric - признак запрета отображения нулевых значений, suppressZeros - признак запрета отображения нечисловых значений, useCondition - признак использования фильтрации по условию.
callback. Возвратная функция.
Метод setFilter устанавливает фильтр по значениям данных экспресс-отчета.
Для выполнения примера необходимо наличие на html-странице компонента ExpressBox с наименованием «expressBox» (см. «Пример создания компонента ExpressBox»). По умолчанию раздел «Фильтровать по значениям таблицы» на вкладке «Данные» боковой панели экспресс-отчета выглядит следующим образом:
Установим фильтр по строкам таблицы с запретом на отображение пустых значений:
// Получим сервис для работы с экспресс-отчетом var eaxMdService = expressBox.getService(); // Получим документ экспресс-отчета var eaxAnalyzer = expressBox.getSource(); // Определим метаданные для фильтра данных var filterMetadata = { area: "Table", conditionType: "None", elements: "Rows", enabled: true, keepParent: false, suppressEmpty: true, suppressNoNumeric: false, suppressZeros: false, useCondition: true }; // Определим аргументы для возвратной функции var args = new PP.Mb.Ui.PropertyChangedEventArgs({ PropertyName: PP.Exp.Ui.ControlType.Filter, Metadata: filterMetadata, TypeUpdateData: [PP.Exp.Ui.ViewTypeUpdate.DataView, PP.Exp.Ui.ViewTypeUpdate.Ribbon] }); // Определим возвратную функцию var onPanelChanged = function (n, t) { var chartView = expressBox.getDataView().getChartView(); t ? (chartView.DataChanged.fire(chartView, t.Args), t.Args.fireCallback(n, t)) : chartView.DataChanged.fire(chartView, t); }; // Установим фильтр по значениям данных таблицы экспресс-отчета eaxMdService.setFilter(eaxAnalyzer, filterMetadata, PP.Delegate(onPanelChanged, eaxMdService, args)); // Обновим боковую панель expressBox.getPropertyBarView().refreshAll();
В результате выполнения примера был установлен фильтр по строкам таблицы с запретом на отображение пустых значений:
См. также: