Creatio development guide
Это документация Creatio версии 7.11.0. Мы рекомендуем использовать новую версию документации.

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

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. — Результат выполнения кейса

 

 

 

© Terrasoft 2002-2018.

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

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