Структура связей между таблицами представлена на рис.4
Рис.4. Связи между таблицами базы данных ‘pressa’
Как уже было сказано выше, данная программа выполнена на основе меню. На рис.5 представлено меню, которое появляется сразу же после запуска программы
Рис.5. Внешний вид меню пользователя
Рис.6. Подменю пункта ‘edit’ (редактирование)
Рис.7. Подменю пункта ‘view’(просмотр)
3.Третий пункт называется ‘queries’(запросы). Он позводяет осуществлять различные запросы в базе данных и выводить на экран их результат
Рис.8. Подменю пункта ‘queries’(запросы)
4.Четвертый пункт называется ‘About’. В нем сдержтся информация о программе и о ее разработчике
Рис.9. Пункт меню “About”
При запуске меню активируется меню, которое предоставляет доступ к основным формам для работы с базой данных. Все запросы выполнены по «шаблону» - каждый запрос имеет примерно одинаковый вид. Это заголовок, в котором детально описан запрос, поля для выбора и ввода данных (combo box, text box). Для того, чтобы вызвать меню нужно в менеджере проекта, выбрав вкладку ‘menu’, нажать копку ‘run’. Либо в оболочке Visual FoxPro 6.0 (или другой с номером выше 6.0.) в меню ‘Program’ выбрать пункт ‘Do’, после чего указать путь к файлу menu.mpr. Стандартное меню исчезнет, и появится меню данной программы. После этого можно выбирать нужные команды меню и осуществлять необходимые действия.
По заданию необходимо было реализовать 18 запросов. Ниже приведен текст каждого из них и результат выполнения этого запроса.
Form_01.scx
Для каждого вида прессы выдать список, отсортированный:
1. В алфавитном порядке по наименованию
2. По тиражу
3. По стоимости
Рис.10. Форма “form_01.scx”
Обработка кнопки «Сортировка в алфавитном порядке»:
SELECT Press.name_press, typ.Type_ as Type_of_press, Press.price;
FROM pressa!press INNER JOIN pressa!typ;
ON Press.id_type = Typ.id_type;
WHERE press.id_type=(SELECT typ.id_type FROM pressa!typ WHERE typ.Type_=thisform.combo1.value);
ORDER BY Press.name_press
Обработка кнопки «Сортировка по тиражу»:
SELECT Press.name_press, Press.circulation, typ.Type_ as Type_of_press;
FROM pressa!press FULL JOIN pressa!typ;
FULL JOIN pressa!publisher ;
ON Press.id_publisher = Publisher.id_publisher ;
ON Press.id_type = Typ.id_type;
WHERE press.id_type=(SELECT typ.id_type FROM pressa!typ WHERE typ.Type_=thisform.combo1.value);
ORDER BY Press.circulation
Обработка кнопки «Сортировка по стоимости»:
SELECT Press.name_press, Press.price, typ.Type_ as Type_of_press;
FROM pressa!press FULL JOIN pressa!typ;
FULL JOIN pressa!publisher ;
ON Press.id_publisher = Publisher.id_publisher ;
ON Press.id_type = Typ.id_type;
WHERE press.id_type=(SELECT typ.id_type FROM pressa!typ WHERE typ.Type_=thisform.combo1.value);
ORDER BY Press.price, Press.name_press
Результаты работы запроса:
Рис.11.Результаты работы формы “form_01.scx”
Form_02.scx
Найти самое дорогое издание, самое дешевое, среднюю стоимость для каждого вида прессы и в целом
Рис.12. Форма “form_02.scx”
Обработка кнопки «Самое дорогое издание»:
LOCAL kol(1)
SELECT count(typ.type_);
FROM pressa!typ;
INTO ARRAY kol
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.