Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_по_БД.doc
Скачиваний:
28
Добавлен:
14.02.2015
Размер:
897.54 Кб
Скачать

Команда вывода блока текста:

TEXT

сообщение

ENDTEXT

осуществляет вывод "сообщения" один к одному. Удобно для вывода больших блоков текста типа Help.

Команда вывода строк текста \ или \\.

Осуществляет вывод строк текста, результатов выражений и функций, содержимого переменных памяти. Текст можно выводить в файл для создания писем или программ.

Команда "\\" осуществляет (в отличие от "\") переход на новую строку. Выводимый текст может содержать выражения в разделителях << >>. Вывод значения выражения происходит при установке TEXTMERGE ON.

ПРИМЕР:

SET TEXTMERGE TO letter.txt NOSHOW

USE base_1

SET TEXTMERGE ON

\ <<DAY(DATE( ))>>, <<CMONTH(DATE( ))>>

\\ <<YEAR(DATE( ))>>

\

\ Дорогой <<name>> <<fam>> !

\

\ Текст письма

\

MODIFY FILE letter.txt NOWAIT

Часто применяется вывод информации в виде псевдографических диаграмм с использованием функции

REPLICATE ("набор символов","числовое выражение"),

организующей повтор заданного набора символов столько раз, сколько указано в числовом выражении.

ПРИМЕР:

USE base_z

CALCULATE MAX(zar) TO mz

SCAN

? REPLICATE("_", ROUND(60*zar/mz,0))

?? fam AT 61

ENDSCAN

2.5 Команда if

Команды управления являются важнейшим средством построения программ.

IF <выражение>

<команды>

[ELSE <команды>]

ENDIF

Допускаются вложенные IF, для каждого из них должно присутствовать ENDIF.

ПРИМЕР.

IF WOSR <18

@ 10,12 SAY 'ЮНЫЙ ДРУГ'

@ 12,8

2.6 Команда выбора

Команда выбора имеет формат:

DO CASE

CASE <условие>

< команды>

CASE < условие >

< команды>

...............

ENDCASE

Проверяется истинность одного из выражений, выполняются операторы, относящиеся к блоку, где выражение истинно. Команда CASE может заменить выражение IF.

2.7. Организация цикла

Для организации циклов применяется структура с предусловием:

DO WHILE <выражение>

< команды >

[LOOP]

< команды >

<EXIT>

ENDDO

Цикл выполняется до тех пор, пока выражение истинно. По EXIT выход из цикла и передача управления оператору, следующему за ENDDO. Команда LOOP дает переход на начало цикла, пропуска следующих за ним команд до ENDDO.

2.8. Организация fox – меню

Мощный инструмент FoxPro – создание разнообразных меню. Простейшие из таких программ:

FOX-LIGHTBAR-меню.

Используется команда

@ X,Y PROMPT "строка меню" MESSAGE "сообщение"

ПРИМЕР. Демонстрация меню с подсветкой элементов

CLEAR

SET MESSAGE T0 18 CENTER

*&& Вывод сообщений в строку 18 по центру

@ 4, 31 SAY "Заголовок меню"

@ 7, 31 PROMPT "функция 1"

@ 9, 31 PROMPT "функция 2" MESSAGE "сообщение о функции 2"

@ 11,31 PROMPT "функция 3" MESSAGE "сообщение о функции 3"

@ 13,31 PROMPT "Завершение работы" MESSAGE "Выход"

MENU TO R

*&& Переменной R присваиваем номер выбранного пункта меню.

В этой программе командой @ X,Y SAY "Текст заголовка" выводится заголовок в месте экрана с координатами X – номер столбца, Y – номер строки экрана.

Команда @ X,Y PROMPT "Текст строки меню" MESSAGE "Сообщение" выводит пункт меню в строке Y и столбце X, а также сообщение в месте, заданном командой SET MESSAGE TO.

По созданному меню можно перемещаться курсорными клавишами. Выбор пункта осуществляется при нажатии Enter или SpaceBar.

В зависимости от выбранного пункта можно запрограммировать выполнение той или иной функции.

ПРИМЕР создания вертикального меню (FOX-POPUP-меню):

DIMENSION a(4) && задание массива пунктов меню

a(1)="Первая функция"

a(2)="Вторая функция"

a(3)="Третья функция" && a(1)...a(4) - пункты меню

a(4)="Четвертая функция"

n=3 && номер активного пункта при открытии меню

* Описание меню:

@ 8,30 MENU a, 4 TITLE "Заголовок меню"

* 8 – номер строки, 30 – номер столбца, a – название массива пунктов меню,

* 4 – число пунктов меню,

* TITLE - заголовок над пунктами

READ MENU TO n && активизация меню, n – начальная позиция выбора, при выборе пункта меню этот выбор номера пункта запоминается в переменной n.

Для организации повторного обращения к пунктам меню достаточно поставить в цикл (do while .t.) только команды активизации меню (MENU TO…; READ MENU TO…).