Установка для поля значения по умолчанию
Glossary Item Box
Общие сведения
В bpm'online реализована возможность определения значений по умолчанию для элементов управления страницы редактирования.
Установить значение по умолчанию можно двумя способами:
1. Задать на уровне колонок бизнес-объектов. При создании нового объекта некоторые поля страницы должны заполняться определенными, известными изначально значениями. В таких случаях для колонок объекта, которые соответствуют этим полям, необходимо в дизайнере объектов указать эти значения в качестве значений по умолчанию.
Виды значений по умолчанию:
Название | Описание |
---|---|
Установить константу | Строка, число, значение из справочника, логическое значение. |
Установить из системной настройки | Полный список настроек доступен из конфигурации в разделе [Системные настройки], и он может быть дополнен пользовательской системной настройкой. |
Установить из системной переменной |
Системные переменные bpm'online — это глобальные переменные, хранящие информацию о настройках системы. В отличие от системных настроек, значения которых могут отличаться для разных пользователей, значения системных переменных являются одинаковыми для всех пользователей. Полный перечень системных переменных реализован на уровне ядра и не может быть изменен пользователем:
|
Не устанавливать значение по умолчанию |
2. Задать в исходном коде страницы редактирования. В некоторых случаях невозможно установить значение по умолчанию с помощью свойств колонки объекта. Например, это могут быть вычисляемые значения, которые рассчитываются по значениям других колонок объекта и т.д.. В таком случае, задать значение по умолчанию можно только программными средствами.
Исходный код
Пакет с реализацией примеров можно скачать по ссылке.
Пример установки для поля значения по умолчанию через свойства колонки объекта.
Описание примера
При создании новой активности по умолчанию должен быть установлен признак [Отображать в расписании].
Алгоритм реализации примера
1. Создать в пользовательском пакете замещающий объект [Активность]
Создайте замещающий объект [Активность] ([Activity]) (рис. 1). Процесс создания замещающего объекта описан в статье "Создание схемы объекта".
Рис. 1. — Свойства замещающего объекта [Активность] ([Activity])
2. Установить для колонки [Отображать в расписании] ([Show in calendar]) значение по умолчанию
Выберите из списка унаследованных колонок объекта колонку [Отображать в расписании] ([Show in calendar]) и отредактируйте ее свойство [Значение по умолчанию] ([Default value]) как показано на рисунке 2. Для реализации примера выберите в качестве значения по умолчанию константное значение.
Рис. 2. — Установка значения по умолчанию для колонки [Отображать в расписании] ([Show in calendar])
После публикации схемы и обновления страницы приложения с очисткой кэша на странице редактирования активности при создании новой активности поле [Отображать в расписании] ([Show in calendar]) будет автоматически отмечено (рис. 3).
Рис. 3. Демонстрация установки значения по умолчанию
Пример установки значения по умолчанию в исходном коде страницы редактирования
Описание примера
При создании нового проекта значение поле [Крайний срок] на странице редактирования проекта по умолчанию должно принимать значение поля [Начало] плюс 10 дней.
Алгоритм реализации примера
1. В пользовательском пакете создать замещающую страницу редактирования проекта
Создайте замещающий клиентский модуль, в котором в качестве родительского объекта укажите схему [Страница редактирования проекта] ([Project edit page], ProjectPageV2) (рис. 4). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".
Рис. 4. — Свойства замещающей страницы редактирования
2. В коллекцию методов модели представления страницы добавить реализацию методов
- setDeadline() — метод-обработчик. Рассчитывает значение поля [Крайний срок] ([Deadline]).
- onEntityInitialized() — переопределенный базовый виртуальный метод. Срабатывает после окончания инициализации схемы объекта. В него добавьте вызов метода-обработчика для установки значения поля [Крайний срок] ([Deadline]) в момент открытия страницы редактирования.
Исходный код замещающей схемы:
define("ProjectPageV2", [], function() { return { // Название схемы объекта страницы редактирования. entitySchemaName: "Project", methods: { // Переопределение базового метода Terrasoft.BasePageV2.onEntityInitialized(). // Cрабатывает после окончания инициализации схемы объекта страницы редактирования. onEntityInitialized: function() { // Вызывается родительская реализация метода. this.callParent(arguments); // Вызов метода-обработчика, который рассчитывает значение колонки [Крайний срок]. this.setDeadline(); }, // Метод-обработчик. Рассчитывает значение колонки [Крайний срок]. setDeadline: function() { // Значение колонки [Крайний срок]. var deadline = this.get("Deadline"); // Установлен ли режим новой записи? var newmode = this.isNewMode(); // Если значение не установлено и режим новой записи установлен. if (!deadline && newmode) { // Получение значения колонки [Начало] var newDate = new Date(this.get("StartDate")); newDate.setDate(newDate.getDate() + 10); // Установка значения колонки [Крайний срок]. this.set("Deadline", newDate); } } } }; });
После сохранения схемы и обновления страницы приложения при создании нового проекта в поле [Крайний срок] ([Deadline ]) будет установлена дата, равная дате в поле [Начало] ([Start ]) плюс 10 дней (рис. 5).
Рис. 5. — Демонстрация установки вычисляемого значения по умолчанию