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

Множественное добавление записей на деталь

Glossary Item Box

Общие сведения

Обычно деталь позволяет добавлять только одну запись. С помощью миксина LookupMultiAddMixin можно осуществлять множественное добавление записей на деталь.

Миксин — это класс-примесь, предназначенный для расширения функциональности других классов. Более подробно миксины описаны в статье "Миксины. Свойство mixins".

Миксин LookupMultiAddMixin предназначен для расширения схем деталей. Он позволяет расширить действие добавления записи на деталь, предоставляя пользователю возможность выбирать несколько записей из справочника одновременно.

Последовательность добавления функциональности множественного выбора записей на деталь:

1. Создать замещающую схему детали.

2. Использовать методы миксина с замещением базовых методов детали.

Описание примера

Реализовать возможность множественного добавления записей на деталь [Контакты] на странице редактирования записей раздела [Продажи].

Исходный код

Пакет с реализацией примера можно скачать по ссылке.

Алгоритм выполнения примера

1. Создать замещающую схему модели представления детали

В пакете разработки создайте замещающую схему детали (рис. 1). Процесс создания замещающей схемы подробно описан в статье "Создание клиентской схемы".

Рис. 1. — Добавление замещающего клиентского модуля

Для созданной замещающей схемы детали в качестве родительского объекта укажите схему OpportunityContactDetailV2 (рис. 2).

Рис. 2. — Свойства замещающего клиентского модуля

2. Использовать методы миксина с замещением базовых методов детали

Для использования миксина LookupMultiAddMixin в схеме, добавьте его в свойстве mixins и инициализируйте в переопределенном методе init() схемы детали. Подробная информация о переопределении метода init() доступна в статье "Принципы модульной разработки в Creatio".

Для реализации необходимой функциональности переопределите методы отображения кнопки добавления getAddRecordButtonVisible(), сохранения страницы детали onCardSaved() и добавления записи на деталь addRecord().

В методах сохранения страницы детали и добавления записи используется метод вызова справочного окна для множественного выбора openLookupWithMultiSelect() и связанный с ним метод getMultiSelectLookupConfig(), выполняющий конфигурирование справочного окна. Описание и основные параметры этих методов приведены в таблице 1.

Табл. 1. — Методы вызова и конфигурирования справочного окна

Метод Описание
openLookupWithMultiSelect(isNeedCheckOfNew) Открывает окно справочника с множественным выбором. Параметр isNeedCheckOfNew {bool} указывает на необходимость выполнять проверку является ли запись новой.
getMultiSelectLookupConfig()

Возвращает объект конфигурации для справочного окна. Свойства объекта:

rootEntitySchemaName — корневая схема объекта;

rootColumnName — связующая колонка, указывающая на запись корневой схемы;

relatedEntitySchemaName — связанная схема;

relatedColumnName — колонка, указывающая на запись связанной схемы.

В этом примере справочное окно будет использовать данные из таблицы OpportunityContact, используя колонки Opportunity и Contact.

Исходный код схемы детали:

define("OpportunityContactDetailV2", ["LookupMultiAddMixin"], function() {
    return {
        mixins: {
            // Подключение миксина к схеме.
            LookupMultiAddMixin: "Terrasoft.LookupMultiAddMixin"
        },
        methods: {
            // Переопределение базового метода инициализации схемы.
            init: function() {
                this.callParent(arguments);
                //Инициализация миксина.
                this.mixins.LookupMultiAddMixin.init.call(this);
            },
            // Переопределение базового метода отображения кнопки добавления.
            getAddRecordButtonVisible: function() {
                //Отображать кнопку добавления если деталь развернута, даже если для детали не реализована страница редактирования.
                return this.getToolsVisible();
            },
            // Переопределение базового метода.
            // Обработчик события сохранения страницы редактирования детали.
            onCardSaved: function() {
                // Открывает справочное окно с множественным выбором записей.
                this.openLookupWithMultiSelect();
            },
            // Переопределение базового метода добавления записи на деталь.
            addRecord: function() {
                // Открывает справочное окно с множественным выбором записей.
                this.openLookupWithMultiSelect(true);
            },
            // Метод, возвращающий конфигурационный объект для справочного окна.
            getMultiSelectLookupConfig: function() {
                return {
                    // Корневая схема — [Продажа].
                    rootEntitySchemaName: "Opportunity",
                    // Колонка корневой схемы.
                    rootColumnName: "Opportunity",
                    // Связанная схема — [Контакт].
                    relatedEntitySchemaName: "Contact",
                    // Колонка связанной схемы.
                    relatedColumnName: "Contact"
                };
            }
        }
    };
});

После сохранения схемы и обновления страницы приложения у пользователя по нажатию на кнопку добавления записи на деталь (рис. 3) появится возможность выбрать не одну, а несколько записей из справочника (рис. 4). После подтверждения все выбранные записи будут добавлены на деталь [Контакты] ([Contacts]) на странице редактирования записей раздела [Продажи] ([Opportunities]) (рис.5).

Рис. 3. — Добавление новых записей на деталь

Рис. 4. — Выбор необходимых записей из справочника

Рис. 5. — Результат выполнения кейса. Все выбранные записи добавлены на деталь

© Terrasoft 2002-2020.

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

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