4.1   Создание базы данных

База данных создается с помощью Диспетчера проектов Visual FoxPro. Сначала создадим новый проект. Назовем его Kurs и разместим его в папке MyProject.

Рисунок 4.1.1 – Окно диспетчера проектов

Все компоненты, которые мы сможем создать, можно связать с проектом, при этоим они будут храниться в “родном” каталоге проекта.

Теперь можно создавать базу данных. Щелкнув правой кнопкой мыши на подраздел “Базы данных” раздела “Данные”. Необходимо ввести имя будущей базы данных. Новую базу данных сохраняем в папке проекта. После этого появляется окно Дизайнера баз данных. С его помощью можно добавлять в базу данных новые компоненты: таблицы, запросы, локальные и удаленные представления, соединения и внедренные процедуры.

Рисунок 4.1.2 – Окно Дизайнера баз данных

С помощью Дизайнера баз добавим в проект таблицу.

После присвоения имени новой таблице создаем ее структуру в соответствии с заданием. Структура таблицы представляет собой список полей и их характеристику: тип данных, размер, длину символьного представления (для типа Character) и др. В поле “Caption” можно указать надпись-заголовок столбца для каждого поля, которая будет высвечиваться при отображении таблицы.

Рисунок 4.1.5 – Создание структуры таблицы

После завершения ввода можно просмотреть полученную структуру пустой таблицы, выбрав в меню команду Browse.

Заполнить таблицу можно при помощи той же команды, если выбрать в меню “Edit” пункт “Append mode” (“Режим добавления”). Результат заполнения таблицы данными показан на рисунке 4.1.6.

Рисунок 4.1.6 – Записи таблицы Table_Goods.

4.2   Выполнение фильтрации, индексации, поиск записей

В FoxPro есть команда

SET FILTER TO <условие>,

которая позволяет установить FOR-условие для всех без исключения команд обработки данных. Здесь <условие> указывает на то, какие именно записи могут быть доступны для обработки.

Выполним фильтрацию по полю “Поставщик”. Если после этого, например, написать команду BROWSE, то это будет эквивалентно BROWSE FOR supplier=’Россия’.

Рисунок 4.2.1 – Результат фильтрации по полю supplier.

Создание индексных файлов в базах данных преследует цель ускорения поиска записей и для упорядочения записей в таблицах. Вообще в FoxPro существуют 2 типа индексных файлов: *.idx (обычный индексный файл) и *.cdx (составной индексный файл, содержащий несколько индексов). В нашем случае требуется произвести индексацию по одному полю – полю “Количество товара”, поэтому создаем обычный индексный файл indtab.idx в папке проекта с помощью команды:

INDEX on amount to C:\MY_WORKS\TRANSF~1\MYPROJ~1\indtab

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

LIST amount, name_unit, price_unit

Полученный результат отображен на рисунке 4.2.1

Рисунок 4.2.1 – Результат индексирования.

Отобразим все записи о товарах низкого качества

BROWSE FOR quality_goods='низкое'

Рисунок 4.2.2 – Записи о товарах низкого качества.

Найдем номер первой из записей о товаре в количестве 10.

LOCATE FOR amount=10

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

Рисунок 4.2.3 – Строка состояния FoxPro.

Полный текст программы приведен в приложении А.

4.3   Поиск записей с помощью циклов WHILE и SCAN

Для последовательного поиска самой первой записи базы данных, удовлетворяющей заданному FOR-условию и до тех пор, пока соблюдается WHILE-условие (если есть), применяется команда LOCATE. Для продолжения поиска, начатого командой LOCATE, применяется команда CONTINUE.

Реализация итерационных циклов, т. е. циклов с заранее известным условием их окончания и неизвестным числом повторов, выполняется следующей инструкцией:

DO WHILE <условие>

<команды>

ENDDO

Для последовательного просмотра базы данных, поиска всех записей, удовлетворяющих условиям и выполнения над найденными записями каких-либо операций, служит команда SCAN.

SCAN[<границы>] [FOR <условие>]

<команды>

ENDSCAN

По заданию необходимо найти все товары, поставленные из России, а также общую стоимость всех товаров, поступивших на склад в период с 15.01.2001 по 15.03.2001. Каждый из этих запросов, в свою очередь, реализован в 2-х вариантах: с использованием цикла WHILE и с использованием цикла SCAN. Полный текст программы приведен в приложении Б, а результат работы – на рисунке 4.3.1.

Рисунок 4.3.1 – Результаты работы программы.

4.4   Построение меню и выдача сообщений

Для организации в программах POPUP-меню необходимо сначала определить параметры будущего меню с помощью команды

DEFINE POPUP <POPUP- меню>,

куда входит еще довольно много параметров. Выдача меню производится по команде

ACTIVATE POPUP <POPUP-меню>.

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

ON KEY [LABEL< имя клавиши>] [команда].

По заданию требуется вывести POPUP-меню с полями Name_unit, Quality_goods, Supplier, если в таблице БД есть товары с ценой < 100 р. Кроме того, при нажатии Alt+ F1 необходимо вывести сообщение ‘Ошибка памяти’. Полный текст программы приведен в приложении В, а результат работы – на рисунках 4.4.1 и 4.4.2.

Рисунок 4.4.1 – POPUP-меню.

Рисунок 4.4.2 – Сообщение, выдаваемое по Alt+F1.


Информация о работе «Курсовик по FoxPro»
Раздел: Информатика, программирование
Количество знаков с пробелами: 35714
Количество таблиц: 5
Количество изображений: 0

0 комментариев


Наверх