Следующий запрос
В разделе приводится описание настройки последовательного просмотра карточек объектов, которые связаны друг с другом по какому-либо признаку (без перехода в список объектов), на примере настройки перехода к следующему по дате регистрации запросу в статусе "Зарегистрирован" (registered). После нажатия кнопки "Следующий" в карточке запроса на экране будет отображаться карточка запроса, следующего за текущим по дате регистрации.
Подготовительные настройки системы
-
Создайте и включите пользовательское действие по событию, см. Настройка пользовательского действия по событию.
-
"К следующему новому запросу", объект "Запрос" (serviceCall), событие "[Пользовательское событие]", действие "Скрипт", синхронное.
Скрипт:
//Назначение: /** * Открывает карточку следующего запроса (статус зарегистрировано) после текущего. */
//Категория: Действия по событию типа скрипт
//ПАРАМЕТРЫ------------------------------------------------------------
//ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ------------------------------
//ОСНОВНОЙ БЛОК----------------------------------------------------
def SQL = "select min(sc.id) from serviceCall sc where sc.state = 'registered' and sc.creationDate > :SCdate";
def query = api.db.query(SQL);
query.set(['SCdate':subject.creationDate]);
def id = query.list().first();
if(id)
{
result.goToUrl(api.web.open('serviceCall$'+id));
}
else
{
utils.throwReadableException("Текущий запрос является последним", [] as String[], "Текущий запрос является последним", [] as String[]);
}
-
-
В классе "Запрос" (serviceCall) создайте пользовательский элемент управления на панели действий в карточке запроса, см. Добавление пользовательской кнопки.
- "Следующий", внешний вид "кнопка с подписью", действие "К следующему новому запросу" — данный элемент управления будет отображаться в интерфейсе оператора и использоваться для перехода с следующему запросу.
- В классе "Запрос" (serviceCall) настройте право на выполнение пользовательского действия, используя маркеры прав в группе прав "Пользовательские события".