2.3.6. Организация системы меню
К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
Чтобы организовать в dBASE систему меню, сначала надо определить его отдельные компоненты - меню вертикального и горизонтального типа. Для этого используются специальные команды, начинающиеся словом DEFINE - определить. Определение горизонтального меню выполняется командой
DEFINE MENU <имя меню> [MESSAGE <выр.С>]
Эта команда еще не создает горизонтальное меню, а только назначает ему имя и, если требуется, сообщение, которое будет высвечиваться в нижней строке экрана (строке сообщений). Для определения позиций горизонтального меню используется команда
DEFINE PAD <имя позиции>
OF <имя меню> PROMPT <выр.С>
[AT <строка>,<колонка>] [MESSAGE <выр.С>]
которая определяет одну позицию горизонтального меню. Для задания нескольких позиций данная команда повторяется соответствующее число раз. Вертикальное меню определяется командой
DEFINE POPUP <имя меню>
FROM <строка 1>,<колонка 1>
[ТО <строка 2>,<колонка 2>]
[PROMPT FIELD <имя поля>]
/PROMPT FILES [LIKE <шаблон>]
/PROMPT STRUCTURE]
[MESSAGE <выр.С>]
которая устанавливает его имя (записывается по тем же правилам, что и для горизонтального меню) и координаты окна меню на экране. Опции FROM и ТО определяют координаты левого верхнего и правого нижнего углов окна меню.
Назначение текста и других атрибутов одной позиции ранее определенного вертикального меню осуществляется командой
DEFINE BAR <номер строки> OF <имя меню>
PROMPT <выр.С>
[MESSAGE <выр.С>]
[SKIP [FOR <условие>]]
Чтобы определить нескольких позиций, надо эту команду повторить соответствующее число раз.
После того как определены позиции меню, обычно требуется назначить им определенные действия, которые будут выполняться при их выборе. Эти действия для позиций горизонтального меню назначаются командой
ON SELECTION PAD <имя позиции горизонтального меню>
OF <имя горизонтального меню> [<команда>]
которая выполняет заданную команду при выборе указанной позиции горизонтального меню. В качестве команды может быть любая команда dBASE IV, в том числе команда вызова программ и процедур.
Для назначения действий позициям вертикального меню используется команда
ON SELECTION POPUP <имя позиции вертикального меню>/ALL [<команда>]
которая выполняет заданную команду или процедуру при выборе позиции вертикального меню.
Обычно для назначения позициям меню каких-либо действий используется выход на процедуру, в которой помещаются команды для выполнения этих действий. В такой процедуре чаще всего применяется команда
DO CASE
CASE <условие>
<команды>
[CASE <условие>]
<команды>
[OTHERWISE]
<команды>
ENDCASE
Можно формировать вложенные структуры этой команды, т.е. внутри команды после ключевого слова CASE помещать другую команду DO CASE, а также любые другие команды ветвления и выполнения циклов, например IF...ENDIF, DO WHILE...ENDDO и др.
Пример.
DO CASE
CASEVal> 1000
<команды>
CASEVal> 100
<команды>
CASEVal>10
<команды>
OTHERWISE
<команды>
ENDCASE
Если требуется разветвить процесс только на два направления, можно использовать команду
IF <условие> <команды> [ELSE] <команды> ENDIF
При реализации операций, назначаемых позициям меню, нередко требуется организовать циклы повторяющихся действий, например организовать обработку файла БД и др. Это можно сделать с помощью ряда команд и их комбинаций. Одной из таких является команда
DO WHILE <условие>
<команды>
[EXIT]
<команды>
[LOOP]
<команды>
ENDDO
которая обеспечивает повторение последовательности команд, заключенной между словами DO WHILE и ENDDO до тех пор, пока заданное условие истинно. Если встречается слово LOOP, то управление передается в начало цикла команд, а при встрече слова EXIT осуществляется выход из команды и управление передается на первую команду после слова ENDDO, завершающего данную команду.
Предыдущие команды позволяют определить меню и атрибуты их позиций. Для того чтобы активизировать горизонтальное и вертикальное меню (а также списки), используются команды
ACTIVATE MENU <имя меню> [PAD <имя позиции>]
и
ACTIVATE POPUP <имя меню>
которые вызывают на экран предварительно определенные меню.
Чтобы организовать в dBASE систему меню, сначала надо определить его отдельные компоненты - меню вертикального и горизонтального типа. Для этого используются специальные команды, начинающиеся словом DEFINE - определить. Определение горизонтального меню выполняется командой
DEFINE MENU <имя меню> [MESSAGE <выр.С>]
Эта команда еще не создает горизонтальное меню, а только назначает ему имя и, если требуется, сообщение, которое будет высвечиваться в нижней строке экрана (строке сообщений). Для определения позиций горизонтального меню используется команда
DEFINE PAD <имя позиции>
OF <имя меню> PROMPT <выр.С>
[AT <строка>,<колонка>] [MESSAGE <выр.С>]
которая определяет одну позицию горизонтального меню. Для задания нескольких позиций данная команда повторяется соответствующее число раз. Вертикальное меню определяется командой
DEFINE POPUP <имя меню>
FROM <строка 1>,<колонка 1>
[ТО <строка 2>,<колонка 2>]
[PROMPT FIELD <имя поля>]
/PROMPT FILES [LIKE <шаблон>]
/PROMPT STRUCTURE]
[MESSAGE <выр.С>]
которая устанавливает его имя (записывается по тем же правилам, что и для горизонтального меню) и координаты окна меню на экране. Опции FROM и ТО определяют координаты левого верхнего и правого нижнего углов окна меню.
Назначение текста и других атрибутов одной позиции ранее определенного вертикального меню осуществляется командой
DEFINE BAR <номер строки> OF <имя меню>
PROMPT <выр.С>
[MESSAGE <выр.С>]
[SKIP [FOR <условие>]]
Чтобы определить нескольких позиций, надо эту команду повторить соответствующее число раз.
После того как определены позиции меню, обычно требуется назначить им определенные действия, которые будут выполняться при их выборе. Эти действия для позиций горизонтального меню назначаются командой
ON SELECTION PAD <имя позиции горизонтального меню>
OF <имя горизонтального меню> [<команда>]
которая выполняет заданную команду при выборе указанной позиции горизонтального меню. В качестве команды может быть любая команда dBASE IV, в том числе команда вызова программ и процедур.
Для назначения действий позициям вертикального меню используется команда
ON SELECTION POPUP <имя позиции вертикального меню>/ALL [<команда>]
которая выполняет заданную команду или процедуру при выборе позиции вертикального меню.
Обычно для назначения позициям меню каких-либо действий используется выход на процедуру, в которой помещаются команды для выполнения этих действий. В такой процедуре чаще всего применяется команда
DO CASE
CASE <условие>
<команды>
[CASE <условие>]
<команды>
[OTHERWISE]
<команды>
ENDCASE
Можно формировать вложенные структуры этой команды, т.е. внутри команды после ключевого слова CASE помещать другую команду DO CASE, а также любые другие команды ветвления и выполнения циклов, например IF...ENDIF, DO WHILE...ENDDO и др.
Пример.
DO CASE
CASEVal> 1000
<команды>
CASEVal> 100
<команды>
CASEVal>10
<команды>
OTHERWISE
<команды>
ENDCASE
Если требуется разветвить процесс только на два направления, можно использовать команду
IF <условие> <команды> [ELSE] <команды> ENDIF
При реализации операций, назначаемых позициям меню, нередко требуется организовать циклы повторяющихся действий, например организовать обработку файла БД и др. Это можно сделать с помощью ряда команд и их комбинаций. Одной из таких является команда
DO WHILE <условие>
<команды>
[EXIT]
<команды>
[LOOP]
<команды>
ENDDO
которая обеспечивает повторение последовательности команд, заключенной между словами DO WHILE и ENDDO до тех пор, пока заданное условие истинно. Если встречается слово LOOP, то управление передается в начало цикла команд, а при встрече слова EXIT осуществляется выход из команды и управление передается на первую команду после слова ENDDO, завершающего данную команду.
Предыдущие команды позволяют определить меню и атрибуты их позиций. Для того чтобы активизировать горизонтальное и вертикальное меню (а также списки), используются команды
ACTIVATE MENU <имя меню> [PAD <имя позиции>]
и
ACTIVATE POPUP <имя меню>
которые вызывают на экран предварительно определенные меню.