Скачать 240.27 Kb.
|
Рис. 6.13. Мастер запросов - шаг 3 Шаг 4 - задание условий сортировки данных. Здесь можно выбрать последовательно 3 поля таблиц, по которым следует сортировать данные, например, n_grup, ball - упорядочить по группам, внутри групп - по баллу в порядке уменьшения (Descending). На шаге 4а можно задать процент или количество рассматриваемых записей, здесь мы оставим без изменений условие all records - все записи. На последнем шаге 5 выберем вариант Save query and modify it in Query Designer - Сохранить запрос и модифицировать его в Конструкторе запросов, зададим путь и имя для сохранения файла запроса. В результате на диске будет создан текстовый файл запроса с расширением *.qpr (например, query_s1.qpr ), который может быть открыт как текстовый файл или в Конструкторе запросов с отображением всех условий запроса. Как видим на рис. 6.14., в верхней половине Конструктора запросов показаны таблицы, используемые для отбора данных и связи между ними, в нижней части - присутствуют страницы для выбора полей таблиц ( Fields ), условий объединения ( Join ), отбора данных ( Filter ), упорядочения ( Order By ), группировки ( Group By ) и разное ( Miscellaneous ). Щелчок правой кнопкой мыши в окне вызовет контекстное меню, в котором можно выбрать позицию Output settings и задать тип сохранения результата отбора данных - Browse, Cursor, Table, Screen. По умолчанию используется режим Screen - данные сохраняются в курсоре (временной таблице, доступной только для чтения, автоматически уничтожающейся при завершении работы системы) и показываются на экране как Browse. увеличить изображение Рис. 6.14. Конструктор запросов Модифицируем запрос для отбора данных только по экзаменационным оценкам за 1 семестр 2005/2006 учебного года. Для этого на странице Filter добавим новые условия: semestr = 1, val(Ocenki.ball)>1, val(Ocenki.ball)<6 и YEAR(Ocenki.data_b) = 2006 (см. рис. 6.15.). увеличить изображение Рис. 6.15. Страница задания условий отбора данных в Конструкторе запросов Текст запроса на языке SQL будет выглядеть следующим образом (в контекстном меню можно воспользоваться командой View SQL ): SELECT Spisok.n_fclt, Spisok.n_grup, Spisok.fio, Ocenki.semestr,; Ocenki.n_predm, Ocenki.ball; FROM ; STUDENTS!SPISOK ; INNER JOIN STUDENTS!OCENKI ; ON Spisok.nz = Ocenki.nz; WHERE Spisok.n_fclt = 1; {для всех условий задан одинаковый } AND Ocenki.semestr = 1; {приоритет (Pri.) равный 0} AND Ocenki.n_predm = 1; AND val(Ocenki.ball) > 1; AND val(Ocenki.ball) < 6; AND YEAR(Ocenki.data_b) = 2006; ORDER BY Spisok.n_grup, Ocenki.ball DESC Выполнив запрос (кнопка Run на стандартной панели), мы получим результат отбора данных (рис. 6.16.). Рис. 6.16. Результаты отбора данных по запросу Более сложный вариант - запрос с группировкой данных и расчетом групповых итогов. Поставим задачу показать средний балл для студенческих групп по экзаменационным оценкам для факультета № 1 за 1-й семестр 2005/2006 учебного года по предмету № 1. Сделать это можно путем модификации в Конструкторе предыдущего запроса. Далее уберем лишние поля на странице Fields. При группировке данных допускается отображение только сгруппированных или итоговых данных, таких как следующие:
Не допускается отображение значений отдельных строк таблицы. Оставим в списке полей только поле группировки - n_grup, и добавим новое поле - выражение для расчета средней оценки - AVG(VAL(ball). На странице Order By запишем одно условие - упорядочить по новому расчетному полю в порядке убывания. На странице Filter оставим все прежние условия отбора. Введем вывод результатов запроса в таблицу query_s2.dbf1 Текст запроса будет выглядеть следующим образом: SELECT Spisok.n_grup, AVG(VAL(Ocenki.ball)); FROM ; STUDENTS!SPISOK ; INNER JOIN STUDENTS!OCENKI ; ON Spisok.nz = Ocenki.nz; WHERE Spisok.n_fclt = 1; AND Ocenki.semestr = 1; AND Ocenki.n_predm = 1; AND VAL(Ocenki.ball) > 1; AND VAL(Ocenki.ball) < 6; AND YEAR(Ocenki.data_b) = 2006; GROUP BY Spisok.n_grup; ORDER BY 2 DESC; INTO TABLE query_s2.dbf Результаты отбора данных по запросу показаны на рис. 6.17. Рис. 6.17. Отбор данных по запросу с группировкой Результаты отбора данных могут быть показаны в виде диаграммы (объект Microsoft Graph). Для этого можно воспользоваться мастером построения диаграмм в VFP - в меню системы Tools - Wizards - All Wizards:, далее в окне полного списка Мастеров выбрать GraphWizard (см. табл. "Полный список Wizard-ов в VFP 9.0"). Результат построения столбчатой диаграммы показан на рис. 6.18. (после дополнительного редактирования объекта в системе VFP). Рис. 6.18. Диаграмма, построенная по результатам запроса Запрос может иметь несколько уровней группировки данных. Добавим в запрос справочные таблицы для показа названий факультетов и предметов. Усложним предыдущий запрос, добавив внешние уровни группировок по названиям факультетов и предметов, и уберем условия отбора данных по номерам факультетов и предметов. Расчет итогов будет выполняться с учетом всех уровней группировки, как показано в следующем примере запроса: SELECT Fclt.name_f, Spisok.n_grup, Predmets.name_p,; AVG(VAL(Ocenki.ball)); FROM ; STUDENTS!SPISOK ; INNER JOIN STUDENTS!OCENKI ; ON Spisok.nz = Ocenki.nz ; INNER JOIN students!fclt ; ON Fclt.n_fclt = Spisok.n_fclt ; INNER JOIN students!predmets ; ON Predmets.n_predm = Ocenki.n_predm; WHERE Ocenki.semestr = ( 1 ); AND VAL(Ocenki.ball) > ( 1 ); AND VAL(Ocenki.ball) < ( 6 ); AND YEAR(Ocenki.data_b) = ( 2006 ); GROUP BY Fclt.name_f, Spisok.n_grup, Predmets.name_p; ORDER BY Fclt.name_f, Spisok.n_grup, Predmets.name_p, 4 DESC; INTO TABLE query_s3.dbf Результаты отбора данных по запросу показаны на рис. 6.19. Рис. 6.19. Отбор данных по запросу с группировкой На основе таблицы query_s3.dbf можно построить перекрестный запрос ( Cross-Tab Wizard ) для отображения в последующем данных на одной трехмерной диаграмме с осями X (Row) - группа, Y (Column) - предмет, Z (Data) - средний балл. Страница 3 мастера с заданием этих параметров показана на рис. 6.20. Рис. 6.20. Страница 3 мастера Cross-Tab Wizard Текст запроса в системе VFP будет выглядеть следующим образом: SELECT Query_s3.n_grup, Query_s3.name_p, AVG(Query_s3.avg_exp_4); FROM ; QUERY_S3.DBF; GROUP BY Query_s3.n_grup, Query_s3.name_p; ORDER BY Query_s3.n_grup, Query_s3.name_p; INTO TABLE q_cross.dbf DO (_GENXTAB) WITH 'Query' BROWSE NOMODIFY Результат выполнения перекрестного запроса показан на рис. 6.21. Рис. 6.21. Данные перекрестного запроса Для полученной таблицы можно построить трехмерную диаграмму с помощью Мастера GraphWizard, показанную на рис. 6.22. (после дополнительного редактирования ее в системе VFP). Рис. 6.22. Диаграмма, построенная по данным перекрестного запроса Разработка проекта и исполняемой программы Основой разработки программ для операционной системы Microsoft Windows в большинстве современных систем (VFP, Delphi, Visual C++, Visual Basic и пр.) является проект ( Project ). Проект выглядит на экране как особое окно, содержащее список всех компонентов, входящих в состав пользовательского приложения, и обеспечивающее легкий доступ к ним. В VFP окно проекта разбито на отдельные страницы по видам компонентов проекта. Создать новый проект можно с помощью Мастера разработки проекта или самостоятельно. Более целесообразно использовать Мастер, зачастую с этого и следует начинать при разработке сложной системы (после разработки базы данных - сразу создать проект с помощью Мастера системы VFP 6.0 -7.0 - этот Мастер при генерации стандартного проекта предложит создать также необходимые вам экранные формы, панели инструментов, отчеты, меню и пр.). Однако иногда бывает необходимо создать небольшую исполняемую программу, работающую с базой данных, - для этого можно создать простейший проект следующим образом. Создаем новый файл проекта ( New - Project - New file ), выбираем для нее папку и даем имя Students.pjx. В соответствующие группы пустого окна проекта добавляем созданные нами ранее экранную форму и отчет. Если вы хотите добавить в проект базу данных, она должна быть помечена как внешняя ( Exclude ). После этого окно проекта будет иметь вид, приведенный на рис. 6.23. (форма Spisok.scx выделена в нем жирно как головная программа). Рис. 6.23. Диаграмма, построенная по данным перекрестного запроса На странице All представлены все виды компонентов, которые могут входить в состав проекта. При работе с большими проектами удобнее пользоваться отдельными страницами проект ( Data, Documents, Classes, Code, Other ). Справа в окне проект расположена группа кнопок, нижняя из которых - Build: - компиляция проекта. Если мы нажмем на нее, появится список для выбора типа компиляции проекта (для тех, кто забыл: компиляция - перевод исходного текста программы на машинный язык, исполняемый в данной операционной системе). Если скомпилировать такой проект в exe-файл (рис. 6.24.), на диске появится файл students.exe, но для данного состава проекта запускаться и нормально работать он будет только из системы VFP (из Windows он запустится и тут же завершит свою работу), т.к. в нем нет головной программы с командой запуска процесса обработки событий read events. 6> |
Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт-Петербургский государственный архитектурно-строительный... | Московский Государственный Открытый Педагогический Университет им. Шолохова, факультет «Иностранных языков», специальность «Учитель... | ||
Московский Государственный Открытый Педагогический Университет им. Шолохова, факультет «Иностранных языков», специальность «Учитель... | Международный открытый шахматный фестиваль "Moscow Open 2011" проводится в г. Москве с 28 января (приезд) по 7 февраля (отъезд) 2011г.... | ||
РФ, Московский государственный университет им. М. В. Ломоносова, Московский физико-технический институт (государственный университет),... | «Новосибирскийнациональный исследовательский государственный университет», Высшим колледжем информатики Университета, Институтом... | ||
Форма торгов: открытый аукцион в электронной форме (далее – открытый аукцион, аукцион) | Открытый конкурс по отбору управляющей организации для управления многоквартирным домом на территории муниципального образования... | ||
Форма торгов: открытый аукцион в электронной форме (далее – открытый аукцион, аукцион) | Форма торгов: открытый аукцион в электронной форме (далее – открытый аукцион, аукцион) |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |