Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мет_BD Delphi

.pdf
Скачиваний:
18
Добавлен:
26.02.2016
Размер:
702.49 Кб
Скачать

Рисунок 31 – Измененный модуль данных

13 Разместить на форме два компонента DBGrid с именами Grid_Tov и Grid_Prih, соединив их через свойство DataSource с компонентами

DataModule1.DS_Tovary и DataModule1.DS_Prihod соответственно. С помощью компонентов TLabel добавить заголовки для таблиц.

13 Запустить приложение, проверив соединение с базой данных (рисунок 32).

Рисунок 32 – Главное окно приложения

14Для компонентов Grid_Tov и Grid_Prih открыть редакторы столбцов (Columns Editor) и добавить все поля, задав у них в свойстве Title\ Caption, русскоязычные заголовки. Кроме того, для Grid_Prih удалите колонку, соответствующую полю

«N_Prih».

15Добавить на форму главное меню с пунктами «Файл» («Выход»), «Товары» («Добавить», «Редактировать»), «Приход товаров» («Добавить», «Редактировать», «Удалить») и «Поиск» (рисунок 33).

16Создать обработчик выбора команды меню «Выход» с кодом: Close;

Рисунок 33 – Главное меню приложения

17 Для формы создать обработчик события OnCloseQuery с подтверждением операции выхода из программы:

procedure TForm1.Form1CloseQuery(Sender: TObject; Var CanClose: boolean);

begin

if MessageDlg('Вы действительно желаете завершить про-

грамму?',mtConfirmation,[mbYes,mbNo],0)=mrNo then CanClose:=false;

end;

41

18 Сохранить изменения, запустить проект на выполнение и проверить его работу. Продемонстрируйте результат преподавателю.

7.2 Создание форм для работы с таблицами

Общая схема работы с формой «Товары» представления на рисунке 34.

Рисунок 34 – Алгоритм процедур добавления и редактирования записей

1Создать новую форму (File\ New\ Form) для добавления записей в таблицу «Товары» по образцу, приведенному на рисунке 35. Для строк ввода использовать компоненты TDBEdit. Для объекта TForm в свойстве Name установить значение

Form_Tov. Сохранить форму как «Unit_Tov».

2Подключить новую форму к другим модулям проекта:

В новой форме вписать в ее разделе Uses модуль Unit_DM, т.к. компоненты TDBEdit должны быть связаны с полями базы данных.

Затем для компонентов TDBEdit в свойстве DataSource установить значение DataModule1.DS_Tovary, а в свойстве DataField установить соединение с соответствующим полем базы данных.

В модуле Unit_Lab_6 в разделе Uses вписать модуль Unit_Tov, чтобы получить возможность открывать новую форму из главной формы приложения.

Рисунок 35 – Форма для добавления/редактирования товара

3 В соответствии со схемой создать процедуру обработки нажатия пункта меню «Товары\ Добавить» со следующим кодом:

DataModule1.ADOT_Tovary.Append; // добавляем новую запись

42

if Form_Tov.ShowModal=mrOk

then //если в форме "Товары" нажата кнопка ОК begin // проверяем, заполнены ли все поля формы

if (DataModule1.ADOT_TovaryTovar.AsString='')

or (DataModule1.ADOT_TovaryEd_Izm.AsString='') or (DataModule1.ADOT_TovaryZena_Ed.AsString='')

then // не все поля заполнены begin

ShowMessage ('Нужно заполнить все поля формы!'); DataModule1.ADOT_Tovary.Delete; // удаляем запись

end else

begin // поля заполнены - запоминаем запись

DataModule1.ADOT_Tovary.Post; end;

end

else //нажата "Отменить" - удаляем запись

DataModule1.ADOT_Tovary.Delete;

4Создать процедуру обработки нажатия пункта меню «Товары\ Редактировать» со следующим кодом:

if Form_Tov.ShowModal=mrOK then //если нажата кнопка OK

DataModule1.ADOT_Tovary.Post // фиксируем изменения else

DataModule1.ADOT_Tovary.Cancel;

5Сохранить изменения, запустить проект и проверить его работу. Добавить несколько записей в таблицу «Товары». Открыть базу данных Sklad.mdb в Microsoft Access и посмотреть на внесенные изменения.

7.3Самостоятельная работа 5

1В модуле данных для компонентов ADOT_Tovary и ADOT_Prihod реализовать механизм связи «Master-Detail», т.е. сделать так, чтобы в главной форме приложения при установке указателя на запись в наборе данных ADOT_Tovary, ассоциированном с таблицей «Tovary», в наборе данных ADOT_Prihod, ассоциированном с таблицей с «Prihod», показывались только записи прихода товара, вы-

деленного в ADOT_Tovary.

2Самостоятельно создайте форму «Form_Prih» для работы с записями таблицы приход (рисунок 36). Сохраните форму как «Unit_Prih».

Рисунок 36 – Форма для работы с записями таблицы «Приход товара»

3Подключить новую форму к другим модулям проекта.

4Создать обработчики событий выбора каждого пункта меню «Приход товаров»: «Добавить», «Редактировать» и «Удалить».

43

5Добавить в таблицу «Приход товаров» по несколько записей для каждого из товаров из таблицы «Товары».

7.4Создание формы для поиска записей

1Создать новую форму (File\ New\ Form) для поиска информации о товаре по образцу, приведенному на рисунке 37. Для объекта TForm в свойстве Name установить значение Form_Poisk. Сохранить форму как «Unit_Poisk».

Рисунок 37 – Форма поиска записей

2Для организации запросов к базе данных в модуле данных разместить компонент TADOQuery, задав значения для его свойств:

Connection – ADOConnection1;

SQL – текст запроса по умолчанию, отображающего все записи:

select p.tovar, p.dataprih, p.kolvo, t.zena_ed from tovary t, prihod p

where (t.tovar=p.tovar)

3Подключить новую форму к другим модулям проекта. Затем подключить компонент TDBGrid формы поиска к компоненту TADOQuery.

4Создать обработчик события выбора меню «Поиск» со следующим кодом:

DataModule1.ADOQuery1.Open; // открыть запрос по умолчанию

Form_Poisk.ShowModal; // открыть форму поиска как модальную

5Создать обработчик нажатия кнопки «Найти» со следующим кодом:

with DataModule1.ADOQuery1 do // определяем структуру запроса: begin

Close; //закрываем предыдущий запрос

SQL.Clear; // удаляем структуру предыдущего запроса

SQL.Add('select p.tovar,p.dataprih,p.kolvo,t.zena_ed'); SQL.Add('from tovary t, prihod p');

SQL.Add('where (t.tovar=p.tovar)');

if Form_Poisk.CheckBox1.Checked // выбран поиск по товару then

begin // добавляем критерий в запрос

44

SQL.Add(' and (p.tovar=:tov)'); Parameters.ParamByName('tov').Value:=

Form_Poisk.Edit1.Text; end;

if Form_Poisk.CheckBox2.Checked then // выбран поиск по дате прихода begin // добавляем критерий в запрос

SQL.Add(' and (p.dataprih=:dat)'); Parameters.ParamByName('dat').Value:=

Form_Poisk.Edit2.Text; end;

Open; //открываем новый запрос end;

6 Сохранить изменения, запустить проект и проверить его работу.

7.5Самостоятельная работа 6

1Разместить на форме поиска еще одну кнопку «Все записи» и создать обработчик нажатия этой кнопки, в результате работы которого:

должны сбрасываться все параметры поиска;

в компоненте TDBGrid должна отображаться информация обо всех записях.

2В главное меню приложения добавить пункт «Отчет», открывающий форму, созданную при выполнении раздела 6.5 «Построение отчета на основе нескольких наборов данных». Подключить модуль формы с отчетом к главной форме приложения и создать обработчик события выбора команды «Отчет» в главном меню.

8 Индивидуальное задание

Общее задание:

1Согласно варианту индивидуального задания спроектировать базу данных, состоящую из нескольких таблиц, учитывая содержание предметной области.

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

Вариант 1. Отобразить в БД сведения о месячной зарплате рабочих и средней зарплате по цехам за изготовление деталей. Деталей должно быть не менее 15 видов, изготовление которых имеет определенную стоимость. Должны быть отражены сведения о следующих атрибутах предметной области: фамилия рабочего; имя рабочего; отчество рабочего; номер цеха, где работает рабочий; название цеха; начальник цеха; средняя зарплата по цеху; размер заработной платы рабочего за изготовленные детали; разряд (учесть разрядные надбавки при подсчете зарплаты); дата поступления на работу; ассортимент деталей с указанием наименования и стоимости изготовления; перечень изготовленных деталей с указанием рабочего, изготовившего деталь.

Вариант 2. Учет изделий, собранных в цехе изделий за неделю с указанием объема сборки и ее стоимости за каждый день. Должны быть отражены сведения о следующих атрибутах предметной области: фамилия сборщика; имя сборщика; отчество сборщика; разряд (при расчете стоимости сборки изделий учесть надбавку за разряд); стаж работы (при расчете стоимости сборки изделий учесть надбав-

45

ку за стаж); стоимость собранных изделий за каждый день недели; количество собранных изделий за каждый день недели; ассортимент изделий с указанием наименования и стоимости их сборки; перечень изготовленных изделий с указанием сборщика и дня недели изготовления.

Вариант 3. Учет изделий категорий А, В, С, D, Е, собранных в цехе за месяц с указанием количества изделий каждой категории и стоимости их сборки. Должны быть отражены сведения о следующих атрибутах предметной области: фамилия сборщика; имя сборщика; отчество сборщика; разряд (при расчете стоимости сборки изделий учесть надбавку за разряд); стаж работы (при расчете стоимости сборки изделий учесть надбавку за стаж); количество изделий каждой категории, собранных за месяц; стоимость сборки изделий каждой категории, собранных за месяц с учетом квалификации и срока стажа работы сборщика; ассортимент категорий изделий (А, В, С, D, E) с указанием наименования и стоимости их сборки; перечень изготовленных изделий с указанием сборщика и категории изделия.

Вариант 4. Сведения об абонентах АТС с учетом разницы междугородних и обычных переговоров. При расчете платы за услуги должны учитываться льготы и тип установки. Должны быть отражены сведения о следующих атрибутах предметной области: фамилия; имя; отчество; адрес; год установки телефона; тип установки телефона (спаренный или нет: оплата спаренного телефона составляет 60% от обычного); льгота (50% процентов скидки при оплате); стоимость абонентской платы; стоимость междугородних разговоров; общая сумма с учетом льгот и типа установки; расценка междугородних разговоров (не менее 15 записей) с указанием города, стоимости за минуту разговора; перечень междугородних разговоров с указанием ФИО абонента, города, длительности разговора в минутах и стоимости разговора; номер телефона абонента.

Вариант 5. Сведения о наличии игрушек каждого вида, количестве поступлений и реализации игрушек каждого вида и суммы выручки за их реализацию в магазине. Должны быть отражены сведения о следующих атрибутах предметной области: название игрушки; количество игрушки на складе; количество поступлений каждого вида игрушки за месяц; продано каждого вида игрушки за месяц; вырученная сумма за реализацию каждого вида игрушки за месяц; ассортимент игрушек с указанием цены, завода-изготовителя, города, где находится завод; перечень игрушек с указанием даты изготовления игрушки, даты поступления в магазин и даты реализации.

Вариант 6. Сведения о рейсах авиакомпании за неделю с указанием числа проданных билетов и суммы выручки за каждый день недели. Должны быть отражены сведения о следующих атрибутах предметной области: номер рейса; пункт назначения; время вылета; время прибытия; время в пути; день недели, в который выполняется полет (1, 2, 3, 4, 5, 6, 7); тип самолета; вместимость самолета (2-, 3- местные); количество свободных мест; перечень выполненных маршрутов за неделю; число проданных билетов за каждый день недели; сумма выручки за каждый день недели; сведения о пассажирах с указанием ФИО, паспортных данных, номера рейса.

Вариант 7. Сведения о работе обувного магазина. Должны быть отражены сведения о следующих атрибутах предметной области: ассортимент товара с указанием наименования обуви, фабрики изготовителя, цены товара; перечня товара, поступившего в магазин, с указанием наименования товара, количества пар, размера, даты поступления, даты продажи; сведения о наличии товара в магазине с

46

указанием номера товара по ассортименту, количества товара на складе, размера обуви, продано товара за текущий месяц, сумма реализации товара по каждому виду обуви конкретного размера.

Вариант 8. Журнал регистрации расходов и доходов в бухгалтерии за оказанные услуги по каждому виду услуг. Должны быть отражены сведения о следующих атрибутах предметной области: ассортимент услуг с указанием наименования, стоимости, суммы расходов, процента прибыли; список исполнителей фирмы с указанием ФИО, квалификации, оплаты за услуги в зависимости от квалификации за месяц; перечень оказанных услуг, где должны быть указаны вид услуги, заказчик услуги, дата выполнения услуги, исполнитель; список фирм-заказчиков, где должны быть указаны название, адрес, место нахождения фирмы; журнал регистрации расходов и доходов за месяц с указанием по каждому виду услуг суммы расходов (расходов по виду услуг плюс оплата исполнителя в зависимости от квалификации), суммы прибыли.

Вариант 9. Учет оптовых продаж. Должны быть отражены сведения о следующих атрибутах предметной области: ассортимент товаров с указанием наименования товара, завода изготовителя, цены товара; список фирм-изготовителей товаров и оптовых покупателей, с указанием наименования фирмы, адреса фирмы; перечень оптовых покупок с указанием фирмы покупателя, вида товара, даты покупки, размера партии, стоимости покупки; сведения о состоянии оптовой фирмы с указанием наличия на складе каждого вида товара, суммы реализации товара по каждому виду.

Вариант 10. Сведения о выборе дисциплин студентами пяти групп. Каждый студент должен выбрать по три дисциплины. Должны быть отражены сведения о следующих атрибутах предметной области: фамилия; имя; отчество; номер зачетной книжки; живет ли в общежитии (живет – 1; не живет – 0); первая выбранная дисциплина; вторая выбранная дисциплина; третья выбранная дисциплина; индекс группы; пять дисциплин (желает изучать – 1, не желает изучать – 0); сведения о пяти дисциплинах с указанием наименования, ФИО преподавателя, числа теоретических занятий, числа практических занятий; сведения о выбранных дисциплинах студентами каждой группы (не менее трех групп), с указанием количества студентов, выбравших каждую из дисциплин; средний балл студента.

Список литературы

1 Архангельский А. Я. Программирование в Delphi 7. М. : Бином-Пресс, 2003. 1152 с.

2 Архангельский А. Я. Программирование в Delphi для Windows. Версии

2006, 2007, Turbo Delphi. М. : Бином-Пресс, 2007. 1248 с.

3Петров В. Н. Информационные системы. Спб. : Питер, 2003. 688 с. : ил.

4Программирование. Среда программирования Delphi 6. Локальные базы данных в Delphi. // Информатика и программирование: шаг за шагом. URL: http://it.kgsu.ru/DelBD/oglav.html (дата обращения: 15.03.2015).

5Фаронов В. В. Программирование баз данных в Delphi 7. Учебный курс.

СПб. : Питер, 2006. 464 с.

47

Тетюшева Светлана Геннадьевна

РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ БАЗ ДАННЫХ В СРЕДЕ DELPHI

Методические рекомендации для студентов очной и заочной форм обучения

направлений 010100.62, 050100.62

Редактор Е.А. Могутова

…………………………………………………………………………..……………

 

Бумага тип. 65 г/м2

Подписано в печать

Формат 60х84 1/16

Печать цифровая

Усл. печ. л. 3

Уч.-изд. л. 3

Заказ

Тираж 25

Не для продажи

……………………………………………………………………………………..…

РИЦ Курганского государственного университета. 640000, г. Курган, ул. Советская, 63/4. Курганский государственный университет.

48