- •Завдання
- •Реферат
- •Содержание
- •Введение
- •1. Постановка задачи
- •2. Организация работы ателье мод
- •3. Среда разработки приложений Delphi
- •4. Базы данных. Модели представления данных
- •5. Системы управления базами данных
- •6. Программный комплекс для учета заказов ателье мод
- •6.1 Проектирование базы данных программного комплекса
- •6.2 Структура программного комплекса
- •6.3 Описание объектов и их взаимодействия
- •6.4 Аппаратные и программные средства создания и эксплуатации программного комплекса
- •6.5 Руководство пользователя
- •6.6 Описание контрольного примера
- •Список ссылок
- •Файл Atelie.Dpr
- •Файл Atelie1.Pas
6.2 Структура программного комплекса
Программный комплекс состоит из:
файла проекта atelie.dpr;
файла atelie1.dfm, содержащего информацию о визуальных компонентах приложения;
файла atelie1.pas, содержащего основные процедуры и функции программного комплекса;
файла katalog_tkaney.db, содержащего информацию о тканях, из которых изготавливаются модели одежды;
файла katalog_modeley.DB, содержащего информацию о моделях, которые может выпускать ателье;
файла zakazi.db, содержащего полную информацию о заказах, которые приняты или уже выполнены закройщиками ателье;
файла zakroyshiki.db, содержащего информацию о закройщиках ателье;
файла sklad.db, в котором содержится информация о тканях, имеющихся в наличии на складе ателье.
6.3 Описание объектов и их взаимодействия
Проект программы atelie.dpr включает в себя основной модуль atelie1.pas. Модуль содержит в себе набор процедур и функций, посредством которых взаимодействуют объекты программного комплекса.
Основные объекты модуля следующие:
Form1 – контейнер, содержащий все остальные компоненты приложения.
MainMenu1 – главное меню программы с подпунктами N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19, N20, N21, N22, N23, N24.
Table1 – компонент, определяющий таблицу базы данных TKANI на диске - katalog_tkaney.db, содержащую информацию о каталоге тканей.
Table1Nomer_Tkani, Table1Nazvanie_Tkani, Table1Shirina_Tkani, Table1Cena_Tkani – компоненты, определяющие поля записей таблицы katalog_tkaney.db.
DBGrid1 – компонент для визуального отображения записей таблицы базы данных katalog_tkaney.db.
DataSource1 – компонент для связи элемента DBGrid1 с таблицей базы данных katalog_tkaney.db.
Panel1 – контейнер, в котором располагаются элементы для отображения на экран содержимого таблицы katalog_tkaney.db : DBGrid1, Button1, Label1.
Panel2 – контейнер, в котором располагаются элементы для добавления записи в таблицу katalog_tkaney.db : Label2, Label3, Label4, Label5, Label6, Label7, Label8, ComboBox1, ComboBox2, ComboBox3, ComboBox4, ComboBox5, Button2, Button3.
ComboBox1 – компонент для выбора ширины ткани;
ComboBox2, ComboBox3 – компоненты для выбора цены ткани;
ComboBox4 – компонент для выбора названия ткани;
ComboBox5 – компонент для выбора номера ткани.
Panel3 – контейнер, в котором располагаются элементы для удаления записи из таблицы katalog_tkaney.db : Label9, Label10, Label11, ComboBox6, Button4, Button5.
ComboBox6 – компонент используется для выбора номера ткани для удаления.
Table2 – компонент, определяющий таблицу базы данных TKANI на диске - katalog_modeley.db, содержащую информацию о каталоге моделей.
Table2Nomer_modeli,Table2Nazvanie_modeli, Table2Rekomend_nomer_tkan, Table2Cena_poshiva, Table2Rashod_tkani - компоненты, определяющие поля записей таблицы katalog_modeley.db.
DataSource2 – компонент для связи элемента DBGrid1 с таблицей базы данных katalog_modeley.db.
Panel4 - контейнер, в котором располагаются элементы для отображения на экран содержимого таблицы katalog_modeley.db : DBGrid2, Button6, Label12.
DBGrid2- компонент для визуального отображения записей таблицы базы данных katalog_modeley.db.
Panel5 - контейнер, в котором располагаются элементы для добавления записи в таблицу katalog_modeley.db : Label13, Label14, Label15, Label16, Label17, Label18, Label19, Label20, Label21, Label22, ComboBox7, ComboBox8, ComboBox9, ComboBox10, ComboBox11, ComboBox12, ComboBox13, Button7, Button8.
ComboBox7 – компонент для выбора рекомендуемой ткани.
ComboBox8, ComboBox9 – компоненты для выбора цены пошива.
ComboBox10 – компонент для выбора названия модели.
ComboBox11 – компонент для выбора номера модели.
ComboBox12, ComboBox13 – компоненты для выбора расхода ткани.
Panel6 - контейнер, в котором располагаются элементы для удаления записи из таблицы katalog_modeley.db : Label23, Label24, Label25, ComboBox14, Button9, Button10.
ComboBox14 - компонент используется для выбора номера модели для удаления.
Panel7 - контейнер, в котором располагаются элементы для добавления записи в таблицу zakazi.db : Label26, Label27, Label28, Label29, Label30, Label31, Label33, Label36, Label37, ComboBox15, ComboBox16, ComboBox18, ComboBox17, Edit1, MonthCalendar1, MonthCalendar2, MonthCalendar3, Button11, Button12.
ComboBox15 - компонент для выбора номера заказа.
ComboBox16 - компонент для выбора номера модели.
ComboBox17 - компонент для выбора номера рекомендуемой ткани.
ComboBox18 - компонент для выбора закройщика.
MonthCalendar1 - компонент для выбора даты приемки заказа.
MonthCalendar2 - компонент для выбора даты примерки.
MonthCalendar3 - компонент для выбора даты выполнения заказа.
Table3 – компонент, определяющий таблицу базы данных TKANI на диске - zakazi.db, содержащую информацию о заказах ателье.
Table3Nomer_zakaza, Table3FIO_klienta, Table3Nomer_modeli, Table3Nomer_tkani, Table3FIO_zakroishika, Table3Data_priema, Table3Data_primerki, Table3Data_vipolneniya, Table3Otmetka_vipolneniya - компоненты, определяющие поля записей таблицы zakazi.db.
DBGrid3- компонент для визуального отображения записей таблицы базы данных zakazi.db.
DataSource3 - компонент для связи элемента DBGrid3 с таблицей базы данных zakazi.db.
Panel11 - контейнер, в котором располагаются элементы для отображения на экран содержимого таблицы zakazi.db: Label41, Button18, DbGrid4.
Panel12 - контейнер, в котором располагаются элементы для отметки выполнения заказа: Label42, Button19, Button20, Label43, ComboBox21.
ComboBox21 – компонент для выбора номера выполненного заказа.
Panel13 – контейнер, в котором располагаются элементы для удаления записи из таблицы zakazi.db : Label44, Label45, ComboBox22, Button21, Button22.
ComboBox20 – компонент для выбора номера заказа для удаления.
Table4 – компонент, определяющий таблицу базы данных TKANI на диске - zakroyshiki.db, содержащую информацию о закройщиках ателье.
Table4N_Zakr, Table4FIO_Zakr - компоненты, определяющие поля записей таблицы zakroyshiki.db.
DBGrid4- компонент для визуального отображения записей таблицы базы данных zakroyshiki.db.
DataSource4 - компонент для связи элемента DBGrid4 с таблицей базы данных zakroyshiki.db.
Panel8 - контейнер, в котором располагаются элементы для отображения на экран содержимого таблицы zakroyshiki.db : DBGrid3, Button13, Label32.
Panel9 - контейнер, в котором располагаются элементы для добавления записи в таблицу zakroyshiki.db : Label34, Button14, Button15, Label35, Label38, ComboBox19, Edit2.
ComboBox19 – компонент для ввода номера закройщика.
Edit2 - компонент для отображения фамилии, имени, отчества закройщика.
Panel10 - контейнер, в котором располагаются элементы для удаления записи из таблицы zakroyshiki.db: Label39, Label40, ComboBox20, Button16, Button17.
ComboBox20 – компонент для выбора номера закройщика.
Table5 - компонент, определяющий таблицу базы данных TKANI на диске - sklad.db, содержащую информацию о тканях на складе.
Table5Nomer_Tkani, Table5Metraj - компоненты, определяющие поля записей таблицы sklad.db.
DBGrid5 - компонент для визуального отображения записей таблицы базы данных sklad.db.
DataSource5 - компонент для связи элемента DBGrid5 с таблицей базы данных sklad.db.
Panel14 - контейнер, в котором располагаются элементы для отображения на экран содержимого таблицы sklad.db : Label46, DbGrid5, Button23.
Panel15 - контейнер, в котором располагаются элементы для добавления записи в таблицу sklad.db : Label47, Label48, Label49, ComboBox23, ComboBox24, Button24, Button25.
ComboBox23 – компонент для выбора номера ткани.
ComboBox23 – компонент для выбора количества метров ткани.
Query1 - компонент, определяющий SQL-запрос к таблицам базы данных TKANI.
DBGrid6 - компонент для визуального отображения результатов SQL-запросов.
DataSource6 - компонент для связи элемента DBGrid6 с компонентом Query1.
Panel16 - контейнер, в котором располагаются элементы для отображения на экран содержимого SQL-запросов к таблицам базы данных: Label50, DBGrid6.
Panel17 – контейнер, в котором размещаются компоненты для выбора закройщика для просмотра информации о его заказах: Label51, ComboBox25, Button26, Button27.
ComboBox25 – компонент для выбора номера закройщика.
Panel18 – контейнер, в котором размещаются компоненты для выбора даты для заказов: Label52, Button29, Button30, MonthCalendar4.
MonthCalendar4 – компонент для задания даты заказов.
Объекты программы взаимодействуют между собой посредством следующих процедур и функций:
N5Click, FormClose, N8Click, N6Click, Button3Click, Button2Click, N7Click, Button5Click, Button4Click, ComboBox6Change, N9Click, Button6Click, Button1Click, N10Click, Button8Click, Button7Click, Button9Click, Button10Click, N11Click, ComboBox14Change, N13Click, Button11Click, ComboBox16Change, Button13Click, N17Click, Button15Click, N18Click, Button14Click, Button17Click, N19Click, Button16Click, Button12Click, N12Click, Button18Click, N15Click, Button20Click, Button19Click, Button22Click, N14Click, Button21Click, N20Click, Button23Click, N21Click, Button25Click, Button24Click, Button28Click, N23Click, Button27Click, Button26Click, N24Click, Button30Click, Button29Click.
procedure TForm1.N5Click(Sender: TObject) – закрывает главное окно программы.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction) – выдает на экран диалоговое окно, в котором подтвержается завершение программы.
procedure TForm1.N8Click(Sender: TObject) – делает невидимой Panel1.
procedure TForm1.N6Click(Sender: TObject) - добавляет коды тканей в comboBox5 без уже находящихся в каталоге. Для этого в таблице тканей ищем ткани с номерами от 000 до 100 и, если такая ткань в таблице есть, то в comboBox5 ее не добавляем. Очищает в элементах Combobox1 - Combobox5 свойство Text. Делает видимой Panel2.
procedure TForm1.Button3Click(Sender: TObject) - делает невидимой Panel2.
procedure TForm1.Button2Click(Sender: TObject) – проверяет заполненность полей формы для ввода информации о ткани. В случае незаполненности хотя бы одного из полей выводит предупреждающее сообщение. Если все поля заполнены, то добавляет пустую запись в таблицу тканей и заносит в поля этой записи информацию о ткани из ComboBox5.Text, ComboBox4.Text, ComboBox1.Text, ComboBox2.Text, ComboBox3.Text. Делает невидимой Panel2 и выдает сообщение о добавлении ткани в таблицу тканей.
procedure TForm1.N7Click(Sender: TObject) - заполняет ComboBox6 номерами тканей из таблицы Table1.
procedure TForm1.Button5Click(Sender: TObject) – делает невидимой Panel3
procedure TForm1.Button4Click(Sender: TObject)- ищет запись в таблице тканей для удаления. Удаляет ткань из таблицы тканей, выводит сообщение об успешном удалении ткани из каталога. Если ткань не найдена, выводится сообщение о её отсутствии.
procedure TForm1.ComboBox6Change(Sender: TObject)- ищет по номеру ткани ткань в таблице тканей и Label11.Caption присваивает строку с названием и шириной ткани.
procedure TForm1.N9Click(Sender: TObject)- делает видимой Panel4.
procedure TForm1.Button6Click(Sender: TObject)- делает невидимой Panel4.
procedure TForm1.Button1Click(Sender: TObject)- делает невидимой Panel1.
procedure TForm1.N10Click(Sender: TObject)- добавляет коды моделей в comboBox11 без уже находящихся в каталоге. Для этого в таблице моделей ищем модели с номерами от 000 до 100 и, если такая модель в таблице есть, то в comboBox11 ее не добавляем. Заполняем ComboBox7 номерами тканей из таблицы тканей, названием и шириной ткани. Очищает в элементах Combobox7 - Combobox11 свойство Text. Делает видимой Panel5.
procedure TForm1.Button8Click(Sender: TObject)-делает невидимой Panel5.
procedure TForm1.Button7Click(Sender: TObject)- проверяет заполнены ли поля формы для ввода информации о модели. В случае, если не заполнено хотя бы одно из полей, выводит предупреждающее сообщение. Если все поля заполнены, то добавляет пустую запись в таблицу моделей и заносит в поля этой записи информацию о модели из ComboBox7.Text, ComboBox8.Text, ComboBox9.Text, ComboBox10.Text, ComboBox11.Text, ComboBox12.Text, ComboBox13.Text. Делает невидимой Panel5 и выдает сообщение о добавлении модели в таблицу моделей.
procedure TForm1.Button9Click(Sender: TObject)- ищет запись в таблице моделей для удаления. Удаляет модель из таблицы моделей, выводит сообщение об успешном удалении модели из каталога. Если модель не найдена, выводится сообщение о её отсутствии.
procedure TForm1.Button10Click(Sender: TObject)- делает невидимой Panel6.
procedure TForm1.N11Click(Sender: TObject)- Заполняет ComboBox14 номерами моделей из таблицы и делает panel6 видимой.
procedure TForm1.ComboBox14Change(Sender: TObject)- - ищет по номеру модели в таблице моделей и Label25.Caption присваивает строку с названием модели.
procedure TForm1.N13Click(Sender: TObject)- добавляет номера заказов в comboBox15 без уже находящихся в таблице заказов. Для этого в таблице заказов ищем заказ с номерами от 000 до 100 и, если такой заказ в таблице есть, то в comboBox15 его не добавляем. Заполняем ComboBox16 номерами моделей из таблицы моделей и названиями моделей. Заполняем ComboBox17 номерами тканей из таблицы тканей и названием. Заполняем ComboBox18 фамилиями закройщиков из таблицы закройщиков и номерами. Очищает в элементах Combobox15 - Combobox18 свойство Text. Делает видимой Panel7.
procedure TForm1.Button11Click(Sender: TObject) - делает невидимой Panel7.
procedure TForm1.ComboBox16Change(Sender: TObject) – проходит по всем записям таблицы моделей и ищет номер рекомендуемой для этой модели ткани. Получив номер ткани, по этому номеру ищет название ткани в таблице тканей. Заносит в компонент ComboBox17.Text номер ткани и название ткани.
procedure TForm1.Button13Click(Sender: TObject) - делает невидимой Panel8.
procedure TForm1.N17Click(Sender: TObject) - делает видимой Panel8.
procedure TForm1.Button15Click(Sender: TObject)- делает невидимой Panel9.
procedure TForm1.N18Click(Sender: TObject) - добавляет номера закройщиков в comboBox19 без уже находящихся в таблице . Для этого в таблице ищем закройщика с номерами от 000 до 100 и, если такой закройщик в таблице есть, то в comboBox19 его не добавляем. Делает видимой Panel9.
procedure TForm1.Button14Click(Sender: TObject)- проверяет заполнены ли поля формы для ввода информации о закройщике. В случае, если не заполнено хотя бы одного из полей выводит предупреждающее сообщение. Если все поля заполнены, то добавляет пустую запись в таблицу и заносит в поля этой записи информацию о закройщике из ComboBox19.Text и Edit2.Text. Делает невидимой Panel9 и выдает сообщение о добавлении закройщика в таблицу закройщиков.
procedure TForm1.Button17Click(Sender: TObject)- делает невидимой Panel10.
procedure TForm1.N19Click(Sender: TObject)- Заполняем ComboBox20 номерами закройщиков из таблицы и делает видимой Panel10.
procedure TForm1.Button16Click(Sender: TObject)- - ищет запись в таблице закройщиков для удаления. Удаляет закройщика из таблицы, выводит сообщение об успешном удалении закройщика из каталога. Если закройщик не найден, выводится сообщение о его отсутствии.
procedure TForm1.Button12Click(Sender: TObject)- проверяет заполнены ли поля формы для ввода информации о заказе. В случае, если не заполнено хотя бы одного из полей выводит предупреждающее сообщение. Если все поля заполнены, то добавляет пустую запись в таблицу и заносит в поля этой записи информацию о заказе. Проверяет на наличие достаточного количества этой ткани на складе, по номеру ткани ищем количество ее на складе, рассчитывает количество метров на модель и уменьшает количество ткани на складе на это число. После выводит сообщение, что заказ добавлен в таблицу заказов. В противном случае выводит сообщение, что недостаточно ткани на складе или ее нет. Делает невидимой Panel7.
procedure TForm1.N12Click(Sender: TObject)- Делаем видимой Panel11.
procedure TForm1.Button18Click(Sender: TObject) - Делаем невидимой Panel11.
procedure TForm1.N15Click(Sender: TObject)- Заполняет ComboBox21 номерами невыполненных заказов из таблицы заказов. Делает видимой panel12
procedure TForm1.Button20Click(Sender: TObject)- Делаем невидимой Panel12.
procedure TForm1.Button19Click(Sender: TObject)- Ищет запись для редактирования заказа, выводит сообщение, что заказ отмечен как выполненный или сообщение, что такого заказа нет.
procedure TForm1.Button22Click(Sender: TObject)- Делаем невидимой Panel13.
procedure TForm1.N14Click(Sender: TObject)- Заполняет ComboBox22 номерами заказов из таблицы заказов и делает видимой panel13.
procedure TForm1.Button21Click(Sender: TObject)- ищет запись в таблице заказов для удаления. Удаляет заказ из таблицы заказов, выводит сообщение об успешном удалении заказа из каталога. Если заказ не найден, выводится сообщение о его отсутствии.
procedure TForm1.N20Click(Sender: TObject)- Делаем видимой Panel14.
procedure TForm1.Button23Click(Sender: TObject)- Делаем невидимой Panel14
procedure TForm1.N21Click(Sender: TObject) - Заполняем ComboBox23 номерами тканей из таблицы тканей и делает видимой Panel15.
procedure TForm1.Button25Click(Sender: TObject)- делает невидимой Panel15
procedure TForm1.Button24Click(Sender: TObject)- проверяет заполнены ли поля формы для ввода информации о помещения ткани на склад . В случае, если не заполнено хотя бы одного из полей выводит предупреждающее сообщение. Редактирует количество метров, если ткань уже существует на складе, Если все поля заполнены, то добавляет пустую запись в таблицу и заносит в поля этой записи информацию о новой ткани. Делает невидимой Panel15 и выдает сообщение о добавлении ткани на склад.
procedure TForm1.Button28Click(Sender: TObject)- делает невидимой panel17.
procedure TForm1.N23Click(Sender: TObject) - Заполняем ComboBox25 номерами закройщиков из таблицы и делает видимой Panel17.
procedure TForm1.Button27Click(Sender: TObject) - Делает невидимой Panel17. Делает видимой Panel16. Получает из Combobox25 ФИО закройщика и формирует строку SQL-запроса к таблице zakazi.db для выборки всех его заказов. Добавляет строку к элементу query1 и выполняет SQL –запрос.
procedure TForm1.Button26Click(Sender: TObject)- делает невидимой panel16.
procedure TForm1.N24Click(Sender: TObject)- делает видимой panel18.
procedure TForm1.Button30Click(Sender: TObject)- делает невидимой panel18.
procedure TForm1.Button29Click(Sender: TObject) - Делает невидимой Panel18. Делает видимой Panel16. Получает из MonthCalendar4 дату заказа и формирует строку SQL-запроса к таблице zakazi.db для выборки всех заказов по этой дате. Добавляет строку к элементу query1 и выполняет SQL –запрос.
