Документация по разработке bpm’online

Как добавить в раздел блок фиксированных фильтров

Glossary Item Box

В bpm'online кроме существует возможность добавить в раздел блок фиксированных фильтров (рис. 1).

Рис. 1. — Блок фиксированных фильтров в разделе [Активности]

Блок фиксированных фильтров состоит из двух основных элементов:

  • фильтр по дате;
  • фильтр по ответственному.

Фильтр по дате позволяет отбирать записи раздела, находящиеся в определенном промежутке дат. Кроме того, в нем предусмотрена возможность делать выборку по определенному периоду: сегодня, завтра, вчера, текущая неделя, следующая неделя, прошлая неделя, текущий месяц, следующий месяц, прошлый месяц.

Фильтр по ответственному позволяет делать выборку как по одному ответственному, так и по нескольким одновременно.

Для добавления блока фиксированных фильтров в раздел необходимо в замещающей схеме раздела переопределить метод initFixedFiltersConfig, в котором создать конфигурационный объект fixedFilterConfig с такими свойствами:

  • entitySchema — схема объекта,
  • filters — массив фильтров, которые добавляются.

Затем необходимо присвоить ссылку на созданный конфигурационный объект полю [fixedFiltersConfig] модели представления:

this.set("FixedFilterConfig", fixedFilterConfig);

Пример добавления блока фиксированных фильтров в раздел [Заказы]

1. В пользовательском пакете создать замещающую страницу раздела [Заказы]

Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать [OrderSectionV2]  (рис. 2).

Процесс создания замещающей страницы описан в статье "Как создать замещающую схему страницы или раздела".

Рис. 2. — Свойства замещающей страницы раздела [Заказы]

2. В коллекцию методов модели представления раздела добавить реализацию метода initFixedFiltersConfig

В методе initFixedFiltersConfig создать конфигурационный объект с массивом фильтров [PeriodFilter] и [Owner], присвоить ссылку на данный объект полю [fixedFiltersConfig] модели представления.

Ниже приведен исходный код замещающей схемы:

define("OrderSectionV2", ["BaseFiltersGenerateModule"],
    function (BaseFiltersGenerateModule) {
        return {
            // Название схемы раздела
            entitySchemaName: "Order",
            // Коллекция методов модели представления раздела.
            methods: {
                /**
                * Инициализирует фиксированные фильтры.
                * @protected
                */
                initFixedFiltersConfig: function () {
                    // Создание конфигурационного объекта.
                    var fixedFilterConfig = {
                        // В качестве схемы объекта для фиксированных фильтров указывается схема объекта раздела.
                        entitySchema: this.entitySchema,
                        // Массив фильтров.
                        filters: [
                            // Фильтр периода.
                            {
                                // Название фильтра.
                                name: "PeriodFilter",
                                // Подпись фильтра.
                                caption: this.get("Resources.Strings.PeriodFilterCaption"),
                                // Тип данных — дата.
                                dataValueType: this.Terrasoft.DataValueType.DATE,
                                // Фильтруются данные из колонки [Date].
                                startDate: {
                                    columnName: "Date",
                                    defValue: this.Terrasoft.startOfWeek(new Date())
                                },
                                dueDate: {
                                    columnName: "Date",
                                    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);
                }
            }
        };
    });

3. Сохранить созданную замещающую схему

После сохранения схемы и перезагрузки системы в разделе [Заказы] появится блок фиксированных фильтров, который позволит отбирать заказы как по дате их создания, так и по ответственному за заказ сотруднику (рис. 3).

Рис. 3. — Демонстрация результата

 

© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?