16.1. Создание нового меню

The UNESCO micro CDS/ISIS Software

При использовании системы, поставляемой UNESCO, обычно нет необходимости создавать новые меню, кроме тех, которые обеспечивают исполнительные функции системы. Тем не менее, может возникнуть необходимость создать дополнительные меню HELP и связать их со стандартными системными меню. Как пример меню HELP, можно использовать меню xXUH1, которое вызывается посредством меню xXM1 в программе ISISUTL.

Изначально, новое меню с исполнительными функциями, может быть необходимо для специальных прикладных программ, написанных на языке CDS/ISIS Паскаль.

Во время создания меню экран очищается и первая подсказка появляется в области сообщений (строки 22-23 на экране). Нижняя строка содержит имя создаваемого меню и номер страницы. Большинство подсказок выведут на экран значение по умолчанию, которое можно принять нажатием клавиши CR или изменить по своему усмотрению.

16.1.1. Позиция имени поля

Подсказка 046, 047

Укажите позицию на экране, в которой желательно разместить компоненту имени поля. Позиция указывается в координатах экрана с/к, где с - номер строки, к - номер колонки. Верхняя крайняя левая позиция экрана считается 1/1, нижняя крайняя правая позиция считается 21/80 (строки 22-24 являются областью сообщений и не используются для полей данных).

В помощь пользователю, CDS/ISIS, при необходимости, позволяет определить точную позицию на экране. Система выведет на экран линейки, содержащие номера строк и колонок в том случае, если в ответ на эту подсказку будет введено отрицательное число в интервале от -21 до -1. CDS/ISIS укажет номера строк в левой части экрана и номера колонок в той строке, номер которой указан. Например, если на эту подсказку ответить -5, горизонтальная линейка будет выведена в строке 5. Заметим, что количество горизонтальных линеек не ограничено.

При вводе, значения "с" и "к" разделяются либо разделительной чертой (/), либо любым другим нецифровым символом, или одним или несколькими пробелами. Примеры спецификации ввода строк 7 позиции 20 :

7/20     7 20     7, 20     7; 20

Ответ CR на эту подсказку завершает функцию создания меню.
После того как определена позиция имени поля, CDS/ISIS переместит курсор в заданную позицию, в которую необходимо ввести имя поля. Помните, что если это есть поле опции, то первым символом имени должен быть идентификатор опции.

16.1.2. Позиция значения поля

Подсказка 048, 046

Укажите позицию на экране, в которой желательно разместить компоненту значения поля. Эта позиция специфицируется также как и позиция имени поля. Отрицательное значение вызовет появление линеек. Для подтверждения значения по умолчанию, предлагаемого подсказкой 046, вводится CR. Позиция значения по умолчанию будет, как правило, находиться на расстоянии одного пробела от последнего символа поля имени.

16.1.3. Характеристики поля

Подсказка 051, 052

Так определяется характеристика изображения компоненты значения поля. Данная характеристика может быть одной из следующих:

0 - нормальное : значение поля выводится на экран так же, как и имя поля;
1 - обратное изображение;
2 - яркое; высокая интенсивность (ярче, чем имя поля );
3 - подчеркнутое, интенсивность нормальная;
4 - мигающее;
5 - невидимое.

Заметим, что характеристики являются стандартными, но их фактический смысл зависит от установки системы. Более того, при использовании цветного экрана, каждая характеристика будет представлена другим цветом. Программа ISISUTL позволяет изменить значение приведенных характеристик (см. раздел 11.1. "А - отобразить/модифицировать атрибуты").

16.1.4. Длина поля

Подсказка 053 : Введите длину поля (nnn)

Введите длину компоненты значения поля. Допускается спецификация длины в символах или в строках. В последнем случае перед числом указывается символ "L".

Например :

25 - означает 25 символов,
L4 - означает 4 строки, считая от строки, указанной в значении с позиции с/к значения поля.

Как только длина поля указана, CDS/ISIS выведет на экран значение поля, заполненное символами подчеркивания с указанной позиции на экране, заданной длины и указанной характеристикой изображения.

16.1.5. Тип элемента

Подсказка 056 : Определить тип поля (S - опция; Х - поле выбора; Т - заглавие)

Определите тип поля меню. Заметим, что в любом меню может быть выбрано только одно поле.

16.1.6. Код действия

Подсказка 061, 062

Эта подсказка появляется только для полей опции и указывает, какое действие должна предпринять CDS/ISIS в том случае, когда пользователь выберет данную опцию.

Возможными действиями могут быть следующие :

Х - возвращает идентификатор опции вызывающей программе. Данное действие, обычно, связывается с такими опциями, которые требуют выполнения функций CDS/ISIS. Например, кодом действия для опции "D" в меню xXGEN (Программа ISISRET) является "X". В этом случае процессор меню возвращает букву "D" CDS/ISIS, которая в свою очередь осуществит функцию вывода на экран.
С - повторный вывод на экран текущего меню.
L - выбор языка. Данное действие связывается с одним из языков опций в меню xXLNG. После переключения на выбранный язык, CDS/ISIS повторно вызовет на экран меню, из которого вызывалось xXLNG.
N - вывод на экран другого меню (новое меню располагается в верхней части стека меню). Данное действие обычно используется для перехода к меню xXLNG или к меню HELP. CDS/ISIS предложит ввести имя следующего меню выведя на экран следующую подсказку:

Подсказка 063 : Имя следующего меню/программы?

Введите (1-5 символьное) имя меню, которое будет выбрано, например EXLNG.
Р - возврат в предыдущуее меню. Данное действие обычно используется для возврата в меню, из которого текущее меню было вызвано. CDS/ISIS удалит текущее меню из стека меню. Заметим, что действие "L" предполагает действие "Р" после выбора языка. Действие "Р" используется для возврата к вызываемому меню из меню HELP.
Е - осуществляет выход из меню пользователя (см. руководство по языку CDS/ISIS Паскаль). Это действие позволяет связать пользовательский выход с опцией меню. CDS/ISIS предложит ввести имя программы, которая должна быть выполнена, выведя на экран следующую подсказку :

Подсказка 063 : Имя следующего меню/программы?

Введите (1-6 символьное) имя программы, которая должна быть выполнена. Если РCD файл с таким именем отсутствует, система выдаст предупредительное сообщение.

Если позже будет выбрана опция меню с кодом действия "Е", CDS/ISIS осуществит связь CDS/ISIS с Паскаль программой. Данная программа должна быть сохранена в программном директории (указывается в параметре 1 SYSPAR.PAR) и быть успешно скомпилирована.

16.1.7. Внутренний идентификатор опции

Подсказка 066 : Введите идентификатор внутренней опции

Каждая опция в меню состоит из 1-символьного идентификатора опции и описания опции. Для выбора опции нажимается клавиша, соответствующая символу идентификатора опции. CDS/ISIS затем выполнит действие, определенное для этой опции в соответствии с кодом действия (см. подсказку 061/062 выше). Идентификатор опции, распознаваемый CDS/ISIS, является уникальным и соответствует идентификатору опции, определенному в английском меню как стандартный, поставляемый UNESCO. Эти идентификаторы называются внутренними идентификаторами опций и фиксируются один раз для всех программ.

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

Возможность определить внутренний идентификатор позволяет устанавливать соответствие между внешним идентификатором опции (который выбран) и идентификатором опции, предусмотренным системой CDS/ISIS.

По умолчанию внутренний идентификатор опции является таким же как внешний.

Например, для обеспечения вывода на экран результатов поиска в английском меню EXGEN используется опция "D".

Заметим, что только при выборе кодов действия "Х" и "L" будет выдана подсказка ввести внутренний идентификатор опции.

Возможность определять внутренний идентификатор опции для кода действия "L" позволяет назначать коды языков, которые соответствуют текущему языку, но при этом сохраняют уникальный код для каждого языка.

Например, в английском меню EXLNG код для английского языка - "Е", а для испанского - "S". Однако в испанском меню SXLNG можно назначить "I" для английского языка и "Е" для испанского. В последнем случае необходимо назначить "Е" как внутренний идентификатор опции английскому языку и "S" - для опции испанского языка.

16.1.8. Описание опции.

Подсказка 064 : Введите описание опции

CDS/ISIS устанавливает курсор на компоненте значения поля. Введите описание опции или заглавие. После завершения ввода последнего поля CDS/ISIS выдаст следующую подсказку :

Подсказка 049, 050

Ответ :

S или CR - прекращает обработку и сохраняет меню, которое было создано (заметим, что в отличие от рабочего листа, меню может иметь только одну страницу, поэтому опция "В" не действует);

R - восстанавливает текущую страницу. Данная опция используется для очистки экрана от линеек, которые могли быть использованы для определения позиции экрана, чтобы просмотреть вновь созданное меню;

Е - редактирование меню (см. ниже);

С - прекращение обработки без сохранения меню.