Кроме универсальной команды 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
<команды>
RETURN
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 <имяменю>
которые вызывают на экран предварительно определенные меню.
Список литературы
Голицына О.Л., Максимов Н.В. и др., «Базы данных» (учебное пособие)
Могилёв А.В., Пак Н.И. и др., «Информатика»
Майоров А.Н. «Современные СУБД»