Могут быть несколько типов ОУ вводом данных, которые управляют операциями ввода данных единственного пользователя ВТ. Каждый такой ОУ должен быть определен значением экземпляра параметра ФСВТ "объект управления устройством" для одного или нескольких объектов устройств, означающим, что конкретные ОУ управляют вводом данных с реального устройства (устройств), которое отображается на объект (объекты) устройств. Каждый объект устройства должен сам быть связан с ОО, в который должны вводиться данные. При помощи этих параметров ФСВТ объекта устройства можно образовывать структуры со сложными связями, но их следует использовать с осторожностью, чтобы исключить посторонние эффекты.
Примечание - Явное управление вводом (20.3.3.6) может подавлять вышеупомянутые неявные связи.
Если ОУ по умолчанию устройства определен как имеющий семантику включено/выключено (см. В.4), то прикладная программа может использовать это для выбора или запрещения ввода с соответствующего реального устройства при помощи соответствующих ОУ вводом данных.
В.18.7 Инструкции ввода в поле
Инструкции ввода в поле (ИВП) содержатся в ОУ типа ОУИВП как содержимое записей инструкций ввода в поле (ЗИВП). Одна ЗИВП может содержать один или более ИВП, но если в наличии более одного ИВП, то они не могут применяться раздельно для поля, т.к. связывание осуществляется на основе индекса ЗИВП; см. также примечание 3.
В ИВП определены инструкции, относящиеся к вводу обновлений в поле терминальным пользователем ВТ. (Не применяются никакие правила к обновлениям, выполняемым прикладным пользователем ВТ, который владеет полномочием доступа к ОУОП, кроме применимых к ОО как к целому).
Типичные инструкции ввода в поле следующие:
a) число элементов блока знаков, которые необходимо ввести в поле. Если это число равно нулю, то поле не может быть модифицировано, см. также В.18.7.1. Символическое значение "заполнить" указывает, что это число неявно зависит от размера поля;
b) список разрешенных или запрещенных знаков, которые позволяют выполнить определенные проверки допустимости ввода;
c) список разрешеных операций над логическими атрибутами, которые могут выполняться над содержимым поля; если список пуст, то операции над логическими атрибутами не разрешены. Этот список не может включать репертуар знаков вторичных атрибутов, который покрывается b), см. примечание 1;
d) графический знак вызова ввода, который указывает, как показать пользователю позицию знака в поле для ввода, включая его атрибуты отображения;
e) режим отображения для вводимых знаков, который указывает, как должен вьшолняться эхоконтроль введенного знака - как знак нажатой клавший или заданный фиксированный знак и применяемые атрибуты отображения;
f) время ожидания ввода, которое указывает время, после которого отсутствие действия пользователя терминала приведет к реакции.
Примечания
1 Если в любом из этих ИБП определяется знак или знаки, то подразумевается, что включается ссылка на репертуар знаков.
2 Инструкции ввода в зарегистрированных ОУИВП не ограничиваются списком, приведенным выше.
3 Для конкретного поля могут выбраться несколько ЗИВП из того же самого или из других ОУИВП; если общее число таким образом выбранных ИБП содержит два или более типов b) или с) (см. выше), то "допустимые наборы" являются аддитивными по умолчанию, хотя элементы регистра могут использовать другие правила. Это может помочь, например, в комбинировании наборов допустимых знаков в больших множествах. Поскольку поставщик услуг ВТ не управляет операцией ввода данных, то за обеспечение непротиворечивости выбранных для поля ИБП отвечают пользователи ВТ.
B.18.7.1 Защита поля от ввода данных
Любое из следующих условий достаточно, чтобы запретить доступ по вводу в конкретное поле для терминального пользователя ВТ при помощи логических операций:
а) поле "неактивное", см. 20.3.3.3 (это условие запрещает обновленце поля любым пользователем ВТ);
b) никакая ЗИВП не имеет значение "число вводимых элементов блока знаков" (см. В.18.7а) больше нуля;
с) ЗИВП имеет пустой список допустимых знаков (см. В.18.7b).
B.18.7.2 Синтаксис обновлений ЗИВП
Следующее определение, соответствуя приведенному выше списку инструкций ввода, служит примером возможного синтаксиса обновления для ЗИВП, т.е. для значения компонента "значение содержимого ЗИВП" из 20.3.4.2.
Значение содержимого ЗИВП ОПРЕДЕЛЕНИЯ: : = НАЧАЛО
Значение содержимого ЗИВП : : = ВЫБОР
{ | Число элементов | [О] НЕЯВНОЕ ЦЕЛОЕ, |
Число элементов поля | [1] НЕЯВНЫЙ НУЛЬ, |
- - равно числу знаков из размера поля
Допустимые знаки | [2] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | ||||
{ | [1] | НЕЯВНЫЙ Список значений Pn, | ||||
репертуар | [2] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ,} | ||||
Запрещенные знаки | [3] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | ||||
{ | [1] | НЕЯВНЫЙ Список значений Pn, | ||||
репертуар | [2] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ,} | ||||
Допустимые атрибуты | [4] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | ||||
{ Цвет изображения | [1] | НЕЯВНЫЙ НУЛЬ НЕОБЯЗАТЕЛЬНЫЙ, | ||||
Цвет фона | [2] | НЕЯВНЫЙ НУЛЬ НЕОБЯЗАТЕЛЬНЫЙ, | ||||
Выделение | [3] | НЕЯВНЫЙ НУЛЬ НЕОБЯЗАТЕЛЬНЫЙ, | ||||
Шрифт | [4] | НЕЯВНЫЙ НУЛЬ НЕОБЯЗАТЕЛЬНЫЙ,} | ||||
Вызов ввода | [5] | НЕЯВНЫЙ Знак, | ||||
Режим отображения ВЫБОР | ||||||
{ нет | [6] | НЕЯВНЫЙ НУЛЬ, | ||||
Эхоконтроль | [7] | НЕЯВНЫЙ НУЛЬ, | ||||
Фиксированный знак | [8] | НЕЯВНЫЙ НУЛЬ}, | ||||
Время ожидания | [9] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | ||||
{ Множитель | ЦЕЛОЕ, | |||||
Степень | ЦЕЛОЕ } | |||||
} | ||||||
Знак : : = ПОСЛЕДОВАТЕЛЬНОСТЬ | ||||||
{ Первичное значение | [1] | НЕЯВНОЕ ЦЕЛОЕ |
- - обусловлено областью первичных значений репертуара
Атрибуты | [2] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | |
{ Репертуар | [0] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ, | |
Цвет изображения | [1] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ, | |
Цвет фона | [2] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ, | |
Выделение | [3] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ, | |
Шрифт | [4] | НЕЯВНОЕ ЦЕЛОЕ НЕОБЯЗАТЕЛЬНЫЙ}, | |
} | |||
Список первичных значений | : : = | МНОЖЕСТВО ИЗ ВЫБОР | |
{ Явное значение | [1] | НЕЯВНОЕ ЦЕЛОЕ, | |
Область значений | [2] | НЕЯВНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ | |
{ Начало области | ЦЕЛОЕ, | ||
Конец области | ЦЕЛОЕ } |
- - значения обусловлены первичными значениями репертуара; область значе-
- - ний включает начало и конец
}
КОНЕЦ - - определений значения содержимого ЗИВП
Примечание - Этот пример предназначается только для одной ИБП в ЗИВП.
В.18.8 События ввода в поле
В компоненте "события ввода в поле" (СВП) определены события, которые важны во время процесса ввода данных. СВП образует часть макета ввода в поле (МВП), см. 20.3.5.2.
Типичные события ввода в поле следующие:
а) функциональные клавиши - соответствующие функциональные клавиши могут быть определены в регистре для ОУМВП;
b) конец ввода в поле - это событие происходит при достижении числа элементов блока знаков, которые должны быть введены в поле;
c) введен ошибочный элемент блока знаков - это событие происходит, когда терминальным пользователем вводится запрещенный знак;
d) выход за границу при обратной коррекции - это событие происходит, если курсор ввода (В.18.11) находится на первом элементе блока знаков поля и нажата клавиша коррекции (например, клавиша возврата на шаг);
e) истекло время ожидания ввода;
f) коррекция вслед за вводом ошибочного знака - это событие происходит, если последний введенный знак был запрещенным и нажата клавиша коррекции;
g) данные вслед за вводом ошибочного знака - это событие происходит, если последний введенный знак был запрещенным и введен новый знак (не клавиша коррекции).
Примечание - Зарегистрированный ОУМВП не ограничен списком, приведенным выше.
В.18.8.1 Синтаксис обновления СВП
Согласно СВП, описанным выше, приведен пример возможного синтаксиса обновления для компонента обновления ЗМВП, т.е. для значения "событие" в 20.3.5.2.
СВП ОПРЕДЕЛЕНИЯ : : = НАЧАЛО