Пр 1. Министерство энергетики, промышленности и связи ставропольского края
Скачать 125.89 Kb.
|
Практическая работа №6-7Тема: «Создание форм. Построение запросов и отчетов» Цель: научиться создавать формы, строить запросы к СУБД и отчеты; закрепить приобретенные навыки. Задание: Изучите «Пояснения к работе» и «Исходные данные к работе». Изучить создание формы и отчета печати сводной ведомости. Изучить создание формы и отчета список студентов определенной группы с указанием среднего балла. Создать СУБД с формами и отчетами по индивидуальному заданию из 3 практической рабботы. Исходные данные для выполнения практических работ Необходимо автоматизировать начисление стипендии для студентов в группах колледжа. Стипендия начисляется на основе среднего балла студента. Средний балл вводится из аттестационных ведомостей. Зачисление и отчисление студентов делается на основе приказов. Запросы пользователей: 1-ый запрос - Расчетно- платежная ведомость по группе .....за(мес,год)
2-ой запрос - Сводная ведомость за (мес, год)
3 -й запрос - Список студентов определенной группы с указанием среднего балла Структура программного комплекса
Ход работы. Создание проекта Выберите в меню File - New - Project - NewFile. Задайте имя папки, в которую будет помещен ваш проект и имя файла проекта (stipend(.Откроется диалоговое окно Project Manager, в котором выполните следующие действия: на вкладке DATA выберите DATABASE, щелкните по кнопке ADD и выберите свою базу данных, чтобы включить ее в состав проекта. на вкладке CODE выберите PROGRAMS, щелкните по кнопке NEW, чтобы включить в состав проекта главную программу, в которой будут выполняться команды установок, открытия базы данных и т.п. В окне Program введите команды начальных установок: SETCENTURYON && установить формат ГОД - 4-х значным SETDATEFRENCH && установить французский формат даты SETSAFETYOFF && отключить выдачу предупреждающих сообщений PUBLICD1, D2, D3, D4 &&создать глобальные переменные для ввода параметровотчетов OPEN DA TABASE STIP DO FORM ST0 CLOSEALL *QUIT Сохраните программу под именем prog_stip. Создание формы для реализации главного меню программы (st0) На вкладке DOCUMENTS диалогового окна Project Manager выберите FORMS, щелкните по кнопке NEW - NEW FORM, чтобы включить в состав проекта форму, на которой будут расположены кнопки для реализации главного меню программы. Сохраните форму под именем STO. В окне Инспектора объектов на вкладке АН задайте для формы свойство Caption = "Стипендия". Чтобы отобразить на экране панель инструментов, выберите View - Form Controls Toolbar. Установите на форме кнопку Command Buttonl, установите ее свойство Caption = "Зачисление студента". В окне Инспектора объектов на вкладке Methods выберите Click Event и напишите для этого события код DO FORMST11 Установите на форме кнопки Button2 ("Отчисление студента"), Button3 (“Ввод оценок"), Button4 .. ("Расчет стипендии"), Button5 ("Печать ведомости по группам"), Button6 ("Печать сводной ведомости"), Button7 ("Списки студентов"). Сохраните форму и закройте ее . Щелкните по кнопке Build в окне проекта Project Manager и в появившемся диалоговом окне выберите Application(App). Установите опции Display Error, Run After Build. Щелкните по кнопке OK, Fox создаст приложение на основе вашего проекта и запустит его на выполнение. Создание формы для зачисления студентов (st11) Выберите в меню File - New - Form - NewFile. Задайте имя формы, и ее свойства: заголовок формы - свойство Caption = 'Зачисление студентов', ее размеры. Для установки окружения формы щелкните правой кнопкой мыши по форме, выберите Data Environment и кнопкой Add добавьте таблицы базы данных - СТУДЕНТ и ГРУППА. Установите на форме компонент Labell со свойством Caption - ‘Фамилия’, с помощью свойства Font... выберите параметры шрифта. Установите на форме компонент TextBox1 для ввода фамилии студента. Установите компоненты Label и TextBox для остальных полей таблицы, если нужно. Установите компонент ComboBox для того, чтобы пользователь мог выбрать название группы, в которую зачисляет студента. Это удобно для пользователя и позволит ему избежать ошибок, возможных при вводе номера группы вручную. Щелкните правой кнопкой мыши по компоненту ComboBox1, выберите Builder... В появившемся диалоговом окне на вкладке List Items выберите поля таблицы ГРУППА: НАЗВАН И Е_ГРУППЫ и НОМЕР_ГРУППЫ. На вкладке Value выберите в качестве возвращаемого значения поле НОМЕР ГРУППЫ. Установите на форме кнопку Command Button1 со свойством Caption -’Сохранить’ и кнопку Command Button2 со свойством Caption -’Отмена’ (Выйти без сохранения). Для того, чтобы при щелчке по кнопке ’Сохранить’ производилась запись сведений студента в таблицу СТУДЕНТ на вкладке Method выберите для этой кнопки событие Click Event и напишите для него метод: SQL- запрос для добавления записи в таблицу СТУДЕНТ В поле FAM занесем введенный пользователем текст в TextBox1 В поле n_GRUP(HOMep группы) занесем преобразованное в числовой формат значение номера группы, выбранное пользователем в Combo1 INSERT INTO STUDENT (FAM,n_GRUP); VALUES (ThisForm.Text1.Text, VAL(ThisForm.Combo1.Value) ) Выдать для пользователя сообщение о вводе MESSAGEBOX(ThisForm.Text1.Text-’Зачисленвгруппу '- ThisForm.Combo1.DisplayValue) Освободить форму из памяти ThisForm.Release Запустите форму на выполнение (в окне Project Manager на вкладке Documents выберите Form – st0 и нажмите кнопку Run или щелкните правой кнопкой мыши по форме и выберите команду Run Form) и проверьте ее работоспособность. Щелкните по кнопке Build в окне проекта, вновь создайте приложение Application(App) и запустите его на выполнение для проверки. Создание формы для отчисления студентов (st12) При отчислении студента нужно сначала выбрать группу, а затем из списка группы фамилию отчисляемого студента. Для выбора группы будем использовать компонент ComboBox, а для выбора фамилии студента - Grid. Фамилию выбранного студента будем отображать на форме с помощью метки. Выберите в меню File - New - Form - NewFile. Задайте имя формы, и ее свойства: заголовок формы - свойство Caption, ее размеры. Сохраните форму под именем st12. Для установки окружения формы щелкните правой кнопкой мыши, выберите DataEnvironment и кнопкой Add добавьте необходимые таблицы базы данных - СТУДЕНТ и ГРУППА. Установите на форме компонент ComboBox1. Щелкните правой кнопкой мыши по компоненту ComboBox1, выберите Builder... В появившемся диалоговом окне на вкладке List Items выберите поля таблицы ГРУППА: НАЗВАНИЕ_ГРУППЫ и НОМЕР_ГРУППЫ. Установите на форме компонент метка Label1 со свойством Caption = "Выберите группу" и разместите его слева или сверху от ComboBox1. Установите на форме компонент Grid 1 Установите на форме компонент метка Label2 и разместите его под Grid 1. Щелкнув правой кнопкой по компоненту Grid1, выберите Builder и задайте поля, отображаемые компонентом: №ТАБ, ФАМИЛИЯ, №ГРУППЫ (это можно сделать также с помощью установки свойства ControlSourse для каждого столбца). Щелкнув правой кнопкой по компоненту Grid1, выберите Builder и на вкладке Relationship установите значение внешнего ключа в родительской таблице (ГРУППА.НОМЕР_ГРУППА) и имя индекса в дочерней таблице (по номеру группы). Для каждого столбца (объект Column в списке объектов) установите шрифт (Font) для заголовка (Header) и для текста (Text) Выберите для объекта Gridl событие AfterRowColChange на вкладке Method и напишите для него код: ThisForm.Label2. Caption = stud. fam Теперь при переходе на какую-либо ячейку Grid1 в метке будет отражена фамилия выбранного студента. Установите на форме кнопку Command Button1 со свойством Caption -'Отчислить”. На вкладке Method выберите событие Click Event и напишите для него метод: SETDELETEDON && - установить режим, при котором не показываются записи, помеченные для удаления SELECTstud DELETE && -удалить текущую запись (пометить для удаления) SELECT grupp ThisForm.Refresh &&- обновитьформу Установите на форме кнопку Command Button2 со свойством Caption -'Отмена'. На вкладке Method выберите событие Click Event и напишите для него метод: SELECT stud RECALL SELECT grupp ThisForm. Refresh Восстановление записи возможно, если указатель внутри таблицы не перемещался. Если допустимо перемещение указателя внутри таблицы, то в начале процедуры необходимо добавить команду SETDELETEDOFF. Установите на форме кнопку Command Button3 со свойством Caption -'Выход'. На вкладке Method выберите событие Click Event и напишите для него метод: ThisForm. Release Запустите форму на выполнение и проверьте ее работоспособность. Щелкните по кнопке Build в окне проекта, вновь создайте приложение Application(App) и запустите его на выполнение для проверки. Создание формы для ввода оценок (st13) Для ввода оценок также нужно сначала выбрать группу, так как оценки обычно выставляются для всей группы, а затем по списку группы напротив фамилии студента ввести оценку. Для выбора группы будем использовать компонент ComboBox, а для ввода оценок - Grid. Выберите в меню File - New - Form - NewFile. Задайте имя формы, и ее свойства: заголовок формы - свойство Caption, ее размеры. Сохраните форму под именем st13. Для установки окружения формы щелкните правой кнопкой мыши, выберите DataEnvironment и кнопкой Add добавьте необходимые таблицы базы данных - СТУДЕНТ и ГРУППА. Установите на форме компонент ComboBox1 Щелкните правой кнопкой мыши по компоненту ComboBox1, выберите Builder... В появившемся диалоговом окне на вкладке List Items выберите поля таблицы ГРУППА: НАЗВАНИЕ_ГРУППЫ и НОМЕР_ГРУППЫ. Установите на форме компонент Grid1 Щелкнув правой кнопкой по компоненту Grid1, выберите Builder и задайте поля, отображаемые компонентом: №ТАБ, ФАМИЛИЯ, ОЦЕНКА (это можно сделать также с помощью установки свойства ControlSourse для каждого столбца). Щелкнув правой кнопкой по компоненту Grid1, выберите Builder и на вкладке Relationship установите значение внешнего ключа в родительской таблице (ГРУППА.НОМЕР ГРУППА) и имя индекса в дочерней таблице (по номеру группы). Щелкнув правой кнопкой по компоненту Grid1, выберите Builder и на вкладках Style и Layout выберите подходящее оформление таблицы. Для каждого столбца (объект Column в списке объектов) установите шрифт (Font) для заголовка (Header) и для текста (Text) Установите на форме кнопку Command Button1 со свойством Caption -'Выход'. На вкладке Method выберите событие Click Event и напишите для него метод: ThisForm. Release Запустите форму на выполнение и проверьте ее работоспособность. Попробуйте ввести неверную оценку (например,6), проверьте что ограничения целостности, установленные при создании БД, контролируются СУБД. Щелкните по кнопке Build в окне проекта, вновь создайте приложение Application(App) и запустите его на выполнение для проверки. Создание программы для расчета стипендии (st2) Создайте программу для расчета величины начисленной стипендии в зависимости от оценки студента и расчета удержаний в размере 1% от начисленной стипендии. Выберите в меню File - New - Programm - NewFile. Расчет можно выполнить с помощью SQL - запроса: UPDATE stud SET stip = 250 WHERE ocen=5 UPDATE stud SET stip = 200 WHERE ocen=4 UPDATE stud SET stip = 0 WHERE ocen<4 Создание формы печати расчетно-платежной ведомости Создайте форму st31, разместив на ней компонент TextBox для ввода периода с соответствующими метками (Label), а также ComboBox для выбора группы из списка. Разместите на форме кнопку ОК. Для TextBox задайте свойство маски ввода InputMask - 99/99/9999. Для задания свойств компонента ComboBox воспользуйтесь построителем (пункт Builder контекстного меню). На вкладке Listltem задайте поля "название” и "номер группы". На вкладке Value установите "номер группы" в качестве поля, которое будет заноситься в свойство Value данного компонента. Для кнопки ОК создайте метод для события Click Event. d4=VAL(ThisForm.Combo1.Value) && В переменную d4 поместить номер группы d2=(ThisForm. Text1.Text) && В глоб.перемен.d2 - период дЗ=ГРУППА.ИМЯ ГРУППЫ && В глоб. перемен. d3- название группы . * SQL запрос, результат которого поместить в р1 SELECT ГРУППА.n_tab, ГРУППА.fат, ГРУППА.stip, ГРУППА.stip*0.01 asuder, ГРУППА.stip- ГРУППА.stip*0.01 asvydachaFROM ГРУППА ; where ГРУППА.n_grup=d4 INTO TABLE p1 REPORT FORM po1.frx preview && предварительныйпросмотр *REPORT FORM pi1 TO PRINTER prompt && вывод отчетанапечать ThisForm. Release && Закрыть форму Создайте отчет с именем ро1. На вкладке DOCUMENTS диалогового окна Project Manager выберите REPORTS, нажмите на кнопку New. В появившемся диалоговом окне выберите New REPORT. На полосе PageHeader с помощью команды меню REPORT- Insert Controls разместите: метку (Label) с надписью "Расчетная ведомость за период ", поле (Field), задав для него в качестве выражения глобальную переменную d2, метку (Label) с надписью "для группы ", поле (Field), задав для него в качестве выражения глобальную переменную d3. На полосе Detail установите поля (Field), задав для них в качестве выражений поля таблицы Р1 {cm.SQL - запрос). На полосе PageFooter (конец страницы) разместите поля Начислено, Удержано, К выдаче и задайте для них операцию суммирования, щелкнув по кнопке Calculation. Просмотрите отчет (Preview в контекстном меню). Запустите программу из меню и проверьте ее работоспособность. Контрольные вопросы: 1 Какие команды использовали во время выполнения данной практической работы? 2 Что нового изучили при создании данного проекта? |