Страница записи — элемент интерфейса, который хранит информацию о бизнес-объектах приложения в виде полей, вкладок, деталей и дашбордов. Имя страницы записи соответствует имени объекта системы (например, страница контрагента, страница контакта и т. д.). Назначение страницы записи — работа с записями реестра раздела. Каждый раздел приложения содержит одну или несколько страниц записей.
Каждая страница записи представлена схемой клиентского модуля. Например, страница контакта сконфигурирована в схеме ContactPageV2 пакета UIv2. Функциональность базовой страницы записи реализована в схеме BasePageV2 пакета NUI. Все схемы страниц записи должны наследовать схему BasePageV2.
Виды страницы записи:
- Страница добавления записи — используется для создания записи реестра раздела.
- Страница редактирования записи — используется для редактирования существующей записи реестра раздела.
Контейнеры страницы записи
Элементы пользовательского интерфейса приложения, которые относятся к странице записи, размещены в соответствующих контейнерах. Контейнеры конфигурируются в базовой схеме страницы записи или схеме замещающей страницы записи. Не зависят от вида страницы записи.
Основные контейнеры страницы записи представлены на рисунке ниже.
- Контейнер кнопок действий (ActionButtonsContainer) — содержит кнопки действий страницы записи.
- Контейнер левой части страницы записи (LeftModulesContainer) — содержит основные поля ввода и редактирования данных.
- Контейнер панели действий (ActionDashboardContainer) — содержит панель действий и полосу стадий.
- Контейнер вкладок (TabsContainer) — содержит вкладки с полями ввода и редактирования, которые сгруппированы по признаку, например, месту работы.
Создать страницу записи
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите Добавить —> и выберите вид схемы модели представления.
-
Для создания новой страницы записи выберите Модель представления страницы (Page view model).
-
Для замещения существующей страницы записи выберите Замещающая модель представления (Replacing view model).
-
-
Заполните свойства схемы.
- Код (Code) — название схемы (обязательное свойство). Должно содержать префикс (по умолчанию Usr), указанный в системной настройке Префикс названия объекта (код SchemaNamePrefix).
- Заголовок (Title) — локализуемый заголовок схемы (обязательное свойство).
-
Родительский объект (Parent object) — выберите схему страницы записи, функциональность которой необходимо наследовать.
- Для создания новой страницы записи выберите "BasePageV2".
- Для замещения существующей страницы записи выберите схему страницы записи, которую планируется заместить. Например, чтобы в приложении отображалась пользовательская страница контрагента, выберите схему AccountPageV2 пакета UIv2.
- Реализуйте логику страницы записи.
- На панели инструментов дизайнера модуля нажмите Сохранить (Save).
Настроить страницу записи
Настройка страницы записи выполняется с помощью элементов управления.
Действия для настройки страницы записи, которые позволяет выполнять приложение:
- Добавлять стандартные элементы управления страницы.
- Изменять стандартные элементы управления страницы.
- Добавлять пользовательские элементы управления страницы.
Основные элементы управления страницы:
- Панель действий. Настройка панели действий страницы записи описана в статье Панель действий.
- Поле. Настройка полей страницы записи описана в статье Поле.
- Кнопка. Настройка кнопок страницы записи описана в статье Кнопка.
Добавить пользовательское действие на страницу записи
Creatio предоставляет возможность добавления пользовательского действия в выпадающее меню Действия (Actions) страницы записи, которое реализовано в схеме BasePageV2 базовой страницы записи.
Чтобы добавить пользовательское действие на страницу записи:
- Создайте страницу записи или замещающую страницу записи. Для создания страницы записи выполните шаги 1-3 инструкции по созданию страницы записи.
- Переопределите защищенный виртуальный метод getActions(), который возвращает перечень действий страницы. Перечень действий страницы является экземпляром класса Terrasoft.BaseViewModelCollection. Каждое действие — это модель представления.
- В метод addItem() в качестве параметра передайте сallback-метод getButtonMenuItem(). Метод addItem() добавляет в коллекцию пользовательское действие.
- В callback-метод getButtonMenuItem() в качестве параметра передайте конфигурационный объект. Метод getButtonMenuItem() создает экземпляр модели представления действия.
- Реализуйте конфигурационный объект действия, который позволяет явно задать свойства модели представления действий или использовать базовый механизм привязки.
Шаблон добавления пользовательского действия на страницу записи приведен ниже.
1. Создать схему замещающей модели представления страницы заказа
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите Добавить —> Замещающая модель представления (Add —> Replacing view model).
-
Заполните свойства схемы.
- Код (Code) — "OrderPageV2".
- Заголовок (Title) — "Страница редактирования заказа" ("Order edit page").
- Родительский объект (Parent object) — выберите "OrderPageV2".
-
Добавьте локализуемую строку с текстом пункта меню, который планируется добавить.
- В контекстном меню узла Локализуемые строки (Localizable strings) нажмите кнопку .
-
Заполните свойства локализуемой строки.
- Код (Code) — "InfoActionCaption".
- Значение (Value) — "Показать дату выполнения" ("Show execution date").
- Для добавления локализуемой строки нажмите Добавить (Add).
-
Реализуйте логику работы пункта меню.
Для этого в свойстве methods реализуйте методы:
- isRunning() — проверяет находится ли заказ на стадии Исполнение (In progress) и определяет доступность добавленного пункта.
- showOrderInfo() — метод-обработчик действия. В информационном окне отображает планируемую дату завершения заказа. Действие страницы записи применяется к конкретному объекту, который открыт на странице. Для доступа к значениям полей объекта страницы записи в методе-обработчике действия необходимо использовать методы модели представления get() (получить значение) и set() (установить значение).
- getActions() — переопределенный базовый метод. Возвращает коллекцию действий замещающей страницы.
Исходный код схемы замещающей модели представления страницы заказа представлен ниже.
- На панели инструментов дизайнера нажмите Сохранить (Save).
В результате на страницу заказа, который находится на стадии Исполнение (In progress), добавлено действие Показать дату выполнения (Show execution date).
В режиме вертикального представления реестра пользовательское действие страницы не отображается.
Для корректного отображения действия страницы в схему замещающей модели представления раздела необходимо добавить:
- Локализуемую строку, которая содержит текст пункта меню.
- Метод, который определяет доступность пункта меню.
2. Создать схему замещающей модели представления раздела
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите Добавить —> Замещающая модель представления (Add —> Replacing view model).
-
Заполните свойства схемы.
- Код (Code) — "OrderSectionV2".
- Заголовок (Title) — "Раздел заказа" ("Order section").
- Родительский объект (Parent object) — выберите "OrderSectionV2".
- Добавьте локализуемую строку с текстом пункта меню, который планируется добавить. Для этого выполните шаг 4 алгоритма создания схемы замещающей модели представления страницы заказа.
-
Реализуйте логику работы пункта меню. Для этого в свойстве methods реализуйте метод isRunning(), который проверяет находится ли заказ на стадии Исполнение (In progress) и определяет доступность добавленного пункта.
Исходный код схемы замещающей модели представления страницы раздела представлен ниже.
- На панели инструментов дизайнера нажмите Сохранить (Save).
Результат выполнения примера
Чтобы посмотреть результат выполнения примера:
- Очистите кэш браузера.
- Обновите страницу раздела Заказы (Orders).
В результате выполнения примера на страницу заказа добавлено действие Показать дату выполнения (Show execution date).
Если заказ находится на стадии Исполнение (In progress), то действие Показать дату выполнения (Show execution date) активно.
В результате выбора действия Показать дату выполнения (Show execution date), в информационном окне отображается планируемая дата выполнения заказа.
Если заказ не находится на стадии Исполнение (In progress), то действие Показать дату выполнения (Show execution date) неактивно.
BasePageV2 — базовая схема карточки. Реализована в пакете NUI. Схема является схемой модели представления. Описание свойств схемы содержится в статье Клиентская схема.
Сообщения
Название | Режим | Направление | Описание |
---|---|---|---|
Update |
Адресное | Публикация | Обновляет заголовок страницы. |
Grid |
Адресное | Подписка | Получает идентификатор выбранной в реестре записи при ее изменении. |
Update |
Адресное | Подписка | Изменяет значение параметра модели. |
Update |
Адресное | Подписка | Обновляет заголовок карточки. |
Close |
Адресное | Публикация | Закрывает карточку. |
Open |
Адресное | Подписка | Открывает карточку. |
Open |
Адресное | Публикация | Открывает цепочку карточек. |
Get |
Адресное | Подписка | Возвращает состояние карточки. |
Is |
Адресное | Публикация | Сообщает об изменении карточки. |
Get |
Адресное | Публикация | Получает имя активного представления. |
Get |
Адресное | Подписка | Возвращает информацию об основной сущности мини-карточки. |
Get |
Адресное | Подписка | Возвращает подсказки страницы. |
Get |
Адресное | Подписка | Возвращает информацию колонки. |
Get |
Широковещательное | Публикация | Отправляет информацию колонки сущности при ее изменении. |
Reload |
Адресное | Публикация | Перезагружает строку раздела в соответствии со значением основного столбца. |
Validate |
Адресное | Подписка | Запускает проверку валидности карточки. |
Re |
Адресное | Публикация | Запускает повторную инициализацию панели действий. |
Re |
Адресное | Подписка | Обновляет конфиг панели действий. |
Reload |
Широковещательное | Публикация | Перезагружает элементы дашбордов. |
Reload |
Адресное | Публикация | Перезагружает элементы дашбордов для текущей страницы. |
Can |
Широковещательное | Подписка | Разрешает или запрещает изменение текущего состояния истории. |
Is |
Адресное | Подписка | Возвращает измененную сущность. |
Is |
Адресное | Подписка | Возвращает true, если изменены отфильтрованные колонки. |
Update |
Широковещательное | Двунаправленное | Обновляет значение родительской записи справочника по конфигу. |
Update |
Широковещательное | Двунаправленное | Указывает на необходимость перезагрузки данных при следующем запуске. |
Режимы сообщений представлены перечислением Terrasoft.core.enums.MessageMode, а направления сообщений — перечислением Terrasoft.core.enums.MessageDirectionType. Перечисление MessageMode описано в Библиотеке JS классов. Перечисление MessageDirectionType описано в Библиотеке JS классов.
Атрибуты
Признак видимости контейнера LeftModulesContainer.
Признак видимости контейнера ActionDashboardContainer.
Признак видимости контейнера DcmActionsDashboardContainer.
Пользовательские атрибуты контейнера DcmActionsDashboardContainer.
Флаг видимости заголовка страницы.
Сохранить имя активной вкладки.
Имя представления GridData.
Имя представления AnalyticsData.
Атрибут тела карточки, когда карточки отображена или скрыта.
Атрибут тела карточки, когда основной заголовок отображен или скрыт.
Массив имен колонок заголовка страницы.
Признак недоступности страницы.
Признак возможности кастомизации страницы.
Операции карточки.
Признак необходимости перезагрузки сущности при следующем запуске.
Типы данных атрибутов представлены перечислением Terrasoft.core.enums.DataValueType. Перечисление DataValueType описано в Библиотеке JS классов.
Методы
Обрабатывает нажатие кнопки Отменить (Discard).
{String} [callback] | Функция обратного вызова. |
{Terrasoft. |
Контекст выполнения метода. |
Добавляет представления точек переключения в выпадающий список кнопки Вид (View).
{Terrasoft. |
Пункты выпадающего списка кнопки Вид (View). |
Добавляет пункт Открыть мастер раздела (Open section wizard) в выпадающий список кнопки Вид (View).
{Terrasoft. |
Пункты выпадающего списка кнопки Вид (View). |
Возвращает коллекцию фильтров для запроса.
Инициализировать имена колонок заголовка страницы.
Возвращает значения параметров ViewModel.
{Array} parameters | Имена параметров. |
Задает параметры ViewModel.
{Object} parameters | Значения параметров. |
Возвращает идентификатор модуля страницы справочника.
Обработчик сообщения ReloadCard. Перезагружает данные сущности карточки.
{Object[]} defaultValues | Массив значений по умолчанию. |
Возвращает информацию колонки.
{String} columnName | Имя колонки. |
Возвращает статус видимости вкладок контейнера.
Возвращает статус видимости пунктов выпадающего списка (т. е. отчетов) кнопки Печать (Print).
{String} reportId | Идентификатор отчета. |
Получает представление раздела.
Запустить бизнес-процесс с помощью кнопки запуска глобальных бизнес-процессов.
{Object} tag | Идентификатор схемы бизнес-процесса. |
Запустить бизнес-процесс с параметрами.
{Object} config | Конфигурационный объект. |
Проверяет наличие несохраненных данных. Измените config.result из кэша, если данные изменены, но не сохранены.
{String} cacheKey | Ключ конфигурационного объекта в кэше. |
Отображается сообщение о некорректности, если карточка невалидна.
BaseEntityPage — базовая схема страницы записи. Реализована в пакете NUI. Схема является схемой модели представления. Описание свойств схемы содержится в статье Клиентская схема. Все схемы страниц записей должны наследовать схему BaseEntityPage.
Сообщения
Название | Режим | Направление | Описание |
---|---|---|---|
Update |
Адресное | Публикация | Сообщает детали изменения карточки. |
Card |
Адресное | Двунаправленное | Сообщает об изменении страницы записи. |
Card |
Широковещательное | Двунаправленное | Сообщает об обработке страницы записи. |
Entity |
Широковещательное | Двунаправленное | Сообщает о выполнении инициализации объекта и отправляет информацию об объекте. |
Show |
Адресное | Публикация | Отображает страницу процесса. |
Режимы сообщений представлены перечислением Terrasoft.core.enums.MessageMode, а направления сообщений — перечислением Terrasoft.core.enums.MessageDirectionType. Перечисление MessageMode описано в Библиотеке JS классов. Перечисление MessageDirectionType описано в Библиотеке JS классов.
Атрибуты
Используется для подготовки сущности.
Массив значений по умолчанию для объекта.
Признак доступности элементов модели.
Детали конфигурации.
Типы данных атрибутов представлены перечислением Terrasoft.core.enums.DataValueType. Перечисление DataValueType описано в Библиотеке JS классов.
Методы
Инициализирует страницу записи.
{Function} callback | Функция обратного вызова. |
{Object} scope | Контекст выполнения метода. |
Сохраняет детали в цепочку.
{Function} next | Функция обратного вызова. |
Возвращает идентификатор детали.
{String} detailName | Имя детали. |
Загружает деталь. Если деталь загружена, то повторно ее отображает.
{Object} config | Конфигурация детали. |
Проверяет наличие прав пользователя на редактирование.
{Function} callback | Функция обратного вызова. |
{Object} scope | Контекст выполнения метода. |
Формирует поисковый запрос для отображаемого значения.
{Object} config | Конфигурация детали. |
Заполняет справочные поля.
{String} name | Имя схемы объекта. |
{String} value | Значение объекта. |
{Function} callback | Функция обратного вызова. |
{Object} scope | Контекст выполнения метода. |
Возвращает true, если бизнес-правило может очищать колонку объекта.