Перейти к основному содержимому
Версия: 7.0

Оператор SHOW

Оператор SHOW создаёт действие, открывающее форму в интерактивном представлении.

Синтаксис

SHOW [formId =] target
[formActionOptions]
[{initActionOperator}]

Где target — одна из двух форм. Именная форма открывает ранее объявленную форму:

formName [OBJECTS objName1 = expr1 [NULL], ..., objNameN = exprN [NULL]]

а классовая форма открывает форму выбора или редактирования класса:

classFormType className = expr [NULL]

А formActionOptions — произвольная комбинация следующих опций в любом порядке:

FILTERS filterExpr1, ..., filterExprM
syncType
windowType
manageSessionType
sessionScopeType
cancelType
READONLY
CHECK

Где windowType — одно из:

FLOAT
DOCKED
EMBEDDED
POPUP
IN containerName

Описание

Оператор SHOW создаёт действие, которое открывает указанную форму. Блок OBJECTS задаёт начальные значения объектам формы (в классовой форме та же роль у единственного = expr, относящегося к единственному объекту формы, который неявно имеет имя object и может быть использован под этим именем внутри выражений FILTERS). Внутри formActionOptions опция FILTERS прикрепляет дополнительные фильтры, вычисляемые из контекста вызова; остальные опции управляют поведением открытия — потоком, расположением, сессией, видимостью системных действий и другими модификаторами. Завершающий блок {initActionOperator} выполняется один раз при открытии формы.

Параметры

  • formId

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

  • formName

    Имя формы. Составной идентификатор.

  • classFormType

    Тип открывающейся классовой формы. Задаётся одним из ключевых слов:

    • LIST — форма выбора (списка)
    • EDIT — форма редактирования
  • className

    Имя пользовательского класса, форму выбора или редактирования которого надо открыть. Составной идентификатор.

  • objName1, ..., objNameN

    Имена объектов формы, для которых задаются начальные значения. Простые идентификаторы.

  • expr, expr1, ..., exprN

    Выражения, значения которых используются как начальные значения соответствующих объектов формы.

  • NULL после начального значения

    Ключевое слово. Разрешает передаче начального значения быть NULL. По умолчанию, если какое-либо передаваемое значение равно NULL, действие пропускается, и управление передаётся следующему действию.

  • initActionOperator

    Контекстно-зависимый оператор-действие, выполняющийся при открытии формы, после обработчиков EVENTS ON INIT формы.

Опции

  • filterExpr1, ..., filterExprM

    Непустой список выражений, задающих дополнительные фильтры, применяемые к форме. Каждое выражение может использовать как параметры контекста вызова, так и собственные объекты формы.

  • syncType

    Режим управления потоком. Одно из:

    • WAIT — синхронный (ожидать закрытия формы)
    • NOWAIT — асинхронный (продолжить сразу после открытия)

    По умолчанию платформа выбирает WAIT, если вызов сам сделан из модальной формы, если в этом же вызове далее потребуются дополнительные обращения к сессии или если выбранный тип окна сам модальный (FLOAT, EMBEDDED, POPUP); иначе — NOWAIT.

  • windowType

    Расположение формы: FLOAT показывает форму как плавающее окно, DOCKED — как закладку в системном окне форм, EMBEDDED и POPUP — как встроенные редакторы, IN помещает форму внутрь containerNameкомпонента дизайна, квалифицированного формой (имя формы, за которым следует путь к компоненту внутри дизайна этой формы), который должен быть контейнером. По умолчанию в синхронном режиме используется FLOAT, в асинхронном — DOCKED.

  • manageSessionType

    Переопределяет, считается ли открываемая форма собственником сессии. Одно из:

    • MANAGESESSION — принудительно собственник
    • NOMANAGESESSION — принудительно не собственник

    По умолчанию форма становится собственником сессии только если на момент открытия у сессии не было другого собственника.

  • sessionScopeType

    Сессия, в которой открывается форма. Одно из:

    • NEWSESSION — новая сессия верхнего уровня
    • NESTEDSESSION — новая вложенная сессия
    • THISSESSION — текущая сессия (по умолчанию)
  • cancelType

    Переопределяет, отображать ли системное действие Отменить (System.formCancel[]) на форме. Одно из:

    • CANCEL — принудительно показать
    • NOCANCEL — принудительно скрыть

    По умолчанию оно отображается, если форма является собственником сессии и содержит действия, способные изменить эту сессию.

  • READONLY

    Ключевое слово. Если указано, форма открывается в режиме только для чтения.

  • CHECK

    Ключевое слово. Если указано, при нажатии пользователем системного действия OK (System.formOk[]) платформа сначала валидирует ожидающие применения изменения сессии (выполняет проход apply — ограничения, агрегации, обработчики событий — без фиксации); форма закрывается только если валидация прошла успешно, иначе остаётся открытой.

Примеры

date = DATA DATE (Order);
FORM showForm
OBJECTS dateFrom = DATE, dateTo = DATE PANEL
PROPERTIES VALUE(dateFrom), VALUE(dateTo)

OBJECTS o = Order
FILTERS date(o) >= dateFrom, date(o) <= dateTo
;

testShow () {
// начальные значения для двух объектов, действие инициализации после открытия
SHOW showForm OBJECTS dateFrom = 2010_01_01, dateTo = 2010_12_31 { MESSAGE 'On init'; };

// открытие в новой сессии как плавающее окно с новым объектом в качестве текущего
NEWSESSION {
NEW s = Sku {
SHOW sku OBJECTS s = s FLOAT;
}
}

// открытие именной формы со значениями панели, дополнительным фильтром и идентификатором экземпляра
SHOW 'recentOrders' = showForm OBJECTS dateFrom = 2024_01_01, dateTo = 2024_12_31 FILTERS number(o) > 1000 NOWAIT;

// открытие формы выбора класса Sku, сфокусированной на конкретном sku
NEW s = Sku { SHOW LIST Sku = s; }
}