Автор работы: Пользователь скрыл имя, 08 Марта 2014 в 15:51, курсовая работа
Целью данного проекта является изучение базы данных, освоение реляционной модели БД, приведение таблиц БД к третьей форме нормализации, овладение способами организации и методами проектирования БД, а также технологии разработки приложений для их использования. Изучение данного материала должно сформировать общий базис знаний по организации и использованию баз данных (БД).
Задачей данной работы является проектирование и создание базы данных и разработка приложения для ее эффективного использования на примере гипотетического «Мебельного салона». Разработанная информационная система должна ускорить и облегчить работу менеджера салона по регистрации и учету заказов, способствуя сокращению временного интервала от обращения клиента в салон до заключения договора о поставке товара, а также сэкономить время на поиске информации о клиентах.
Введение………………………………………………………………………………………….3
Аналитическая часть……………………………………………………………………..5
Описание предметной области………………………………………………....5
Объект проектирования……………………………………………………...5
Информационные процессы…………………………………………………5
Требование к ИС…………………………………………………………………6
Проектирование базы данных…………………………………………………………...7
Проектирование информационной модели базы данных…………………….7
Построение логической модели базы данных…………………………………9
Построение физической модели данных……………………………………..13
Создание базы данных……...………………………………………………….17
Создание приложения для работы с базой данных…………………………………...19
Заключение……………………………………………………………………………………...31
Список литературы …………………………………………………
Рис.10 Разработка отчета в Rave Visual Designer
Рис.11 Разработанный отчет
Рис.12 Инспектор объектов RvProject1
Свойству Engine присвоим RvSystem.
procedure TForm1.Button1Click(Sender: TObject); // вывод на просмотр
begin
RvSystem1.DefaultDest:=
RvProject1.Execute;
end;
procedure TForm1.Button2Click(Sender: TObject); // вывод на печать
begin
RvSystem1.DefaultDest:=
RvProject1.Execute;
end;
На этом закончим разработку части приложения находящейся на странице Клиенты компонента PageControl1.
Рис.13 Интерфейс приложения на странице Клиенты компонента PageControl1
Далее перейдем к странице Добавить новый заказ компонента PageControl1. Здесь необходимо реализовать ввод данных о новых заказах. Для этого добавим на форму 10 элементов Edit и кнопку Button (назовем ее Registration). Каждому элементу Edit для удобства напишем в свойстве Name имя, например Edit отвечающий за ввод номера клиента назовем Edit_N_cli и т.д.
Для ввода данных напишем процедуру обработки события OnClick для кнопки Registration:
procedure TForm1.RegistrationClick(
begin
Table1.Append;
Table1.FieldByName('N_cli').
Table1.FieldByName('Fam').
Table1.FieldByName('Name').
Table1.FieldByName('Otch').
Table1.FieldByName('Tel').
Table1.Post;
// добавляем данные в элемент Table1 связанный с таблицей meb_client
Table5.Append;
Table5.FieldByName('N_cli').
Table5.FieldByName('N_pro').
Table5.FieldByName('N_meb').
Table5.FieldByName('Dat_zac').
Table5.FieldByName('Dat_post')
Table5.FieldByName('Dop_info')
Table5.Post;
// добавляем данные в элемент Table5 связанный с таблицей meb_zacaz
end;
Рис.14 Интерфейс на странице Добавить новый заказ компонента PageControl1
В правой части главной формы на Panel1 для отображения информации о заказах, товарах и производителях разместим следующие компоненты:
Настроим свойства трех компонентов Table для соединения с нужными нам таблицами БД:
Свойствам DataSet компонентов DataSourse присвоим значения:
После этого всем компонентам Table свойству Active присвоим значение True.
Для того, чтобы наше приложение было компактным, реализуем просмотр трех таблиц с данными в одном DBGrid6. Напишем процедуры обработки событий OnClick для наших кнопок – zacazi, tovar, proizvod. Процедуры путем изменения свойства DataSourse у компонентов DBGrid6 и DBNavigator2 настроят отображение нужных нам данных:
// переключаемся на просмотр заказов
procedure TForm1.ZacaziClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
// переключаемся на просмотр товаров
procedure TForm1.TovarClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
// переключаемся на просмотр производителей
procedure TForm1.ProizvodClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
Для ввода данных о новых товарах и производителях разместим на компоненте Panel2 следующие компоненты:
Напишем процедуру добавления данных для обработки события OnClick кнопки Tovar_Plus:
// добавление данных о товаре и производителе
procedure TForm1.Tovar_PlusClick(Sender: TObject);
begin
Table7.Append;
Table7.FieldByName('N_pro').
Table7.FieldByName('Firma').
Table7.FieldByName('R_s').
Table7.FieldByName('Kon_tel').
Table7.Post;
Table6.Append;
Table6.FieldByName('N_meb').
Table6.FieldByName('
Table6.FieldByName('Cena').
Table6.FieldByName('N_pro').
Table6.Post;
end;
Рис.15 Интерфейс правой части главной формы приложения.
Создание приложения можно считать завешенным.
Заключение.
Ни одно учреждение либо предприятие в наши дни не обходится без документации, будь то бухгалтерские отчёты или учётные записи клиентов. Информационные технологии внедряются для повышения скорости (уменьшения задержки) и эффективности (уменьшение шанса искажения и/или утраты данных) работы с архивами данных, поэтому ожидается, что при использовании оргтехники и специализированного программного обеспечения скорость и качество работы с банками данных, которые при переводе в электронный вид получают название «баз данных», возрастают.
В процессе разработки курсового проекта была рассмотрена проблема автоматизированного учета заказов в мебельном салоне.
В существующей системе обработки заказов мебельного салона были выявлены следующие недостатки:
· скорость обработки информации низкая, так как используются практически не формализованные данные, в основном с бумажных носителей;
· присутствует избыточность данных, так как некоторые данные дублируются, и отследить это в немашинной обработке достаточно трудно, в связи со значительным объемом данных;
· формирование отчетов осложнено вышеперечисленными причинами.
В процессе разработки программы автоматизированного учета заказов мебельного салона были освоены сущность и принципы базы данных, изучены способы организации и методы проектирования БД, а также технологии разработки приложений для их использования.
В ходе курсового проекта была решена поставленная задача по проектированию и созданию базы данных, позволяющая автоматизировать прием и учет заказов клиентов мебельного магазина. Для решения поставленной задачи была использована среда программирования Delphi.
Программа автоматизации рабочего места менеджера мебельного салона позволила:
· снизить трудовые затраты;
· сократить время обработки информации;
· повысить скорость работы с документами;
· устранить многократное дублирование информации;
· максимально сократить количество бумажных документов.
Список литературы:
Приложения:
unit Unit_meb_salon;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, DB, DBTables, ComCtrls,
ExtCtrls, RpRave, RpDefine, RpCon, RpConDS, RpBase, RpSystem;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
Table2: TTable;
Table3: TTable;
Table4: TTable;
DataSource3: TDataSource;
DataSource4: TDataSource;
DataSource5: TDataSource;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
DBGrid4: TDBGrid;
RadioGroup1: TRadioGroup;
Edit_searsh: TEdit;
Edit_N_cli: TEdit;
Edit_Fam: TEdit;
Edit_Name: TEdit;
Edit_Otch: TEdit;
Edit_Tel: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Registration: TButton;
Label7: TLabel;
DBGrid6: TDBGrid;
DBNavigator1: TDBNavigator;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Edit13: TEdit;
Go_N_cli: TButton;
Table5: TTable;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit_N_meb: TEdit;
Edit_N_pro: TEdit;
Edit_Dat_zac: TEdit;
Edit_Dat_post: TEdit;
Table6: TTable;
DataSource6: TDataSource;
Table7: TTable;
DataSource7: TDataSource;
Tovar: TButton;
Proizvod: TButton;
OnSearsh: TButton;
OffSearsh: TButton;
Zacazi: TButton;
DataSource8: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
RvProject1: TRvProject;
RvSystem1: TRvSystem;
RvDataSetConnection1: TRvDataSetConnection;
Button1: TButton;
Button2: TButton;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Edit11: TEdit;
Edit12: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Tovar_Plus: TButton;
DBNavigator2: TDBNavigator;
Label_Dop_info: TLabel;
Edit_Dop_info: TEdit;
procedure Edit_searshChange(Sender: TObject);
procedure RegistrationClick(Sender: TObject);
procedure Go_N_cliClick(Sender: TObject);
procedure TovarClick(Sender: TObject);
procedure ProizvodClick(Sender: TObject);
procedure OnSearshClick(Sender: TObject);
procedure OffSearshClick(Sender: TObject);
procedure ZacaziClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Tovar_PlusClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// процедура поиска клиента по ФИО
procedure TForm1.Edit_searshChange(
var
strField:string;
begin
// выбираем поля поиска
case RadioGroup1.ItemIndex of
0: strField:='Fam';
1: strField:='Imya';
2: strField:='Otch';
end;
// выполняем поиска
Query1.Close;
Query1.SQL.Clear; // ' LIKE "%'+Edit1.Text+'%"' - ищем фрагмент текста
Query1.SQL.Add('Select * from meb_client where '+strField+' LIKE "'+Edit_searsh.Text+'%"');
Query1.Open;
Query1.FieldByName('Fam').
Query1.FieldByName('Name').
Query1.FieldByName('Otch').
end;
// процедура ввода данных о новом заказе
procedure TForm1.RegistrationClick(Sende
begin
Table1.Append; // добавляем данные в таблицу meb_client
Table1.FieldByName('N_cli').
Table1.FieldByName('Fam').
Table1.FieldByName('Name').
Table1.FieldByName('Otch').
Table1.FieldByName('Tel').
Table1.Post;
Table5.Append; // добавляем данные в таблицу meb_zacaz
Table5.FieldByName('N_cli').
Table5.FieldByName('N_pro').
Table5.FieldByName('N_meb').
Table5.FieldByName('Dat_zac').
Table5.FieldByName('Dat_post')
Table5.FieldByName('Dop_info')
Table5.Post;
end;
// процедура перехода к нужному № клиента
procedure TForm1.Go_N_cliClick(Sender: TObject);
begin
Table1.SetKey;
Table1.FieldByName('N_cli').
Table1.GotoKey;
end;
// процедура переключения на просмотр заказов
procedure TForm1.ZacaziClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
// процедура переключения на просмотр товаров
procedure TForm1.TovarClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
// процедура переключения на просмотр производителей
procedure TForm1.ProizvodClick(Sender: TObject);
begin
DBGrid6.DataSource:=
DBNavigator2.DataSource:=
end;
// процедура включения режима поиска
procedure TForm1.OnSearshClick(Sender: TObject);
begin
DBGrid1.DataSource:=
end;
// процедура включения режима просмотра
procedure TForm1.OffSearshClick(Sender: TObject);
begin
DBGrid1.DataSource:=
end;
// процедура просмотра отчета
procedure TForm1.Button1Click(Sender: TObject);
begin
RvSystem1.DefaultDest:=
RvProject1.Execute;
end;
// процедура вывода отчета на печать
procedure TForm1.Button2Click(Sender: TObject);
begin
RvSystem1.DefaultDest:=
RvProject1.Execute;
end;
// процедура добавления
данных о товаре и
procedure TForm1.Tovar_PlusClick(Sender: TObject);
begin
Table7.Append;
Table7.FieldByName('N_pro').
Table7.FieldByName('Firma').
Table7.FieldByName('R_s').
Table7.FieldByName('Kon_tel').
Table7.Post;
Table6.Append;
Table6.FieldByName('N_meb').
Table6.FieldByName('
Table6.FieldByName('Cena').
Table6.FieldByName('N_pro').
Table6.Post;
Информация о работе Автоматизированный учет заказов в мебельном салоне