Добавление в раздел блока быстрых фильтров
Glossary Item Box
Общие сведения
Фильтры предназначены для поиска и фильтрации записей в разделах. В bpm'online предусмотрены быстрый, стандартный и расширенный фильтры, а также группы. Подробнее о фильтрах можно узнать из статьи "Фильтры".
Для добавления блока быстрых фильтров в раздел необходимо в замещающей схеме раздела переопределить метод initFixedFiltersConfig(), в котором создать конфигурационный объект fixedFilterConfig с такими свойствами:
- entitySchema — схема объекта,
- filters — массив добавляемых фильтров.
Затем необходимо присвоить ссылку на созданный конфигурационный объект полю [fixedFiltersConfig] модели представления:
this.set("FixedFilterConfig", fixedFilterConfig);
Описание кейса
В раздел [Договоры] добавить блок быстрых фильтров. Фильтрацию осуществалять по дате начала договора и по ответственному.
Алгоритм реализации кейса
1. В пользовательском пакете создать замещающую страницу раздела [Договоры]
Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ContractSectionV2 (рис. 1).
Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".
Рис. 1. — Свойства замещающей страницы раздела [Договоры]
2. В коллекцию методов модели представления раздела добавить реализацию метода initFixedFiltersConfig()
В методе initFixedFiltersConfig() создать конфигурационный объект с массивом фильтров PeriodFilter и OwnerFilter, присвоить ссылку на данный объект полю fixedFiltersConfig модели представления.
Полностью исходный код схемы модели представления раздела:
define("ContractSectionV2", ["BaseFiltersGenerateModule"], function(BaseFiltersGenerateModule) { return { // Название схемы раздела entitySchemaName: "Contract", // Коллекция методов модели представления раздела. methods: { // Инициализирует фиксированные фильтры. initFixedFiltersConfig: function() { // Создание конфигурационного объекта. var fixedFilterConfig = { // В качестве схемы объекта для фиксированных фильтров указывается схема объекта раздела. entitySchema: this.entitySchema, // Массив фильтров. filters: [ // Фильтр периода. { // Название фильтра. name: "PeriodFilter", // Тип данных — дата. dataValueType: this.Terrasoft.DataValueType.DATE, // Дата начала периода фильрации. startDate: { // Фильтруются данные из колонки [Date]. columnName: "Date", // Значение по умолчанию. defValue: this.Terrasoft.startOfWeek(new Date()) }, // Дата завершения периода фильрации. dueDate: { columnName: "Date", defValue: this.Terrasoft.endOfWeek(new Date()) } }, // Фильтр ответственного. { // Название фильтра. name: "OwnerFilter", // Фильтрация данных из колонки [Owner]. columnName: "Owner", // В качестве значения по умолчанию указывается контакт текущего пользователя. // Значение берется из системной настройки. defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT, // Тип данных — справочник. dataValueType: this.Terrasoft.DataValueType.LOOKUP, // Фильтр. filter: BaseFiltersGenerateModule.OwnerFilter } ] }; // Колонке [FixedFilterConfig] присваивается ссылка на созданный конфигурационный объект. this.set("FixedFilterConfig", fixedFilterConfig); } } }; });
3. Сохранить созданную замещающую схему
После сохранения схемы и перезагрузки системы в разделе [Договоры] появится блок фиксированных фильтров, который позволит отбирать договоры как по дате их начала, так и по ответственному за договор сотруднику (рис. 2).
Рис. 2. — Результат выполнения кейса