16. Редактор меню

The UNESCO micro CDS/ISIS Software

Редактор меню применяется для создания и/или редактирования системных меню, используя программу ISISUTL и очень похож на редактор рабочего листа, обсуждавшийся выше.

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

  • поле заглавия: обычно используется для справочной информации, такой как название меню или программы;
  • поле опций: описывает различные возможности программы;
  • поле выбора: обычно содержит выбор пользователя (когда меню будет выводиться на экран, CDS/ISIS расположит курсор в поле выбора).

Каждое меню может содержать одно или несколько полей заглавия и полей опций и только одно поле выбора. Аналогично рабочему листу, каждое поле меню содержит две основные компненты: имя поля и значение поля. Однако заметим, что для полей опций в меню эти компоненты определяются следующим образом:

1) Первая буква "имени поля" должна содержать "идентификатор опции", который указывает CDS/ISIS на действие, которое должно быть выполнено в том случае, когда данная опция будет выбрана пользователем. 2) "Значение поля" содержит "описание опции", которое является коротким описанием данной опции для пользователя.

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

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 - восстанавливает текущую страницу. Данная опция используется для очистки экрана от линеек, которые могли быть использованы для определения позиции экрана, чтобы просмотреть вновь созданное меню;

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

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

16.2. Редактирование меню

The UNESCO micro CDS/ISIS Software

Редактирование меню осуществляется либо выбором опции "Е" в подсказке 049 во время его создания, либо выбором соответствующей опции в программе ISISUTL.

После вывода меню на экран дисплея, CDS/ISIS установит курсор на имени первого поля и в области сообщений появится следующая подсказка:

Подсказка 071, 072

Ответ :

А - добавить в меню новое поле. CDS/ISIS переключится на режим создания и предложит ввести различные параметры поля (см. раздел 16.1. "Создание меню"). В режиме редактирования можно создать столько дополнительных строк, сколько требуется. После создания последнего поля подсказки 071 и 072 повторно выведутся на экран и курсор установится на следующем поле;

С - отцентрировать поле на строке. Использование этой возможности допускается в том случае, если на строке нет других полей кроме тех, которые необходимо отцентрировать;

D - удалить поле;

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

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

S - сдвинуть поле вверх или вниз на экране. CDS/ISIS затем выдаст подсказку, предлагающую ввести количество строк, на которое поле будет сдвинуто:

Подсказка 073 : Введите количество строк ( n = вниз, -n = вверх )

При вводе положительного числа, поле будет сдвинуто вниз, при вводе отрицательного числа - вверх. Например, если ввести -2, поле будет сдвинуто вверх на две строки.

Х - прекратить редактирование. CDS/ISIS выдаст на экран подсказки 049/050, определяющую следующие действия:

CR - оставить без изменения и перейти к следующему полю. Заметим, что если это поле последнее CR равнозначно "Х",
TAB - сдвинуть курсор на следующее поле.