Добавление в раздел блока быстрых фильтров
Glossary Item Box
Общие сведения
Фильтры предназначены для поиска и фильтрации записей в разделах. В bpm'online для этих целей предусмотрены быстрый, стандартный и расширенный фильтры, а также группы. Подробнее о фильтрах можно узнать из статьи "Фильтры".
Для добавления блока быстрых фильтров в раздел необходимо в замещающей схеме раздела переопределить метод initFixedFiltersConfig(), в котором создать конфигурационный объект fixedFilterConfig с такими свойствами:
- entitySchema — схема объекта,
- filters — массив добавляемых фильтров.
Затем необходимо присвоить ссылку на созданный конфигурационный объект полю [fixedFiltersConfig] модели представления:
this.set("FixedFilterConfig", fixedFilterConfig);
Описание кейса
В раздел [Договоры] ([Contracts]) добавить блок быстрых фильтров. Фильтрацию осуществлять по дате начала договора и по ответственному.
Алгоритм реализации кейса
1. В пользовательском пакете создать замещающую схему раздела [Договоры] ([Contracts])
Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ContractSectionV2 (рис. 1). Процесс создания замещающей схемы описан в статье "Создание клиентской схемы".
Рис. 1. — Свойства замещающей страницы раздела [Договоры] ([Contracts])
2. В структуру схемы добавить локализуемые строки
Для создания локализуемой строки необходимо, кликнув правой кнопкой по узлу структуры [LocalizableStrings], выбрать команду [Добавить] ([Add]) (рис. 2).
Рис. 2. — Добавление в схему локализуемой строки
Необходимо создать две локализуемые строки со следующими свойствами:
Название (Name) | Значение (Value) |
---|---|
OwnerFilterCaption | Ответственный (Owner) |
PeriodFilterCaption | Период (Period) |
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); } } }; });
4. Сохранить созданную замещающую схему
После сохранения схемы и перезагрузки системы в разделе [Договоры] появится блок фиксированных фильтров, который позволит отбирать договоры как по дате их начала, так и по ответственному сотруднику (рис. 3).
Рис. 3. — Результат выполнения кейса