Автоматизированный учет заказов в мебельном салоне

Автор работы: Пользователь скрыл имя, 08 Марта 2014 в 15:51, курсовая работа

Краткое описание

Целью данного проекта является изучение базы данных, освоение реляционной модели БД, приведение таблиц БД к третьей форме нормализации, овладение способами организации и методами проектирования БД, а также технологии разработки приложений для их использования. Изучение данного материала должно сформировать общий базис знаний по организации и использованию баз данных (БД).
Задачей данной работы является проектирование и создание базы данных и разработка приложения для ее эффективного использования на примере гипотетического «Мебельного салона». Разработанная информационная система должна ускорить и облегчить работу менеджера салона по регистрации и учету заказов, способствуя сокращению временного интервала от обращения клиента в салон до заключения договора о поставке товара, а также сэкономить время на поиске информации о клиентах.

Содержание

Введение………………………………………………………………………………………….3

Аналитическая часть……………………………………………………………………..5
Описание предметной области………………………………………………....5
Объект проектирования……………………………………………………...5
Информационные процессы…………………………………………………5
Требование к ИС…………………………………………………………………6

Проектирование базы данных…………………………………………………………...7
Проектирование информационной модели базы данных…………………….7
Построение логической модели базы данных…………………………………9
Построение физической модели данных……………………………………..13
Создание базы данных……...………………………………………………….17

Создание приложения для работы с базой данных…………………………………...19

Заключение……………………………………………………………………………………...31

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

Прикрепленные файлы: 1 файл

курсовой проект Базы данных.doc

— 864.50 Кб (Скачать документ)

Рис.10  Разработка отчета в Rave Visual Designer

 

 

Рис.11 Разработанный отчет

 

  1. Сформированный отчет сохраним в каталоге с разрабатываемым приложением и укажем путь в свойствах RvProject1

Рис.12 Инспектор объектов RvProject1

 

Свойству Engine присвоим RvSystem.

 

  1. Добавим на форму две кнопки Button1 и Button2. Напишем процедуры для Button1- вывод на просмотр и для Button2 – вывод на печать.

 

procedure TForm1.Button1Click(Sender: TObject); // вывод на просмотр

begin

RvSystem1.DefaultDest:=rdPreview;

RvProject1.Execute;

end;

 

procedure TForm1.Button2Click(Sender: TObject);  // вывод на печать

begin

RvSystem1.DefaultDest:=rdPrinter;

RvProject1.Execute;

end;

 

На этом закончим разработку части приложения находящейся на странице Клиенты компонента PageControl1.

 

 

Рис.13 Интерфейс приложения на странице Клиенты компонента PageControl1

 

Далее перейдем к странице Добавить новый заказ компонента PageControl1. Здесь необходимо реализовать ввод данных о новых заказах.  Для этого добавим на форму 10 элементов Edit и кнопку Button (назовем ее Registration). Каждому элементу Edit для удобства напишем в свойстве Name имя, например Edit отвечающий за ввод номера клиента назовем Edit_N_cli и т.д.

Для ввода данных напишем процедуру обработки события OnClick для кнопки Registration:

procedure TForm1.RegistrationClick(Sender: TObject);

begin

  Table1.Append;

  Table1.FieldByName('N_cli').AsString := Edit_N_cli.Text;

  Table1.FieldByName('Fam').AsString := Edit_Fam.Text;

  Table1.FieldByName('Name').AsString := Edit_Name.Text;

  Table1.FieldByName('Otch').AsString := Edit_Otch.Text;

  Table1.FieldByName('Tel').AsString := Edit_Tel.Text;

  Table1.Post;

// добавляем данные в элемент Table1 связанный с таблицей meb_client

  Table5.Append;

  Table5.FieldByName('N_cli').AsString := Edit_N_cli.Text;

  Table5.FieldByName('N_pro').AsString := Edit_N_pro.Text;

  Table5.FieldByName('N_meb').AsString := Edit_N_meb.Text;

  Table5.FieldByName('Dat_zac').AsString := Edit_Dat_zac.Text;

  Table5.FieldByName('Dat_post').AsString := Edit_Dat_post.Text;

  Table5.FieldByName('Dop_info').AsString := Edit_Dop_info.Text;

  Table5.Post;

// добавляем данные в элемент Table5 связанный с таблицей meb_zacaz

  end;

 

Рис.14 Интерфейс на странице Добавить новый заказ компонента PageControl1

 

В правой части главной формы на Panel1 для отображения информации о заказах, товарах и производителях разместим следующие компоненты:

    • DBGrid6;
    • Table5;
    • Table6;
    • Table7;
    • DataSourse6;
    • DataSourse7;
    • DataSourse8;
    • DBNavigator2;
    • Button(zacazi);
    • Button2(tovar);
    • Button3(proizvod).

Настроим свойства трех компонентов Table для соединения с нужными нам таблицами БД:

    • свойству DatabaseName Table5 присвоим псевдоним meb_salon, а свойству TableName присвоим meb_zacaz;
    • свойству DatabaseName Table6 присвоим псевдоним meb_salon, а свойству TableName присвоим meb_meb;
    • свойству DatabaseName Table7 присвоим псевдоним meb_salon, а свойству TableName присвоим meb_proizvod.

Свойствам DataSet компонентов DataSourse присвоим значения:

    • в DataSourse8 DataSet = Table5;
    • в DataSourse7 DataSet = Table7;
    • в DataSours6 DataSet = Table6.

После этого всем компонентам Table свойству Active присвоим значение True.

Для того, чтобы наше приложение было компактным, реализуем просмотр трех таблиц с данными в одном DBGrid6. Напишем процедуры обработки событий OnClick для наших кнопок – zacazi, tovar, proizvod. Процедуры путем изменения свойства DataSourse у компонентов DBGrid6 и DBNavigator2 настроят отображение нужных нам данных:

     // переключаемся на просмотр заказов

procedure TForm1.ZacaziClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource8;

DBNavigator2.DataSource:=DataSource8;

end;

      // переключаемся на просмотр товаров

procedure TForm1.TovarClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource6;

DBNavigator2.DataSource:=DataSource6;

end;

      // переключаемся на просмотр производителей

procedure TForm1.ProizvodClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource7;

DBNavigator2.DataSource:=DataSource7;

end;

Для ввода данных о новых товарах и производителях разместим на компоненте Panel2 следующие компоненты:

    • Edit11 (для ввода № мебели);
    • Edit12 (для ввода названия мебели);
    • Edit14 (для ввода цены);
    • Edit15 (для ввода фирмы производителя);
    • Edit16 (для ввода № производителя);
    • Edit17 (для ввода расчетного счета производителя);
    • Edit18 (для ввода контактного телефона производителя);
    • Button (назовем Tovar_Plus).

Напишем процедуру добавления данных для обработки события OnClick кнопки Tovar_Plus:

// добавление данных о товаре и производителе

procedure TForm1.Tovar_PlusClick(Sender: TObject);

begin

  Table7.Append;

  Table7.FieldByName('N_pro').AsString := Edit16.Text;

  Table7.FieldByName('Firma').AsString := Edit15.Text;

  Table7.FieldByName('R_s').AsString := Edit17.Text;

  Table7.FieldByName('Kon_tel').AsString := Edit18.Text;

  Table7.Post;

  Table6.Append;

  Table6.FieldByName('N_meb').AsString := Edit11.Text;

  Table6.FieldByName('Naimenovanie').AsString := Edit12.Text;

  Table6.FieldByName('Cena').AsString := Edit14.Text;

  Table6.FieldByName('N_pro').AsString := Edit16.Text;

  Table6.Post;

end;

 

 

Рис.15 Интерфейс правой части главной формы приложения.

 

Создание приложения можно считать завешенным.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение.

 

Ни одно учреждение либо предприятие в наши дни не обходится без документации, будь то бухгалтерские отчёты или учётные записи клиентов. Информационные технологии внедряются для повышения скорости (уменьшения задержки) и эффективности (уменьшение шанса искажения и/или утраты данных) работы с архивами данных, поэтому ожидается, что при использовании оргтехники и специализированного программного обеспечения скорость и качество работы с банками данных, которые при переводе в электронный вид получают название «баз данных», возрастают.

В процессе разработки курсового проекта была рассмотрена проблема автоматизированного учета заказов в мебельном салоне.

В существующей системе обработки заказов мебельного салона были выявлены следующие недостатки:

· скорость обработки информации низкая, так как используются практически не формализованные данные, в основном с бумажных носителей;

· присутствует избыточность данных, так как некоторые данные дублируются, и отследить это в немашинной обработке достаточно трудно, в связи со значительным объемом данных;

· формирование отчетов осложнено вышеперечисленными причинами.

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

В ходе курсового проекта была решена поставленная задача по проектированию и созданию базы данных, позволяющая автоматизировать прием и учет заказов клиентов мебельного магазина. Для решения поставленной задачи была использована среда программирования Delphi.

Программа автоматизации рабочего места менеджера мебельного салона позволила:

· снизить трудовые затраты;

· сократить время обработки информации;

· повысить скорость работы с документами;

· устранить многократное дублирование информации;

· максимально сократить количество бумажных документов.

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

 

  1. Голицина, О.Л. База данных: учебное пособие [Текст] / О.Л.Голицина, Н.В. Максимов, И.И. Попов.- М.: ФОРУМ: ИНФРА-М, 2005- 352 с.: ил.
  2. Гофман, В. Э. Delphi 6 [Текст] / В. Э. Гофман, А. Д. Хомоненко.- СПб, БХВ-Санкт-Петербург, 2002. – 800 с.: ил.
  3. Карпова, Т.С. Базы данных: модели, разработка, реализация [Текст] / Т.С.Карпова. - СПб.: Питер, 2001- 304 с.
  4. Петров, В.Н. Информационные системы [Текст]: учебник / В.Н.Петров. – СПб.: Питер, 2002.- 688 с.: ил.
  5. Фаронов, В.В. Программирование баз данных в Delphi.: учебный курс [Текст]/ В.В. Фаронов. – СПб.: ПИТЕР, 2005.- 459 с.: ил.
  6. Хомоненко, А.Д. Базы данных: Учебник для высших учебных заведений [Текст] /А.Д. Хомоненко, В.М. Цыганков, М.Г.Мальцев. – СПб.: КОРОНА принт, 2002. – 672с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложения:

 

  1. Листинг программы

 

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(Sender: TObject);

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').DisplayLabel:='Фамилия';

Query1.FieldByName('Name').DisplayLabel:='Имя';

Query1.FieldByName('Otch').DisplayLabel:='Отчество';

 

end;

 

// процедура ввода данных  о новом заказе

procedure TForm1.RegistrationClick(Sender: TObject);

begin

  Table1.Append;  // добавляем данные в таблицу meb_client

  Table1.FieldByName('N_cli').AsString := Edit_N_cli.Text;

  Table1.FieldByName('Fam').AsString := Edit_Fam.Text;

  Table1.FieldByName('Name').AsString := Edit_Name.Text;

  Table1.FieldByName('Otch').AsString := Edit_Otch.Text;

  Table1.FieldByName('Tel').AsString := Edit_Tel.Text;

  Table1.Post;

  Table5.Append;  // добавляем данные в таблицу meb_zacaz

  Table5.FieldByName('N_cli').AsString := Edit_N_cli.Text;

  Table5.FieldByName('N_pro').AsString := Edit_N_pro.Text;

  Table5.FieldByName('N_meb').AsString := Edit_N_meb.Text;

  Table5.FieldByName('Dat_zac').AsString := Edit_Dat_zac.Text;

  Table5.FieldByName('Dat_post').AsString := Edit_Dat_post.Text;

  Table5.FieldByName('Dop_info').AsString := Edit_Dop_info.Text;

  Table5.Post;

  end;

 

// процедура перехода  к нужному № клиента

procedure TForm1.Go_N_cliClick(Sender: TObject);

begin

Table1.SetKey;

Table1.FieldByName('N_cli').AsString := Edit13.Text;

 Table1.GotoKey;

end;

 

// процедура переключения на просмотр заказов

procedure TForm1.ZacaziClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource8;

DBNavigator2.DataSource:=DataSource8;

end;

 

// процедура переключения  на просмотр товаров

procedure TForm1.TovarClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource6;

DBNavigator2.DataSource:=DataSource6;

end;

 

// процедура переключения  на просмотр производителей

procedure TForm1.ProizvodClick(Sender: TObject);

begin

DBGrid6.DataSource:=DataSource7;

DBNavigator2.DataSource:=DataSource7;

end;

 

// процедура включения режима поиска

procedure TForm1.OnSearshClick(Sender: TObject);

begin

DBGrid1.DataSource:=DataSource2;

end;

 

// процедура включения режима просмотра

procedure TForm1.OffSearshClick(Sender: TObject);

begin

DBGrid1.DataSource:=DataSource1;

end;

 

// процедура просмотра отчета

procedure TForm1.Button1Click(Sender: TObject);

begin

RvSystem1.DefaultDest:=rdPreview;

RvProject1.Execute;

end;

 

// процедура вывода отчета  на печать

procedure TForm1.Button2Click(Sender: TObject);

begin

RvSystem1.DefaultDest:=rdPrinter;

RvProject1.Execute;

end;

 

// процедура добавления  данных о товаре и производителе

procedure TForm1.Tovar_PlusClick(Sender: TObject);

begin

  Table7.Append;

  Table7.FieldByName('N_pro').AsString := Edit16.Text;

  Table7.FieldByName('Firma').AsString := Edit15.Text;

  Table7.FieldByName('R_s').AsString := Edit17.Text;

  Table7.FieldByName('Kon_tel').AsString := Edit18.Text;

  Table7.Post;

  Table6.Append;

  Table6.FieldByName('N_meb').AsString := Edit11.Text;

  Table6.FieldByName('Naimenovanie').AsString := Edit12.Text;

  Table6.FieldByName('Cena').AsString := Edit14.Text;

  Table6.FieldByName('N_pro').AsString := Edit16.Text;

  Table6.Post;

Информация о работе Автоматизированный учет заказов в мебельном салоне