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