:::: МЕНЮ ::::

Конфигурация SELECT-OPTIONS

Функциональный модуль SELECT_OPTIONS_RESTRICT позволяет настраивать параметры типа SELECT-OPTIONS на экране выбора, ограничивая параметры SIGN и OPTION.
Например, можно ограничить выбор счёта, допустив указание фиксированного значения либо по маске.

Ограничение SIGN = I, OPTION = EQ или CP SELECT-OPTIONS без ограничений


SELECT_OPTIONS_RESTRICT позволяет ограничивать: количество опций выбора (значения параметра OPTION); возможность вводить несколько значений (множественный выбор); возможность вводить значения, которые будут исключены из выбора (SIGN = ‘E’). Функциональный модуль работает как со стандартным селекционным экраном, так и с селекционным экраном логической БД (необходимо указать параметр DB). ФМ может быть вызван только один раз, в событии INITIALIZATION. При повторном вызове возникает исключение REPEATED. Для настройки ограничений необходимо передать параметр RESTRICTION.

В параметре RESTRICTION передается структура типа SCR_RESTRICT (тип определен в пуле типов SSCR):

Поле Описание
OPT_LIST_TAB Таблица опций. Каждая строка содержит поле NAME с произвольным именем правила для списка допустимых опций и поле OPTIONS (структура RSOPTIONS). Структура OPTIONS содержит 10 полей-флагов опций выбора (EQ, BT, … ), определяющие возможность установки данной опции.
ASS_TAB Таблица ассоциаций. Это таблица, в которой вы назначаете объекты экрана выбора, списки опций и разрешенные знаки.

Таблица ассоциаций ASS_TAB имеет тип строки SSCR_ASS:

Поле Описание
KIND Вид ограничений. Возможные значения:
‘A’ — ограничения применяются ко всем полям SELECT-OPTIONS.
‘B’ — ограничения применяются ко всем полям SELECT-OPTIONS, принадлежащих указанному блоку. Имя блока передаётся в поле NAME.
‘S’ — ограничения применяются к одному конкретному SELECT-OPTIONS. Имя параметра передаётся в поле NAME.
NAME Если KIND = ‘B’ или ‘S’, то передаётся имя поля/блока. Если KIND = ‘A’, поле остаётся пустым.
SG_MAIN Знак выбора. Возможные значения:
‘*’ — SIGN может принимать как I, так и E.
‘I’ — SIGN может принимать только I.
SG_ADDY Множественный выбор. Возможные значения:
‘*’ — Не ограничивать на экране знак множественного выбора.
‘ ‘ — Применить то же ограничение знака множественному выбору что и к основному экрану выбора.
‘N’ — Множественный выбор не допускается, аналогично дополнению NO-EXTENSION.
OP_MAIN Имя правила (из RESTRICTION-OPT_LIST_TAB) для основного экрана выбора.
OP_ADDY Имя правила (из RESTRICTION-OPT_LIST_TAB) для экрана множественного выбора.
На экране множественного выбора всегда есть как минимум столько же параметров, сколько на главном экране выбора. Опции, доступные на экране множественного выбора, представляют собой объединение двух списков OP_MAIN и OP_ADDY.

Пример

Пример демонстрирует возможность ограничения ввода значений на дату проводки и на счета.
При указании даты проводки требуется ввод нижней и верхней границы. Если пользователь ввел параметры, не удовлетворяющие данному условию, то будет ошибка.
Ошибка при вводе только нижней границы даты

На поля блока BLOCK_HKONT наложено ограничение: допустимо выбирать или исключать только отдельное значение. Так как ввод диапазона данных запрещён, то верхняя граница диапазона становится не активной.
Верхняя граница SELECT-OPTIONS не активна

Подробную документацию данного функционального модуля можно взять тут.


2 комментария

Присоединиться к обсуждению...