Создание основной базы данных «Пресса», страница 3

Рис.20  Форма запроса и результат

Текст запроса:

SELECT SUM(View_a.period)AS txt;

 FROM pressa!view View_a;

 WHERE View_a.period <= VAL(thisform.Text2.Value);

 INTO CURSOR x

 thisform.Text1.Value = txt

 A = thisform.Text1.Value

SELECT SUM(View_a.period)AS txt2;

 FROM pressa!view View_a;

 INTO CURSOR xx

 thisform.Text1.Value = txt2

 B = thisform.Text1.Value

C = 100 * A

A = C / B

 thisform.Text1.Value = A

·  Найти все виды прессы поступившей из заданного издательства (ввод издательства), чья стоимость больше заданной (ввод стоимости);

 

Рис.21  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT View_a.price, View_a.vid;

 FROM pressa!view View_a;

  WHERE View_a.price > VAL(thisform.Text1.Value);

  AND View_a.izdat = thisform.Combo1.Value

·  Найти всю прессу поступившую от заданного издательства, чья стоимость больше, чем средняя стоимость заданной прессы (ввод наименования), поступившей из заданной страны (ввод наименования страны);

Рис.22  Форма запроса(сверху) и результат(снизу)

Текст запроса:

SELECT View_a.vid, View_a.name, View_a.izdat, View_a.strana;

  FROM pressa!view View_a;

   WHERE View_a.izdat = thisform.Combo3.value;

   AND View_a.price > (SELECT AVG(View_a.price);

    from pressa!view View_a;

     where View_a.vid = thisform.Combo1.value);

   AND View_a.Strana = thisform.Combo2.value

·  Найти долю дешевой прессы (чья стоимость меньше заданной, ввод стоимости), поступившей от заданного издательства и в целом;

Рис.23  Форма запроса и результат

Текст запроса:

if thisform.check1.value = 1

 SELECT SUM(View_a.price)AS txt;

 FROM pressa!view View_a;

 WHERE View_a.price <= VAL(thisform.Text2.Value);

 INTO CURSOR x

 thisform.Text1.Value = txt

 A = thisform.Text1.Value

SELECT SUM(View_a.price)AS txt2;

 FROM pressa!view View_a;

 INTO CURSOR xx

 thisform.Text1.Value = txt2

 B = thisform.Text1.Value

C = 100 * A

A = C / B

 thisform.Text1.Value = A

endif

if thisform.check1.value = 0

SELECT SUM(View_a.price)AS txt;

 FROM pressa!view View_a;

 WHERE View_a.price <= VAL(thisform.Text2.Value);

 AND View_a.izdat = thisform.Combo1.Value;

 INTO CURSOR x

 thisform.Text1.Value = txt

 A = thisform.Text1.Value

SELECT SUM(View_a.price)AS txt2;

 FROM pressa!view View_a;

 INTO CURSOR xx

 thisform.Text1.Value = txt2

 B = thisform.Text1.Value

C = 100 * A

A = C / B

 thisform.Text1.Value = A

endif

·  Найти среднюю стоимость прессы, проданной за определенный промежуток времени (ввод интервала);

Форма для запроса

 

Рис.24  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT AVG(View_a.price);

  FROM pressa!view View_a;

   WHERE View_a.period >= VAL(thisform.Text1.value);

   AND View_a.period <= VAL(thisform.Text2.value);

·  Найти всю прессу, чья стоимость выше, чем средняя стоимость прессы заданного издательства;

Рис.25  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT  View_a.name, View_a.izdat, View_a.price;

  FROM pressa!view View_a;

   WHERE View_a.price > (SELECT AVG(View_a.price);

      FROM pressa!view View_a;

       WHERE View_a.izdat = thisform.Combo1.value)

·  Найти прессу, которую лучше всего раскупают, указать параметры (стоимость, издательство и т.д.).

Рис.26  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT View_a.name, View_a.vid, View_a.Spros;

 FROM pressa!view View_a;

  WHERE View_a.spros = (SELECT MAX(View_a.spros);

   FROM pressa!view View_a;

    WHERE View_a.izdat = thisform.Combo1.value)


8. Выводы.

В ходе выполнения расчетно-графической работы были закреплены (и приобретены новые) навыки работы в среде Visual FoxPro 6.0. Получен опыт проектирования баз данных, работы с ними посредством запросов на языке SQL, а также приобретен опыт в управлении базами данных. Также были закреплены навыки работы с меню (Command, Submenu, Procedure), с формами (CommandButton, Combo Box, Text Box, Edit Box, Container и др.), с массивами данных.  

Для работы с данными создана единая форма, в которой имеются средства для редактирования базы и формирования различных запросов к ней.

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

9. Список использованной литературы.

1.  Омельченко Л.Н. Самоучитель Visual Foxpro 8. – СПб.: БХВ – Петербург, 2005.

2.  Трошина Г.В. Методические указания к лабораторному практикуму. – НГТУ 2004.

3.  Электронный учебник по Visual FoxPro.