Скачать 435.83 Kb.
|
3. На созданной форме какое-либо изменение данных невозможно. Поэтому добавим на форму кнопки, с помощью которых будет производиться модификация данных (рис. 12.2). Рис. 12.2. Соответственно, первая кнопка Редактировать предназначена для редактирования оценки ученика, а вторая – для редактирования данных об уроке. Кнопка Удалить предназначена для удаления урока. 4. Для редактирования урока необходимо создать новую форму. На форму добавляем следующие компоненты, как показано на рисунке (рис. 12.3): Рис. 12.3. В свойстве SQL компонента SQLQuery1 пишем следующий запрос: Select * from where ID_ur=:p1; Данный запрос означает, что выводятся все поля по определенному ID_ur, который берётся из текущей записи. Создадим отдельно процедуру. В обработчике кнопки Сохранить пишем: Procedure TForm11.Button1Click(Sender: tObject); Begin SQLQuery1.Post; SQLQuery1.ApplyUpdates; Form2.Red_ur; End; 4. Опишем процедуру обработки кнопки Удалить: Procedure TForm8.Button3Click(Sender: TObject); Var i:integer; Begin If MessageDlg(‘Удалить указанный урок?’,mtConfirmation,[mbYes, mbNo])=mrYes then Begin I:=SQLquery2.fieldbyname(‘ID_ur’).asinteger; sqlQuery2.close; sqlQuery2.SQL.Clear; sqlQuery2.SQL.add(‘delete from Urok where ID_ur=:p1;’); sqlQuery2.Params.Items[0].Asinteger:=I; sqlQuery2.ExecSQL; form2.red_ur; // обновляем DBGrid2 showmessage(‘Данные были успешно удалены!’); end; В данной процедуре переменной I присваивается значение ID_ur, которое берется из текущей записи. На форме Журнал в обработчике кнопки Редактировать пишем следующее: Procedure TForm8.ButtonClick(Sender: TObject); Begin Form11.SQLQuery1.Active:=false; Form11.SQLQuery1.Params.Items[0].asinteger:=SQLQuery2.FieldbyName(‘ID_ur’).AsInteger; Form11.SQLQuery1.Active:=true; Form11.SQLQuery1.edit; Form11.show; End; Задание 1. Аналогичным образом создать новую форму для редактирования оценки ученика (рис. 12.4). Рис. 12.4. Замечание. При нажатии на кнопку Сохранить должны сохраняться сделанные изменения и форма должна закрываться. Практическая работа № 13. Реализация отчетов в приложении Цель работы: научиться создавать отчеты. Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux. Задача: Создать отчет, выводящий оценки ученика по предмету. Ход выполнения.
Рис. 13.1. Задание 1. Заполните Combobox1 и Combobox2, вписав их в процедуры InitUchenik и InitPredmet соответственно. 2. При нажатии на кнопку Оценки в DBGrid1 будут высвечиваться оценки ученика. Для этого в обработчике нажатия кнопки Оценки пишем следующее: Procedure TForm10.Button1Click(Sender: TObject); Begin Form2.Combobox4.itemIndex:=Combobox1.ItemIndex; Form2.Combobox8.ItemIndex:=Combobox2.ItemIndex; Form6.UrQuery.active:=false; Form6.UrQuery.SQL.Clear; Form6.UrQuery.SQL.Append(‘select Urok.Data_ur, Ozenka.Ozenka, Urok.Tema, Urok.Dom_z from Ozenka, Urok where Ozenka.ID_ur=Urok.ID_ur and Ozenka.ID_uch=:p1 and Urok.ID_predm=:p2 order by Data_ur;’); // выводит оценки ученика в упорядоченном (по дате) виде Form6.UrQuery.Params.Items[0].asinteger:=strtoint(form2.combobox4.text); Form6.UrQuery.Params.Items[1].asinteger:=strtoint(form2.combobox8.text); Form6.UrQuery.active:=true; DBGrid1.Columns.Items[0].width:=80; DBGrid1.Columns.Items[1].width:=100; DBGrid1.Columns.Items[2].width:=250; DBGrid1.Columns.Items[3].width:=250; DBGrid1.Columns.Items[0].Title.Caption:=’Дата’; DBGrid1.Columns.Items[1].Title.Caption:=’Оценка’; DBGrid1.Columns.Items[0].Title.Caption:=’Тема’; DBGrid1.Columns.Items[0].Title.Caption:=’Домашнее задание’; End; В данном коде мы пишем: Form2.Combobox4.itemIndex:=Combobox1.ItemIndex Это означает, что мы значение, которое выбрал пользователь, присваиваем выпадающему списку с Form2. Это делается для того, чтобы не создавать ещё один выпадающий список, содержащий уникальные номера ученика ID_uch. Если вы не хотите делать так, то просто создайте ещё два выпадающих списка, содержащих уникальные номера ученика и предмета, и уже с ними работать в запросе. У DBGrid1 в свойстве DataSource пишем Form6.DatasourceUr. 3. Теперь необходимо, чтобы эти оценки оформлялись в отчет и выводились на бумагу. Для этого добавим на форму компоненты frReport1 и frDBDataSet1 c вкладки LazReport. 4. Компонент frDBDataSet1 помогает связаться с источником данных, в нашем случае источником данных является UrQuery (источником данных может быть любой другой запрос). В свойстве Dataset компонента frDBDataSet1 пишем Form6.UrQuery. 5. Для того, чтобы сформировать отчет, источник данных должен быть активным. Поэтому в свойство SQL компонента UrQuery копируем запрос, который выполняется при нажатии на кнопку «Оценки», то есть следующее: select Urok.Data_ur, Ozenka.Ozenka, Urok.Tema, Urok.Dom_z from Ozenka, Urok where Ozenka.ID_ur=Urok.ID_ur and Ozenka.ID_uch=:p1 and Urok.ID_predm=:p2 order by Data_ur; Чтобы данный запрос выполнился необходимо заменить параметры на реальные значения, то есть нужно написать следующее: select Urok.Data_ur, Ozenka.Ozenka, Urok.Tema, Urok.Dom_z from Ozenka, Urok where Ozenka.ID_ur=Urok.ID_ur and Ozenka.ID_uch=5 and Urok.ID_predm=2 order by Data_ur; 6. Затем в свойстве Active выбрать true. 7. Теперь в свойстве Dataset компонента frReport1 пишем frDBDataSet1. 8. Для того, чтобы сформировать отчет нажимает дважды на компоненте frReport1. Появилась пустая страница отчета. Чтобы наполнить отчет данными, выбираем в Дизайнере меню Сервис – Средства – Вставить поля БД. Появится диалоговое окно Вставить изображение. В поле Доступные наборы данных выбираем Form6.UrQuery. Теперь нужно выбрать поля, которые будут включены в отчет (в нашем случае все поля) и поставить галочки Включить заголовки и Включить поля (рис. 13.2). Рис. 13.2. Нажимаем кнопку ОК. Получили следующее (рис. 13.3): Рис. 13.3. В верхней части расположены названия полей. Данные названия можно отредактировать, для этого дважды щелкаем на поле, появляется окно Редактор текста, в нём пишем нужное нам название (рис. 13.4). Рис. 13.4. Для того, чтобы посмотреть, что получится при выводе на бумагу нажимаем кнопку . 9. Сохраним отчет, для этого нажимаем Файл – Сохранить как и сохраняем отчёт в папку с проектом с расширением lrf. 10. После создания отчета необходимо очистить свойство SQL компонента UrQuery и свойство Active поставить false. Задание 2: Создайте запрос, выводящий средние оценки ученика. Оценки должны выводиться в DBGrid1 при нажатии на кнопку «Средние оценки». Создайте также для этого запроса отчет. 11. После того, как выполните задание необходимо описать обработчик кнопки Просмотреть отчёт. В обработчике пишем следующий код: Procedure TForm10.Button2Click(Sender: TObject); Begin If DBGrid1.Columns.Items[0].Title.Caption=’Предмет’ then Begin frReport1.loadfromfile(‘otchet1.lrf’); frReport1.showreport; frReport1.title:=’Средние оценки ученика по предметам’; end else If DBGrid1.Columns.Items[0].Title.Caption=’Дата’ then Begin frReport1.loadfromfile(‘otchet2.lrf’); frReport1.showreport; end else showmessage(‘Отчёт не может быть сформирован!’); end; В данном случае мы говорим о том, что если в DBGrid1 выведены данные о средних оценках ученика, соответственно будет сформирован отчет по средним оценкам. А если выведены просто оценки ученика по конкретному предмету, то отчет будет сформирован по этим данным. Практическая работа № 14. Контроль исключительных ситуаций Цель работы: научиться осуществлять контроль над ошибками, возникающими в процессе работы приложения, связанными с некорректным вводом данных. Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux, СУБД MySQL и средой объектно-ориентированного программирования Lazarus. В языке Паскаль важную роль играет обработка исключительных ситуаций, связанных с попыткой выполнения во время работы программы какого-то действия приводящего к ошибке. Исключительные ситуации контролируются специальным обработчиком исключительных ситуаций. Он перехватывает практически все возникающие в программе ошибки, приостанавливает программу, не давая выполниться разрушительной команде, и сообщает об этом пользователюи программе, передавая ей информацию об обнаруженной ошибке в виде объекта, относящегосяк специальной иерархии классов, описывающих исключительные ситуации. Базовым в этой иерархии является класс Exception. Существует несколько классов исключительных ситуаций, имена этих классов начинаются с буквы Е (Exception):
Для обработки исключений используются две конструкции. Первая конструкция имеет вид: try < Потенциально "опасные" операторы, при выполнении которых могут возникнуть исключительные ситуации > except on класс исключения 1 do < оператор обработки исключения 1 >; on класс исключения 2 do < оператор обработки исключения 2 >; ………………………………………………………………………… on класс исключения n do < оператор обработки исключения n >; else < операторы обработки остальных исключений > end; Данная конструкция означает, что после ключевого слова try и до ключевого слова except следуют операторы, при выполнении которых возможно возникновение исключений. После except следуют операторы, которые образуют секцию обработки исключений. Признаком конца секции служит ключевое слово end. Внутри секции программист указывает классы исключений (говорят еще типы исключений) после слова on, а затем после ключевого слова do оператор обработки исключения, причем оператор может быть составным. После необязательного слова else следуют операторы обработки исключений, не вошедшие в перечень on. Если программисту нужно только установить сам факт исключения, независимо от типа, то он может просто записать обработчик исключения после слова except. Вторая конструкция имеет вид: try < Потенциально "опасные" операторы, при выполнении которых могут возникнуть исключительные ситуации > finally < операторы, которые должны быть выполнены в любом случае, независимо от того, произошло исключение или нет > end; В данном случае заключительные действия будут выполнены в любом случае, независимо от того, возникнет ли исключительная ситуация в операторах части try или, например, выполнится попытка выхода из подпрограммы с помощью процедуры Exit. Задача: Добавить в код приложения конструкцию try except . Ход выполнения. 1. При вводе даты в поля «Дата рождения» и «Дата урока» пользователь может ввести данные не корректно, из-за чего возникнет исключительная ситуация. Для того, чтобы обработать данное исключение в код программы необходимо добавить следующие строки кода: try <операторы, которые могут вызвать исключение> except on EO: EconvertError do showmessage('Неправильно введена дата!') else showmessage('Неправильно введены данные!'); end; Данные операторы лучше поместить вначале соответствующей процедуры. Теперь, если мы не корректно введём дату, то появится соответствующее сообщение (рис.14.1). Рис. 14.1. Если бы мы не обработали данную исключительную ситуацию, то программа бы выдала ошибку и аварийно завершилась (рис. 14.2) Рис. 14.2. Задание 1. Проведите анализ своей программы и в необходимых местах проведите обработку возникающих исключительных ситуаций. |
Варианты заданий к расчетно–графической работе Переименовать базу данных Борей, назвав ее своей фамилией. Открыть переименованную базу данных и создать в ней следующие объекты | Программа по формированию навыков безопасного поведения на дорогах... Субд, освоение технологических приемов по созданию запросов в среде субд, контроль уровня знаний и умений учащихся по темам «Создание,... | ||
Урок по информатике по теме "Системы управления базами данных. Создание... Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд” | Проект по информатике «портфолио для успешной карьеры» Создать базу данных профессий, изучить различные должности и развить навыки поиска работы | ||
Задания Вопросы и задачи, подлежащие разработке: Выяснить, что входит в учет основных средств. Создать программу и базу данных, позволяющих... | Понятие информационно – коммуникационных технологий – (икт) и их роль в образовательном процессе Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд” | ||
Программа по формированию навыков безопасного поведения на дорогах... Создать структуру однотабличной базы данных, содержащую сведения о странах Европы. В таблицу включить следующие сведения: страна,... | Базы данных Для признания исключительного права на базы данных не требуется специальной регистрации (однако предпочтительно осуществлять государственную... | ||
Тема: Построение графиков в эт openOffice org Calc Дата Цель: научить оформлять данные в электронных таблицах OpenOffice org Calc с помощью графиков, выполнить тест по теме «Электронная... | Системы управления базами данных (субд) реферат по «Основам информационных технологий» ... | ||
Планирование и проектирование вашей базы данных в Access Продумайте ваши данные перед тем, как создавать вашу базу данных | Интерфейс доступа к базам данных Вы инсталлируете sql сервер, проектируете базу данных авиалиний и потребуете от персонала авиалиний использования этого приложение.... | ||
Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | ||
OpenOffice Текстовый процессор Writer Данное пособие содержит методические рекомендации и инструкции для работы в текстовом процессоре Writer из пакета OpenOffice | Реферат по теме: «субд access. Основные понятия. Таблицы. Запросы.... «субд access. Основные понятия. Таблицы. Запросы. Формы. Отчёты. Создание базы данных» |