Найти(в целом):
LOCAL tmp1(1)
LOCAL tmp(1)
SELECT count(press.name_press);
FROM pressa!press;
INTO ARRAY tmp;
SELECT count(press.name_press);
FROM pressa!press;
WHERE press.price <=thisform.text1.value;
INTO ARRAY tmp1;
result=tmp1/tmp*100
MessageBox("Доля дешевой прессы: " + alltrim(str(result))+" %")
Найти(с учетом издательства):
LOCAL tmp1(1)
LOCAL tmp(1)
SELECT count(press.name_press);
FROM pressa!press;
INTO ARRAY tmp;
SELECT count(press.name_press);
FROM pressa!press;
WHERE press.price <=thisform.text1.value;
AND press.id_publisher==(select publisher.id_publisher FROM pressa!publisher WHERE publisher.publisher_=thisform.combo1.value);
INTO ARRAY tmp1;
result=tmp1/tmp*100
MessageBox("Доля дешевой прессы: " + alltrim(str(result))+" %")
Результат работы запросов:
Рис.31.Результаты работы формы “form_11.scx”
Form_12.scx
Найти среднюю стоимость прессы, проданной за определенный промежуток времени (ввод интервала)
Рис.32. Форма “form_12.scx”
Обработка кнопки «Найти»:
LOCAL tmp(1)
date_1=thisform.text1.value
date_2=thisform.text2.value
SELECT avg(press.price);
FROM pressa!press;
WHERE press.date_of_sale between date_1 AND date_2;
INTO ARRAY tmp
MessageBox("Средняя стоимость прессы,проданной за данный период: " + alltrim(str(tmp)))
SELECT press.name_press, press.price,press.date_of_sale;
FROM pressa!press;
WHERE press.date_of_sale between date_1 AND date_2;
Рис.33.Результаты работы формы “form_12.scx”
Form_13.scx
Найти всю прессу, чья стоимость выше, чем средняя стоимость прессы заданного издательства
Рис.34. Форма “form_13.scx”
Обработка кнопки «Найти»:
LOCAL tmp(1)
LOCAL tmp1(1)
SELECT DISTINCT(press.id_publisher);
FROM pressa!press;
WHERE press.id_publisher==(SELECT publisher.id_publisher FROM pressa!publisher WHERE publisher.publisher_=thisform.combo1.value);
INTO ARRAY tmp
SELECT AVG(press.price) FROM pressa!press WHERE press.id_publisher=tmp;
INTO ARRAY tmp1
MessageBox("Средняя стоимость прессы заданного издательства: " +alltrim(str(tmp1)))
SELECT press.name_press, press.price, publisher.publisher FROM pressa!press inner join pressa!publisher on press.id_publisher==publisher.id_publisher WHERE press.price>=(SELECT AVG(press.price);
FROM pressa!press WHERE press.id_publisher=tmp);
ORDER BY press.price
Результат работы запроса:
Рис.35.Результаты работы формы “form_13.scx”
Form_14.scx
Найти прессу, которую лучше всего раскупают, указать параметры (стоимость, издательство)
Рис.36. Форма “form_14.scx”
Обработка кнопки «Самая популярная пресса»:
SELECT Press.name_press, Publisher.publisher_, Press.price, Press.sold_press;
FROM pressa!press INNER JOIN pressa!publisher;
ON Press.id_publisher = Publisher.id_publisher;
WHERE Press.sold_press = (SELECT Max(press.sold_press);
FROM pressa!press )
Результат работы запроса:
Рис.37.Результаты работы формы “form_14.scx”
В ходе выполнения расчетно-графической работы были закреплены (и приобретены новые) навыки работы в среде Visual FoxPro 6.0. Получен опыт проектирования баз данных, работы с ними посредством запросов на языке SQL, а также приобретен опыт в управлении базами данных. Также были закреплены навыки работы с меню (Command, Submenu, Procedure) и с формами (CommandButton, Combo Box, Text Box, Edit Box, Container и др.)
1. Лекции по дисциплине «Базы данных»
2. Visual FoxPro 6.0 Help System (пакет MSDN)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.