@ <строка 1>,<колонка 1> ТО <строка 2>,<колонка 2> [DOUBLE/PANEL/<символы определения рамки>] [COLOR <код цвета>]
которая рисует на экране прямоугольную рамку, определяемую координатами верхнего левого - <строка 1>,<колонка 1> - и правого нижнего - <строка 2>, <колонка 2> - углов рамки. Опция DOUBLE позволяет рисовать двойную линию рамки (по умолчанию рисуется одинарная линия), опция PANEL - рамку в виде сплошной полосы. Кроме того, имеется возможность рисовать линию рамки заданными символами. Для этого задается список символов для определения рамки. Можно задать различные символы для сторон и углов рамки. В этом случае символы разделяются запятыми и располагаются в следующем порядке: f, b, I, r, fl, fr, bl, br, где f - верх; b - низ; 1 - левая сторона; г - правая сторона; П -левый верхний угол; fr - правый верхний угол; bl - левый нижний угол; br -правый нижний угол.
Пример.
@ 5,13 ТО 10,40 DOUBLE COLOR R/BG Д
Для полной очистки всего экрана используется команда
CLEAR [ALL/FIELDS/GETS/MEMORY/MENUS/ POPUPS/TYPEAHEAD/WINDOWS]
Она очищает экран, устанавливает курсор в левый нижний угол экрана и освобождает все незаконченные опции GET команды @...SAY...GET. Различные опции этой команды также закрывают файлы БД, очищают переменные, списки полей, окна, горизонтальные и вертикальные меню и буфер клавиатуры.
Команда @...SAY...GET является универсальной для организации ввода и вывода информации на экране. В программах нередко требуется вводить с клавиатуры данные для обеспечения процесса обработки информации, например имя файла БД, данные для ветвления программы, поисковые значения и т.д. Для этого предусмотрена специальная команда
ACCEPT [<сообщение>] ТО <переменная>
которая позволяет вводить с клавиатуры данные символьного типа в переменную. Перед полем переменной можно высветить сообщение, например, о характере вводимых данных.
Кроме этой команды для ввода данных с клавиатуры можно использовать команду
INPUT [<сообщение>] ТО <переменная>
которая выполняет аналогичные функции, но позволяет вводить в переменную с клавиатуры данные не только символьного, но и других типов, а также в виде заданного выражения, что не допускается в команде ACCEPT. Тип выражения определяет тип переменной, в которую вводится значение. После набора выражения с клавиатуры для ввода его в переменную надо нажать клавишу Enter.
Кроме универсальной команды SAY существует команда, специально предназначенная для вывода данных на экран и принтер:
?/?? [<выр.1> [PICTURE <выр.С>]
[FUNCTION <список функций>] [AT <вьгр.Ы>] [STYLE <номер шрифта>]] [,<выр.2>...] [,]
которая выводит значение одного или более заданных символьных выражений. Если установлено состояние SET PRINT ON, то выполняется вывод на принтер, если SET PRINT OFF, то на экран. Эта команда в форме ? выводит каждое выражение на следующей строке, а в форме ?? все выражения на одной строке. Для печати отчета используется команда
REPORT FORM <имя файла отчета>/?
[<границы>] [WHILE <условие>]
[FOR <условие>] [PLAIN]
[HEADING <выр.С>] [NOEJECT]
[ТО PRINTER/TO FILE <имя файла>] [SUMMARY]
которая запускает программу печати отчета (файл отчета), созданную командой CREATE/MODIFY REPORT.
Для создания исходных программных файлов используются обычные текстовые редакторы, например встроенный редактор dBASE, который вызывается командой
MODIFY COMMAND/FILE <имя файла> [WINDOW <имя окна>]
Прикладная программа обычно состоит из главной процедуры и вызываемых из нее процедур, например:
<команды>
DO Procl
DO Proc2
DO РгосЗ
RETURN
PROCEDURE Procl
PROCEDURE Proc2
&& Начало главной процедуры
&& Конец главной процедуры
&& Начало Procl
&& Конец Procl
&& Начало Ргос2
617
<команды> RETURN
PROCEDURE РгосЗ <команды> RETURN
&& Конец Proc2 && Начало РгосЗ
&& Конец РгосЗ
Процедура представляет собой программный модуль, который выполняет определенную задачу. После ее выполнения управление передается в вызвавшую или главную процедуру. Процедура так же, как и программа, вызывается и выполняется командой
DO <имя программы>/<имя процедуры> [WITH <список параметров>]
Опция WITH передает в вызываемую процедуру параметры (до 64).
Каждая процедура, размещаемая в файле процедур или в программном файле, должна начинаться с команды
PROCEDURE <имя процедуры>
и завершаться командой
RETURN [<выражение>/ТО MASTER/TO <имя процедуры>]
Команда RETURN удаляет все переменные, которые были определены в процедуре как PRIVATE (переменные, определенные как PUBLIC, остаются без изменения).
Командой DO в процедуру можно передавать из вызывающей программы и обратно параметры, которые в самой процедуре определяются командой
PARAMETERS <список параметров>
которая должна быть первой исполняемой командой в теле процедуры. В качестве параметра в списке может быть любое допустимое выражение, определяющее переменную, в которую передаются данные из соответствующего параметра вызывающей программы. Если эта переменная не объявлена глобальной (PUBLIC), то автоматически она имеет статус локальной (PRIVATE).
Определение переменных как локальных выполняется командой
PRIVATE <список переменных> / [ALL [LIKE/EXCEPT <шаблон>]]
Глобальные переменные можно использовать повсюду в программе и в вызываемых ею процедурах. Для объявления переменных и элементов массива глобальными используется команда
PUBLIC <список переменных>/ [ARRAY <список элементов массива>]
8. Организация системы меню
Чтобы организовать в 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 <имя позиции вертикального MeHK>>/ALL [<команда>]
которая выполняет заданную команду или процедуру при выборе позиции вертикального меню.
Обычно для назначения позициям меню каких-либо действий используется выход на процедуру, в которой помещаются команды для выполнения этих действий. В такой процедуре чаще всего применяется команда
DO CASE
CASE <условие>
[CASE <условие>]
[OTHERWISE]
<команды> ENDCASE
Можно формировать вложенные структуры этой команды, т.е. внутри команды после ключевого слова CASE помещать другую команду DO CASE, а также любые другие команды ветвления и выполнения циклов, например IF...ENDIF, DO WHILE...ENDDO и др.
CASE CASE Val > 1000 <команды> CASE Val > 100 <команды> CASE Val > 10 <команды> OTHERWISE <команды> ENDCASE
Если требуется разветвить процесс только на два направления, можно использовать команду
IF <условие> <команды> [ELSE],<команды> ENDIF
При реализации операций, назначаемых позициям меню, нередко требуется организовать циклы повторяющихся действий, например организовать обработку файла БД и др. Это можно сделать с помощью ряда команд и их комбинаций. Одной из таких является команда
ход фай
DO WHILE
[EXIT]
[LOOP] ENDDO
<условие> <команды>
<команды> <команды>
руе
:
зац
которая обеспечивает повторение последовательности команд, заключенной между словами DO WHILE и ENDDO до тех пор, пока заданное условие истинно. Если встречается слово LOOP, то управление передается в начало цикла команд, а при встрече слова EXIT осуществляется выход из команды и управление передается на первую команду после слова ENDDO, завершающего данную команду.
Предыдущие команды позволяют определить меню и атрибуты их позиций. Для того чтобы активизировать горизонтальное и вертикальное меню (а также списки), используются команды
ACTIVATE MENU <имя меню> [PAD <имя позиции>]
ACTIVATE POPUP <имя меню>
которые вызывают на экран предварительно определенные меню.
Список использованной литературы
1. Голицына О.Л., Максимов Н.В. и др., «Базы данных» (учебное пособие)
2. Могилёв А.В., Пак Н.И. и др., «Информатика»
3. Майоров А.Н. «Современные СУБД»
Страницы: 1, 2, 3, 4, 5