|
Часть 3
4 КОМАНДЫ
На последующих страницах приведен полный список команд
FoxBASE+. Эта же информация может быть получена посредством ко-
манды HELP. Мы настоятельно рекомендуем вам тщательно ознако-
миться с командой HELP, она очень удобна для быстрого получения
справки при работе в FoxBASE+.
База данных, которая используется во многих примерах в гла-
вах 4 и 5 называется Video.dbf. Структура и содержание этой базы
данных приведены в приложении A.
Специфические многопользовательские команды приведены в
главе 9.
Информация, приведенная в данном разделе, является только
справочной, но отнюдь не учебной. В продаже есть много учебныз
пособий, которые будут полезны тем, кто еще не знаком с FoxBASE+
или dBASE III PLUS. В связи с тем, что язык FoxBASE+ идентичен
языку dBASE III PLUS, любое руководство по dBASE III PLUS однов-
ременно является руководством и по FoxBASE+.
4.1 ?
---------------------------------------------------------------
Анализ выражений, вывод результатов
Формат: ?[?]<выраж>[,<выраж2>,...]
? это команда "Как оцениваются эти выражения?" Выражения
оцениваются и их значения выводятся на экран.
Примеры:
*.? 15*(10+10)
300
*.? "Welcome to FoxBASE+"
Welcome to FoxBASE+
*.? EOF()
*.F.
*.USE Video INDEX Title
*.FIND ARSENIC AND OLD LACE
*.? Type, Title
Classic ARSENIC AND OLD LACE
*.? Descript &&This is a memo field
Starring: Cary Grant, Raymond massey, Jack
Carson, Peter Lorre When a man learns his two gentle
aunts are poisoning gentlemen callers and burring them
in the cellar, he must try to save the next two victims!
*. ? Date_aariv && This is a date field
12/09/82
? Используйте один вопросительный знак, когда хотите
увидеть значения в начале следующией строки на
экране или принтере.
?? Используйте два вопросительных знака, когда хотите
вывести значения, начиная с последней позиции кур-
сора.
4.2 @ SAY/GET
---------------------------------------------------------------
Выполняет ввод/вывод в указанных столбце и строке
Формат: @ <строка,столбец >
[[SAY <выраж>
[PICTURE <формат>]
FUNCTION <функц_коды>]]
[[GET ]
[PICTURE <формат>]
FUNCTION <функц_коды>]
[RANGE <числ_выраж1>][,<числ_выраж2>]]
VALID <логич_выраж>]]
Эта команда @ позволяет вывести сформатированную информацию
на экран или/и на принтер или создать на экране формы ввода.
<строка,столбец> Пара числовых выражений представляющая ко-
ординаты вывода.
<формат> Символическое выражение, определяющее про-
цесс редактирования данных перед выводом.
<функц_коды> Символическое выражение, определяющее функ-
циональные коды редактирования, применяемые
к данным перед их выводом.
Координаты экрана/принтера
Для экранного ввода/вывода номер первой строки 0. Строки
нумеруются с 0 по 24, сверху вниз по экрану. Для принтеров мак-
симальный номер строки определяется физическим размером страни-
цы.
Для экранного ввода/вывода номер первого столбца 0. Столбцы
нумеруются с 0 по 79 слева направо по экрану. Для принтеров мак-
симальный номер столбцы определяется физическим размером страни-
цы.
Оператор SAY
Если имеется оператор SAY, выражение <выраж> оценивается и
результат выводится, начиная с . Если была введена ко-
манда SET DEVICE TO SCREEN, то вывод направляется на экран. Вы-
вод команды SAY выглядит на экране обычным, "неярким" текстом.
Если была введена команда SET DEVICE TO PRINT, вывод производит-
ся на принтер.
Оператор @SAY может быть использован в форматном файле.
@ SAY ...PICTURE<формат>
Если присутствует оператор PICTURE, значение выражения <вы-
раж> редактируется в соответствии с указанным форматом <формат>
перед выводом. Эта строка символов может состоять из кодов
FUNCTION, трафаретных кодов PICTURE или их сочетания.
Если используются коды FUNCTION, они указываются в формате
<формат>, стоящем после "@". За символом "@" может без пробелов
следовать любое необходимое количество кодов FUNCTION. За пос-
ледним кодом FUNCTION в строке должен следовать один или нес-
колько пробелов. Это означает окончание строки кодов FUNCTION и
начало трафаретных кодов PICTURE.
Имеющиеся коды FUNCTION и PICTURE приведены в конце настоя-
щего раздела.
@ SAY ...FUNCTION <функц_коды>
Оператор FUNCTION предоставляет дополнительную возможность
введения кодов редактирования FUNCTION в строку, используемую
для редактирования вывода, генерируемого командой SAY. Введение
перед кодами FUNCTION символа "@" не обязательно. Указание кодов
FUNCTION в операторе FUNCTION аналогично введению их в оператор
PICTURE, однако при этом трафареты PICTURE становятся более наг-
лядными и соответственно более просты в работе.
Оператор GET
Если имеется оператор GET, выполняется операция полноэкран-
ного редактирования либо начиная с позиции, указанной координа-
тами <строка,столбец>, либо начиная с позиции на экране, следую-
щей за информацией, выведенной оператором SAY. Если не задано
SET INTENSITY OFF, вывод от оператора GET выделен на экране ин-
тенсивным режимом индикации - обычно инверсной видеозасветкой.
Если присутствуют оба оператора, и SAY и GET, по окончании выво-
да оператором SAY и перед выводом оператора GET автоматически
вводится пробел. Для инициализации редактирования полей GET сов-
местно с оператором GET должна быть использована команда READ.
Оператор GET игнорируется, если была введена команда SET DEVICE
TO PRINT.
GET ... PICTURE <формат>
GET ... FUNCTION <функц_коды>
Эти операторы в данном случае по выполняемым функциям ана-
логичны оператору SAY, за исключением того, что они редактируют
данные, введенные в соответствии с операторо GET.
GET ...RANGE[<числ_выраж1>][,<числ_выраж2>]
Параметр RANGE может быть использован с переменными число-
вого типа и даты. Он позволяет пользователю указывать диапазон,
в котором должна находиться вводимая информация. Введенные зна-
чения могут быть либо числами, либо выражениями типа даты, в за-
висимости от того, содержит ли <перем> числовые данные или дату.
Если введено значение вне указанного диапазона, на экран
выводится сообщение, в котором указывается допустимый диапазон и
указание для пользователя нажать клавишу пробела и повторить
ввод значения.
Могут быть опущены верхняя или нижняя граница диапазона
RANGE (но не обе). Если соответствующая граница опущена, провер-
ка этой границы не производится.
Необходимо заметить, что в качестве переменной GET <перем>
может быть указан массив переменных памяти, однако индексы мас-
сива анализируются только при выполнении оператора GET. Если
значения индексов изменяются после выполнения GET и перед выпол-
нением команды READ, в команде READ будут использованы значения
индексов массива, которые были использованы при выполнении опе-
ратора GET.
GET ...VALID <логич_выраж>
Оператор VALID позволяет анализировать вводимую информацию
в процессе выполнения команды @...GET. При использовании совмес-
тно с заданной пользователем функцией, оператор VALID может зна-
чительно упростить анализ ввода. В процессе выполнения команды
READ, когда ввод в поле с оператором VALID закончен, <логич_вы-
раж> анализируется с использованием только что введенной пере-
менной <перем>. Если <логич_выраж> имеет значение ".T.", ввод
считается правильным и команда READ переходит к вводу в следую-
щее поле.
Если <логич_выраж> имеет значение ".F.", введенное значение
считается неверным. На экран выводится сообщение, указывающее
пользователю повторить ввод данных после нажатия пробела. Этот
процесс продолжается до тех пор, пока <логич_выраж>не будет
иметь значение ".T." или пока не будет нажата клавиша Esc.
Если значение <перем> при вводе не изменилось, (например,
если нажата клавиша Enter без внесения изменений), не выолняются
проверки ни в соответствии с оператором RANGE, ни в соответствии
с оператором VALID. Это полезно, например, при вводе дополни-
тельных записей в базу данных командой APPEND, когда не жела-
тельно выполнять ввод во все поля сразу.
При выходе из поля GET ператор CLAUSE проверяет правиль-
ность переменной, вне зависимости от того, редактировалась ли она.
Примеры:
*. USE Video
*. @ 4,0 SAY TRIM(Title)+ "Rating:"+Rating
AMADEUS Rating:PG
*. @ 5,0 SAY Type PICTURE "@R! GROUP: AAAAAAAAAAAA"
GROUP: DRAMA
*. @ 6,0 SAY Cost_buy PICTURE "$999.99"
$ 59.95
*. @ 7,0 SAY Cost_buy PICTURE "$****.**"
$**59.95
*. @ 5,0 CLEAR && очистить от 5,0 до правого нижнего угла
*. STORE -99.65 TO Num1
*. STORE 76.54 TO Num2
*. STORE 0.00 TO Num3
*.@ 8,0 SAY Num1 PICTURE "@CX"
99.65 DB
*. @ 9,0 SAY Num2 PICTURE "@CX"
76.54 CR
*. @ 10.0 SAY Num3 PICTURE "@Z"
*.@ 11,0 SAY DATE() PICTURE "@E"
29/06/86
*.@ 12,0 SAY DATE() PICTURE "@D"
06/29/86
* Значение Num2 должно быть больше 0
*.@ 13,0 GET Num2 VALID Num2 > 0
В демонстрационных целях результат выполнения команд поме-
щен на следующую строку после команды. На практике вывод будет
произведен на соответствующую строку экрана.
Коды редактирования FUNCTIONS
А Допускает только алфавитные символы.
В Числовые данные выравниваются по левому краю. Может
использоваться только с числовыми данными.
С CR (кредит) выводится после положительных чисел. Может
использоваться только с числовыми данными. может
использоваться только с оператором SAY.
D Используется для дат в формате American (американский).
Может использоваться с числовыми, символическими и
данными типа дат.
E Используется для дат в формате European (европейский).
Может использоваться с числовыми, символическими и
данными типа дат.
R При использовании с строкой <формат>, содеражщей сим-
волы, а не трафаретные коды PICTURE, обеспечивает вывод
этих символов без сохранения их в <перемен>. Может
использоваться только с символьными данными.
S Эта функция ограничивает ширину поля при выводе на
экран. Символы в поле сдвигаются в пределах позиций
по горизонтали. всегда является целой константой.
Не уместившеся на экране символы могут быть выведены при
помощи клавиш стрелка_вверх, стрелка_вниз, Ctrl-F,
Ctrl-A. Может использоваться только с символьными
данными.
X После отрицательных чисел выводятся символы DB (дебит).
Может использоваться только с числовыми данными. Может
использоваться только с оператором SAY.
Z Выводится пустая строка, если переменная имеет нулевое
числовове значение. Может использоваться только с
числовыми данными.
( При использовании этой функции отрицательные числа
заключаются в скобки. Может использоваться только с
числовыми данными. Может использоваться только с
оператором SAY.
! Может быть введен любая буква. Буквы будут
преобразованы в верхний регистр. Может быть
использована только с алфавитными символами.
В одном операторе function допускается совместное использо-
вание нескольких функций, например, "@CX", при этом после каждо-
го числа будет выводиться CR или DB. Некоторые функции являются
взаимно несовмеcтимыми, совместное использование их не допуска-
ется, например, "@DE".
Трафаретные коды PICTURE
PICTURE <форматы> могут быть сформированы из любого набора
символов клавиатуры; однако только символы, приведенные ниже, де
ствительно влияют на редактирование и ввод данных. Если в опера-
тор формата вводятся какие-либо другие символы, они выводятся в
неизменном виде, а при операциях ввод появляются в поле в виде
вспомогательной информации, на которой курсор не фиксируется.
Ниже приведены символы, которые могут быть использованы в
операторах <формат>. (Не забывайте заключать операторы формата в
кавычки, если они являются строками букв).
А Позволяет вводить только алфавитные символы.
L Позволяет вводить только логические данные.
N Позволяет вводить буквы и цифры.
X Позволяет вводить любой символ.
Y Позволяет вводить только логические значения Y, y, N,
n. При этом y и n преобразуются в Y и N.
9 Позволяет ввод цифр для символьных данных.
Позволяет вводить цифры и знаки для числовых данных.
# Позволяет вводить цифры, пробелы и знаки.
! Преобразует буквы в нижнем регистре в верхний регистр.
$ Плавающий знак доллара. Знак доллара выводится перед
числовым значением.
* Перед числовым значением выводятся астериски. Может
использоваться в сочетании с $ для проверки защиты.
*. Служит для указания позиции десятичной точки.
, Служит для отделения знаков числа слева от запятой.
Смотри также: COL(), EDIT, INSERT, MODIFY COMMAND, PCOL(),
PROW(), READ, ROW(), SET BELL, SET CONFIRM, SET
DELIMITERS, SET DEVICE, SET FIELDS, SET FORMAT,
SET INTENSITY, UFD`s
4.3 @
---------------------------------------------------------------
Очистка области на экране
Формат: @<строка,столбец > [CLEAR/CLEAR TO <строка,столбец>]
Этот формат команды @ очищает прямоугольник на экране. Если
опущены ключевые слова CLEAR или CLEAR TO, очищается указанная
вами строка начиная с указанного вами столбца.
Если вы используете параметр CLEAR, очищается прямоугольная
область на экране, левый верхний угол которой указывается коор-
динатами <строка,столбец>, а правым инжним углом является правый
нижний угол экрана.
Если использован параметр CLEAR TO, очищается прямоугольная
область, как указано выше, но при этом нижний правый угол облас-
ти определяется координатами <строка,столбец>.
4.4 @
--------------------------------------------------------------
Вывести рамку
Формат: @<строка1,столбец1> TO <строка2,столбец2> [DOUBLE]
Этот формат команды позволяет вывести рамку, где <стро-
ка1,столбец1> являются координатами верхнего левого угла рамки,
а <строка2,столбец2> являются координатами нижнего правого угла
рамки.
Если в <строка1,столбец1> и <строка2,столбец2> координаты
строки одинаковы, выводится горизонтальная линия, и, аналогичным
образом, если координаты столбца одинаковы, выводится вертикаль-
ная линия.
Если используется параметр DOUBLE, будет выведена двойная,
а не одинарная рамка.
4.5 @
--------------------------------------------------------------
Вывести рамку
Формат: @<строка1,столбец1><строка2,столбец2>BOX[<симв_выраж>]
Этот формат команды "@" позволяет вывести рамку, где <стро-
ка1,столбец1> являются координатами верхнего левого угла рамки,
а <строка2,столбец2> являются координатами правого нижнеого угла
рамки.
Если в <строка1,столбец1> и <строка2,столбец2> координаты
строки одинаковы, выводится горизонтальная линия, и, аналогичным
образом, если координаты столбца одинаковы, выводится вертикаль-
ная линия.
Символы, задающие рамку, могут быть указаны в выражении
<симв_выраж> в составе команды BOX. Эта строка может содержать
до 9 различных символов - 4 для каждой из сторон и углов и один
для заполнения. Символы выводятся начиная с верхнего левого угла
рамки по часовой стрелке, 9-ый символ используется в качестве
фона. Если строка отсутствует, выводится одинарная рамка.
4.6 @ <строка,столбец> MENU
--------------------------------------------------------------
Создать вынимаемое меню
Формат: @<строка,столбец> MENU <массив>, <выражN1>[,<выраж N2>]
[TITLE<симв_выраж>]
Эта команда создает вынимаемое меню в любом месте экрана,
независимо от курсора меню верхнего ряда. Вынимаемые меню могут
иметь заголовки, появляющиеся в верхней части окна меню. Для
включения вынимаемого меню используется команда READ MENU. В
каждый момент времени включенным может быть только одно такое
меню.
<коорд> Пара арифметических выражений, указывающих мес-
тоположение левого верхнего угла меню.
<массив> Одномерный массив, содержащий опции меню. Эти
опции должны иметь символьный, и длина каждой
не должна превышать 50 символов.
<выражN1> Число опций меню - не должно превышать 128.
<выражN2> Этот необязательный аргумент указывает число оп-
ций меню, одновременно выводимых на экран - не
не должен превышать 17. Если он превысит 17, на
экран все равно будет выведено только 17 опций.
Если число опций, которые надо вывести на эк-
ран, меньше меньше общего числа опций, то можно
прокручивать окно.
TITLE Этот необязательный аргумент - заголовок, выво-
димый вверху окна меню.
Пример:
DIMENSION choices (3,1)
STORE "Chicken" TO choices (1)
STORE "Beef" TO choices (2)
STORE "Fish" TO choices (3)
STORE 0 TO mchoice
@ 5,0 MENU dinner, 3 TITLE "Dinner Choices"
READ MENU TO mchoice
См. также READ MENU, MENU
4.7 @ <строка,столбец> PROMPT
---------------------------------------------------------------
Создать меню со световым маркером
Формат: @<строка,столбец>
PROMPT <симв_выраж>
[MESSAGE <симв_выраж>]
Этот формат команды "@" используется для создания и модифи-
кации меню.
Последовательность команд @ ... PROMPT выведет строки меню
в соответствующих позициях экрана. Она используется в сочетании
с командой MENU TO, которая активизирует меню со световым марке-
ром, управляемое клавишами курсора, для заданных в текущий мо-
мент строк PROMPT.
По мере передвижения пользователем маркера выбора по стро-
кам меню каждая из строк PROMPT выделяется инверсной видеозас-
веткой и в позиции, указанной командой SET MESSAGE TO <числ_вы-
раж>, выводится соответствующее этой строке меню сообщение.
Выбор в меню может быть произведен:
* нажатием клавиши Enter при расположении маркера выбора на
соответствующей строке PROMPT
* вводом первой буквы соответствующей строки
В переменную памяти, указанную в строке команды MENU TO,
заносится номер выбора, определяемый порядком следования строк
PROMPT.
Команда @ ... PROMPT позволяет выводить на экран до 128 пром-
птов. Объем памяти, отводимый для хранения их вместе с соответс-
твующими сообщениями может быть установлен в файле Config.fx.
Этот объем может быть от 1 до 32 К (по умолчанию принят 1К). Для
увеличения этого объема вставьте в файле Config.fx строку
|
|