Пример с радио-группами

Сегодня — формулировка об унификации селективных экранов. О, да… это тоже борьба с энтропией.

Исключающие параметры

Часто бывает, что некоторые параметры образуются в некоторые взаимоисключающие группы. То есть в данном примере: следует заполнять или первое+второе поле, или третье+четвёртое поле.

Исключающие параметры

В дополнение к таком селективному экрану можно написать обработчик, который будет выдавать ошибку вида “параметры А и Б не следует заполнять при заполненных параметрах В и Г”. Вариант суров и неоднозначен.

В качестве более красивого решения можно предложить разбавить эти параметры с помощью радиогруппы.

Исключающие параметры

Параметры к параметру

Параметр к параметру

Параметр к параметру

Вот чуть-чуть другой пример. Радиогруппа уже есть, но некоторые параметры имеют смысл только для определённых пунктов.

 

Реализация

Во-первых, следует сделать пару добавок в описание селективного экрана:

Описание селективного экрана

 

Добавка “USER-COMMAND flag” требуется только для первого элемента в группе. Цель этой добавки – срабатывание PBO при выборе опции (щелчок мыши).

Добавка “MODIF ID OP1” требуется для группировки полей, чтобы “отвязаться” от количества и имён полей в обработчике экрана.

А во-вторых, добавляем обработчик экрана:

Обработчик AT SELECTION-SCREEN OUTPUT

Этот обработчик по сути говорит:

  • Для группы полей OP1: При включенной опции rg_opt1 – требуется включить ввод, иначе  — выключить ввод
  • Для группы полей OP2: При включенной опции rg_opt2 – требуется включить ввод, иначе  — выключить ввод

Ничего сложного, а пользователю, надеюсь, будет немного понятней.

Впрочем, это только один из вариантов…

Добавить комментарий

Ваш адрес email не будет опубликован.