Склад строительных материалов

Автор: Пользователь скрыл имя, 06 Апреля 2013 в 09:44, курсовая работа

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

При создании СУБД нужно четко знать:
- Задачи склада?
Склад занимается поставками товара различных фирм в торговые точки или фирменные магазины.
- Откуда берется товар?
Весь товар хранится на складе, куда его периодически завозят фирмы-производители.
- Кто покупает и реализует товар, полученный со склада?
Существуют клиенты – магазины или люди, которые реализуют товар за определенную цену (её клиент устанавливает в зависимости от дефицита товара или спроса на товар).
- Кто на складе занимается договорами?

Оглавление

Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Технический проект . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Руководство пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Руководство программиста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Список использованой литератури . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Файлы: 1 файл

Записка к курсовой работе по базам данных.doc

— 776.00 Кб (Скачать)

else FormMainMenu.Caption:='Я  знала, что вы добрый человек!';

  a.Result:=0;

  end;

end.

Переменные  и процедуры модуля

unit UnitSklad;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Buttons, ExtCtrls,

  DBCtrls, RpRave, RpDefine, RpCon, RpConDS, RpConBDE, WordXP, OleServer;

 

type

  TFormSklad = class(TForm)

    DBGridGeneralSklad: TDBGrid;

    DataSourceGeneralSklad: TDataSource;

    QueryGeneralSklad: TQuery;

    DataSourceSection: TDataSource;

    QuerySection: TQuery;

    DataSourceManufacture: TDataSource;

    QueryManufacture: TQuery;

    BitBtn1: TBitBtn;

    DBNavigator1: TDBNavigator;

    Label1: TLabel;

    RadioGroup1: TRadioGroup;

    DataSourceContract: TDataSource;

    DataSourceClients: TDataSource;

    DataSourceStreets: TDataSource;

    DataSourceAgents: TDataSource;

    QueryContract: TQuery;

    QueryClients: TQuery;

    QueryStreets: TQuery;

    QueryAgents: TQuery;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    BitBtn4: TBitBtn;

    BitBtn5: TBitBtn;

    procedure ShowGeneralSklad;{(Sender: TObject);}

    procedure FormActivate(Sender: TObject);

    procedure RadioGroup1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure BitBtn5Click(Sender: TObject);

    procedure DBGridGeneralSkladCellClick(Column: TColumn);

    procedure DBGridGeneralSkladKeyUp(Sender: TObject; var Key: Word;

      Shift: TShiftState);

 

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormSklad: TFormSklad;

  nowID:integer;{Хранит номер текущей записи}

  Sort:string;  {Строка для запроса, отвечающая за поле, по кооторому необходимо

                сортировать данные}

 

implementation

 

uses UnitAddGoods, UnitEditGoods, UnitPrintSklad;

 

{$R *.dfm}

{Процедура отображения таблицы GeneralSklad}

procedure TFormSklad.ShowGeneralSklad;{(Sender: TObject);}

begin

QueryGeneralSklad.Close;

  QueryGeneralSklad.SQL.Clear;

  QueryGeneralSklad.SQL.Add('SELECT a.IDGoods,a.CodeGoods Артикул, a.NameGoods Наименование,');

  QueryGeneralSklad.SQL.Add(' d.NameSection Раздел, e.NameManufacture Производитель,');

  QueryGeneralSklad.SQL.Add(' a.PriceOne Цена_Зак_грн, a.PriceTwo Цена_Реализ_грн, a.CountGoods Кол_во');

  QueryGeneralSklad.SQL.Add(' from generalsklad as a, section as d, manufacture as e');

  QueryGeneralSklad.SQL.Add(' where a.Section=d.IDSection and a.Manufacture=e.IDManufacture'+Sort);

  QueryGeneralSklad.Open;

  DBGridGeneralSklad.Fields[0].Visible:=false;

  if not QueryGeneralSklad.IsEmpty then

    nowID:=QueryGeneralSklad.FieldValues['IDGoods'];

    end;

 

procedure TFormSklad.FormActivate(Sender: TObject);

begin

  Sort:=' ORDER BY a.NameGoods'; {Включение сортировки по полю <<Наименование товара>>}

  ShowGeneralSklad;

end;

 

procedure TFormSklad.RadioGroup1Click(Sender: TObject);

begin

  {Включение необходимой  сортировки с помощью изминения  запроса чтения данных}

  if RadioGroup1.ItemIndex=0 then Sort:=' ORDER BY a.NameGoods';

  if RadioGroup1.ItemIndex=1 then Sort:=' ORDER BY d.NameSection';

  if RadioGroup1.ItemIndex=2 then Sort:=' ORDER BY e.NameManufacture';

  if RadioGroup1.ItemIndex=3 then Sort:=' ORDER BY a.CountGoods';

  ShowGeneralSklad;

end;

 

procedure TFormSklad.BitBtn2Click(Sender: TObject);

begin

FormAddGoods.ShowModal;

end;

 

procedure TFormSklad.BitBtn3Click(Sender: TObject);

begin

FormEditGoods.ShowModal;

end;

 

procedure TFormSklad.BitBtn4Click(Sender: TObject);

var kol:integer;

begin

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('SELECT CountGoods FROM GeneralSklad WHERE IDGoods='''+IntToStr(nowID)+'''');

  FormSklad.QueryGeneralSklad.Open;

  kol:=FormSklad.DBGridGeneralSklad.Fields[0].Value;

  FormSklad.ShowGeneralSklad;

  if kol<>0 then {Проверка наличия товара на складе}

    begin

      MessageDlg('Нельзя  удалить товар если он имеется  на складе!',mtWarning,[mbOK],0);

      exit;

    end;

  if MessageDlg('Вы уверены,  что хотите удалить текущее  наименование товара?',mtWarning,[mbOK,mbCancel],0)=mrCancel then exit;

  {Удаление текущего  наименования товра}

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('DELETE FROM GeneralSklad WHERE IDGoods='''+IntToStr(nowID)+'''');

  FormSklad.QueryGeneralSklad.ExecSQL;

  FormSklad.ShowGeneralSklad;

end;

 

procedure TFormSklad.BitBtn5Click(Sender: TObject);

begin

FormPrintSklad.ShowModal;

end;

 

procedure TFormSklad.DBGridGeneralSkladCellClick(Column: TColumn);

begin

nowID:=QueryGeneralSklad.FieldValues['IDGoods']; {Сохраняем номер текущей записи при перемещении по таблице}

end;

 

procedure TFormSklad.DBGridGeneralSkladKeyUp(Sender: TObject;

  var Key: Word; Shift: TShiftState);

begin

nowID:=QueryGeneralSklad.FieldValues['IDGoods']; {Сохраняем номер текущей записи при перемещении по таблице}

end;

end.

 

Переменные и процедуры  модуля

unit UnitAddGoods;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, UnitSklad;

 

type

  TFormAddGoods = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Label2: TLabel;

    Edit2: TEdit;

    Label3: TLabel;

    ComboBox1: TComboBox;

    Label4: TLabel;

    ComboBox2: TComboBox;

    Label5: TLabel;

    Edit3: TEdit;

    Label6: TLabel;

    Edit4: TEdit;

    Label7: TLabel;

    Edit5: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure ShowSection;

    procedure ShowManufacture;

    procedure FormActivate(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormAddGoods: TFormAddGoods;

 

implementation

 

{$R *.dfm}

{ПРоцедура отображения  таблицы <<Section>>}

procedure TFormAddGoods.ShowSection;

begin

  FormSklad.QuerySection.Close;

  FormSklad.QuerySection.SQL.Clear;

  FormSklad.QuerySection.SQL.Add('SELECT NameSection FROM Section ORDER BY NameSection');

  FormSklad.QuerySection.Open;

  ComboBox1.Clear;

  FormSklad.QuerySection.First;

  while not FormSklad.QuerySection.Eof do

    begin

      ComboBox1.Items.Add(FormSklad.QuerySection.FieldValues['NameSection']);

      FormSklad.QuerySection.Next;

    end;

  ComboBox1.ItemIndex:=0;

end;

 

{ПРоцедура отображения  таблицы <<Manufacture>>}

procedure TFormAddGoods.ShowManufacture;

begin

  FormSklad.QueryManufacture.Close;

  FormSklad.QueryManufacture.SQL.Clear;

  FormSklad.QueryManufacture.SQL.Add('SELECT NameManufacture FROM Manufacture ORDER BY NameManufacture');

  FormSklad.QueryManufacture.Open;

  ComboBox2.Clear;

  FormSklad.QueryManufacture.First;

  while not FormSklad.QueryManufacture.Eof do

    begin

      ComboBox2.Items.Add(FormSklad.QueryManufacture.FieldValues['NameManufacture']);

      FormSklad.QueryManufacture.Next;

    end;

  ComboBox2.ItemIndex:=0;

end;

 

procedure TFormAddGoods.FormActivate(Sender: TObject);

begin

  ShowSection;

  ShowManufacture;

end;

 

procedure TFormAddGoods.BitBtn1Click(Sender: TObject);

var sec,manuf:string;

begin

if (Edit1.Text='')or(Edit2.Text='')or(Edit3.Text='')or(Edit4.Text='')or(Edit5.Text='') then

    begin

      MessageDlg('не все данные введены!',mtWarning,[mbOK],0);

      exit;

  end;

  {Определение кода раздела по неименованию}

  FormSklad.QuerySection.Close;

  FormSklad.QuerySection.SQL.Clear;

  FormSklad.QuerySection.SQL.Add('SELECT IDSection FROM Section WHERE NameSection='''+ComboBox1.Text+'''');

  FormSklad.QuerySection.Open;

  sec:=FormSklad.QuerySection.FieldValues['IDSection'];

  {Определение кода произволителя по названию}

  FormSklad.QueryManufacture.Close;

  FormSklad.QueryManufacture.SQL.Clear;

  FormSklad.QueryManufacture.SQL.Add('SELECT IDManufacture FROM Manufacture WHERE NameManufacture='''+ComboBox2.Text+'''');

  FormSklad.QueryManufacture.Open;

  manuf:=FormSklad.QueryManufacture.FieldValues['IDManufacture'];

  {Добавление нового наименования товара}

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('INSERT INTO GeneralSklad (NameGoods, Section, Manufacture, PriceOne, PriceTwo, CountGoods, CodeGoods) VALUES ('''+Edit2.Text+''','''+sec+''','''+manuf+''','''+Edit3.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+Edit1.Text+''')');

  FormSklad.QueryGeneralSklad.ExecSQL;

  Close;

  FormSklad.ShowGeneralSklad;

end;

 

procedure TFormAddGoods.BitBtn2Click(Sender: TObject);

begin

FormAddGoods.Close;

end;

end.

 

Переменные  и процедуры модуля

unit UnitEditGoods;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, UnitSklad;

type

  TFormEditGoods = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    ComboBox1: TComboBox;

    ComboBox2: TComboBox;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure ShowSection;

    procedure ShowManufacture;

    procedure FormActivate(Sender: TObject);

    procedure ShowGeneralSklad;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormEditGoods: TFormEditGoods;

 

implementation

 

{$R *.dfm}

{Процедура отображения  таблицы <<Section>>}

procedure TFormEditGoods.ShowSection;

begin

  FormSklad.QuerySection.Close;

  FormSklad.QuerySection.SQL.Clear;

  FormSklad.QuerySection.SQL.Add('SELECT NameSection FROM Section ORDER BY NameSection');

  FormSklad.QuerySection.Open;

  ComboBox1.Clear;

  FormSklad.QuerySection.First;

  while not FormSklad.QuerySection.Eof do

    begin

      ComboBox1.Items.Add(FormSklad.QuerySection.FieldValues['NameSection']);

      FormSklad.QuerySection.Next;

    end;

end;

 

{Процедура отображения производителей}

procedure TFormEditGoods.ShowManufacture;

begin

  FormSklad.QueryManufacture.Close;

  FormSklad.QueryManufacture.SQL.Clear;

  FormSklad.QueryManufacture.SQL.Add('SELECT NameManufacture FROM Manufacture ORDER BY NameManufacture');

  FormSklad.QueryManufacture.Open;

  ComboBox2.Clear;

  FormSklad.QueryManufacture.First;

  while not FormSklad.QueryManufacture.Eof do

    begin

      ComboBox2.Items.Add(FormSklad.QueryManufacture.FieldValues['NameManufacture']);

      FormSklad.QueryManufacture.Next;

    end;

end;

 

{Процедура отображения  информации о текущем товаре}

procedure TFormEditGoods.ShowGeneralSklad;

begin

  Edit2.Text:=FormSklad.QueryGeneralSklad.FieldValues['Наименование'];

  ShowSection;

  ShowManufacture;

  ComboBox1.Text:=FormSklad.QueryGeneralSklad.FieldValues['Раздел'];

  ComboBox2.Text:=FormSklad.QueryGeneralSklad.FieldValues['Производитель'];

  Edit3.Text:=FormSklad.QueryGeneralSklad.FieldValues['Цена_Зак_грн'];

  Edit4.Text:=FormSklad.QueryGeneralSklad.FieldValues['Цена_Реализ_грн'];

  Edit5.Text:=FormSklad.QueryGeneralSklad.FieldValues['Кол_во'];

  Edit1.Text:=FormSklad.QueryGeneralSklad.FieldValues['Артикул'];

end;

 

procedure TFormEditGoods.BitBtn1Click(Sender: TObject);

var sec,manuf:string;

begin

  if (Edit1.Text='')or(Edit2.Text='')or(Edit3.Text='')or(Edit4.Text='')or(Edit5.Text='') then

    begin

      MessageDlg('не все данные введены!',mtWarning,[mbOK],0);

      exit;

end;

 

FormSklad.QuerySection.Close;

  FormSklad.QuerySection.SQL.Clear;

  FormSklad.QuerySection.SQL.Add('SELECT IDSection FROM Section WHERE NameSection='''+ComboBox1.Text+'''');

  FormSklad.QuerySection.Open;

  sec:=FormSklad.QuerySection.FieldValues['IDSection'];

 

  FormSklad.QueryManufacture.Close;

  FormSklad.QueryManufacture.SQL.Clear;

  FormSklad.QueryManufacture.SQL.Add('SELECT IDManufacture FROM Manufacture WHERE NameManufacture='''+ComboBox2.Text+'''');

  FormSklad.QueryManufacture.Open;

  manuf:=FormSklad.QueryManufacture.FieldValues['IDManufacture'];

 

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('UPDATE GeneralSklad SET NAmeGoods='''+Edit2.Text+''', Section='''+sec+''', Manufacture='''+manuf+''', PriceOne='''+Edit3.Text+''', PriceTwo='''+Edit4.Text+''', CountGoods='''+Edit5.Text+''', CodeGoods='''+Edit1.Text+''' WHERE IDGoods='''+IntToStr(nowID)+'''');

  FormSklad.QueryGeneralSklad.ExecSQL;

  Close;

  FormSklad.ShowGeneralSklad;

end;

 

procedure TFormEditGoods.FormActivate(Sender: TObject);

begin

  ShowGeneralSklad;

end;

 

procedure TFormEditGoods.BitBtn2Click(Sender: TObject);

begin

FormEditGoods.Close;

end;

end.

 

Переменные  и процедуры модуля

unit UnitContract;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Grids, DBGrids, UnitSklad, StdCtrls, Buttons, ExcelXP, WordXP,

  OleServer;

 

type

  TFormContract = class(TForm)

    DBGridContract: TDBGrid;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    BitBtn4: TBitBtn;

    BitBtn5: TBitBtn;

    BitBtn6: TBitBtn;

    Label1: TLabel;

    ComboBox1: TComboBox;

    procedure FormActivate(Sender: TObject);

    procedure ShowContract;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure DBGridContractCellClick(Column: TColumn);

    procedure DBGridContractKeyUp(Sender: TObject; var Key: Word;

      Shift: TShiftState);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure BitBtn5Click(Sender: TObject);

    procedure BitBtn6Click(Sender: TObject);

    procedure ComboBox1Change(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

 

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormContract: TFormContract;

  fClient,fPay,fDeliver:string; {Строки, хранящие переметры фильтрации данных}

 

implementation

 

uses UnitEditContract;

 

{$R *.dfm}

{Процедура отображения таблицы <<Contract>>}

procedure TFormContract.ShowContract;

begin

  FormSklad.QueryContract.Close;

  FormSklad.QueryContract.SQL.Clear;

  FormSklad.QueryContract.SQL.Add('SELECT c.IDContract, b.Enterprise Предприниматель, b.Shop Магазин, ');

  FormSklad.QueryContract.SQL.Add(' a.NameGoods Наименование, d.NameSection Раздел, e.NameManufacture Производитель, ');

  FormSklad.QueryContract.SQL.Add(' c.CountGoods Кол_во, c.Pay Опл, c.Delivery Отг ');

  FormSklad.QueryContract.SQL.Add(' from Contract as c, Clients as b, GeneralSklad as a, Section as d, Manufacture as e ');

  FormSklad.QueryContract.SQL.Add(' where b.IDClient=c.Client and a.IDGoods=c.Goods and d.IDSection=a.Section and e.IDManufacture=a.Manufacture'+fPay+fDeliver+fClient);

  FormSklad.QueryContract.Open;

  DBGridContract.Fields[0].Visible:=false;

  if not FormSklad.QueryContract.IsEmpty then

    begin

      FormSklad.QueryContract.First;

      nowID:=FormSklad.QueryContract.FieldValues['IDContract'];

    end;

end;

 

procedure TFormContract.FormActivate(Sender: TObject);

begin

  fPay:='';{Фильтрация отсутствует}

  fDeliver:='';

  fClient:='';

  {Заполнение списка  клиентов для выбора параметра  фильтрации по клиентам}

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('SELECT Enterprise FROM Clients ORDER BY Enterprise');

  FormSklad.QueryClients.Open;

  ComboBox1.Clear;

  FormSklad.QueryClients.First;

  while not FormSklad.QueryClients.Eof do

    begin

      ComboBox1.Items.Add(FormSklad.QueryClients.FieldValues['Enterprise']);

      FormSklad.QueryClients.Next;

    end;

  ComboBox1.Text:=FormSklad.QueryClients.FieldValues['Enterprise'];

  ShowContract;

end;

 

 

 

procedure TFormContract.BitBtn1Click(Sender: TObject);

var kol,goods:string;

    pay,delivery:boolean;

begin

  FormSklad.QueryContract.Close;

  FormSklad.QueryContract.SQL.Clear;

  FormSklad.QueryContract.SQL.Add('SELECT Goods, CountGoods Кол_во, Pay Опл, Delivery Отг ');

  FormSklad.QueryContract.SQL.Add(' from Contract where IDContract='''+IntToStr(nowID)+'''');

Информация о работе Склад строительных материалов