Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_№4-5.doc
Скачиваний:
9
Добавлен:
25.03.2016
Размер:
288.26 Кб
Скачать
    1. Понятие о рабочих областях

В FoxPro можно обрабатывать сразу несколько файлов БД (до 25). Каждый такой файл типа DBF и все вспомогательные файлы (например, индексные) открываются в своей отдельной рабочей области. Переход из области в область осуществляется командой SELECT <рабочая область>. Первые 10 рабочих областей идентифицируются номерами 1-10 или буквами A – J. Области с 11-й по 25-ю обозначаются номерами или буквенно-цифровыми именами W11 – W25. Если в качестве параметра указать цифру 0, произойдет переход в первую свободную рабочую область.

Область, в которой мы находимся в данный момент, называется активной рабочей областью, и в ней можно работать с находящейся здесь базой данных, используя все допустимые команды системы. Одновременно даже в одной команде можно иметь доступ (с некоторыми ограничениями) к полям других баз. В этом случае имя поля из неактивной области – составное. Собственно имени поля тогда предшествует имя рабочей области, разделенные знаками “->” или (что более удобно) точкой: A->name или A.name . При входе в СУБД активизируется область 1 (или А), и, если Вы работаете только с одной базой, заботиться об открытии областей не нужно.

    1. Связь вида одна_запись_к_одной

SET RELATION TO ... (см.Помощь) связывает указатель записей в активной рабочей области с указателями записей из других рабочих областей, имена которых указаны после слова INTO, по заданному общему полю (ключу). Единственное условие – файл, с которым устанавливается связь, должен быть проиндексирован по этому полю.

П р и м е р:

SELECT a

USE brig1

SELECT b

USE kadr

INDEX ON tab TO kadrtab && (проиндексировать активную БД по полю tab, создать файл kadrtab.idx)

SELECT a

SET RELATION TO tab INTO b && (установить связь по полю tab с рабочей областью b)

LIST tab, vir, b.fam

Здесь выводятся записи файла brig1.dbf, в которые включено поле соответствующих им фамилий kadr.dbf (b.fam). Связь между всеми файлами разрывается командой SET RELATION TO без параметров.

    1. Связь вида одна_запись_ко_многим

Следующая команда устанавливает связь такого типа между двумя или несколькими БД:

SET SKIP TO [<область1> [,<область2>]..] . При этом с каждой записью из старшей базы могут быть сцеплены несколько записей из младшей базы. Связь может быть установлена сразу с несколькими младшими базами, находящимися в указанных <областях>.

Аппарат сцепления баз данных является мощным средством доступа к “родственным” данным.

  1. СОЗДАНИЕ КОМАНДНЫХ ФАЙЛОВ

Программы, ориентированные на прямое программирование процессов обработки данных, создаются, например, с помощью внутреннего встроенного текстового редактора FoxPro, вызываемого командой MODIFY COMMAND/FILE ... (см. Помощь). Если используется вариант MODIFY COMMAND, по умолчанию вновь создаваемый файл считается командным (программным) файлом и ему присваивается расширение PRG, если оно не задано явно.

Созданная в редакторе программа запоминается указанном в команде файле и может быть в дальнейшем вызвана на исполнение командой DO <имя командного файла>. Расширение PRG указывать не обязательно.

Полное меню редактора можно увидеть, выбрав позицию Edit в главном меню FoxPro.

  1. Команды ввода-вывода

Используя команды FoxPro, можно прибегнуть к индивидуальному определению места и формы предъявления данных для каждого поля/переменной, использовав специальные команды ввода/редактирования.

CLEAR – команда очистки экрана, освобождает весь экран/окно от имеющейся информации и устанавливает курсор в левый верхний угол экрана/окна.

@<Y1,X1> [CLEAR/CLEAR TO <Y2,X2>] – команда очищает в окне/экране прямоугольник с координатами верхнего левого угла Y1,X1 и нижним правым углом окна/экрана (если указана опция CLEAR) или произвольными координатами Y2,X2 нижнего правого угла.

@...SAY...GET – команда ввода-вывода. Она используется для форматированного ввода-вывода данных на экран/принтер (см.Помощь).

Команды @...GET позволяют осуществить только предъявление данных. Наделение GET-полей аппаратом редактирования и фактическое запоминание экранных образов данных в полях/переменных осуществляются другой командой: READ, которая стоит обычно всегда вслед за командой/командами @...GET.

Самостоятельно познакомьтесь с командами вывода ?/??, TEXT, \ и \\, а также командами ввода INPUT и ACCEPT.

  1. Работа с переменными

В FoxPro разрешается иметь переменные тех же типов, что и поля. Переменным и массивам переменных даются имена по тем же правилам, что и полям.

Команда присваивания. <переменная>=<выражение> или STORE <выражение> TO <имена переменных> – эти команды создают переменные и присваивают им значения. Вторая форма команды предпочтительнее в случае, если нужно одно и то же значение присвоить сразу нескольким переменным.

Тип переменной определяется типом последнего присваиваемого ей выражения!!! Символьные константы должны быть взяты в апострофы, кавычки или квадратные скобки.

Объявление массивов: DIMENSION d(10).

  1. Команды управления

Команды управления, как Вам известно, являются важнейшим средством построения программ. Эти команды могут быть использованы ТОЛЬКО в программах.

IF – в зависимости от условия команда выполняет те или иные <команды>, находящиеся внутри конструкции IF...ENDIF.

IF <условие>

<команды>

[ELSE

<команды>]

ENDIF

Работает так же, как и в Фортране, и в Си. IF – он и в Африке IF.

DO CASE – эта конструкция решает задачи, аналогичные команде IF, но в ней может быть указано сразу несколько условий, которые последовательно проверяются во всех фразах CASE.

Команда аналогична команде switch в Си.

Команда очень удобна для обработки выбора из меню в программах. Разрешается вложение команд DO CASE, IF.