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

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

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

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

Оглавление

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

Файлы: 1 файл

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

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

begin

  FormSklad.QuerySection.Close;

  FormSklad.QuerySection.SQL.Clear;

  FormSklad.QuerySection.SQL.Add('SELECT d.NameSection from GeneralSklad as a, Section as d, Manufacture as e');

  FormSklad.QuerySection.SQL.Add(' where a.Section=d.IDSection and a.Manufacture=e.IDManufacture and e.NameManufacture='''+Proizvodit+'''');

  FormSklad.QuerySection.Open;

  ComboBox3.Clear;

  if not FormSklad.QuerySection.IsEmpty then

  begin

    FormSklad.QuerySection.First;

    while not FormSklad.QuerySection.Eof do

      begin

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

        FormSklad.QuerySection.Next;

      end;

    ComboBox3.Text:=Razdel;

  end;

end;

 

procedure TFormEditContract.ShowNameGoods;

begin

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('SELECT a.NameGoods from GeneralSklad as a, Section as d, Manufacture as e');

  FormSklad.QueryGeneralSklad.SQL.Add(' where a.Section=d.IDSection and a.Manufacture=e.IDManufacture and e.NameManufacture='''+Proizvodit+''' and d.NameSection='''+Razdel+'''');

  FormSklad.QueryGeneralSklad.Open;

  ComboBox2.Clear;

  if not FormSklad.QueryGeneralSklad.IsEmpty then

  begin

    FormSklad.QueryGeneralSklad.First;

    while not FormSklad.QueryGeneralSklad.Eof do

      begin

        ComboBox2.Items.Add(FormSklad.QueryGeneralSklad.FieldValues['NameGoods']);

        FormSklad.QueryGeneralSklad.Next;

      end;

    ComboBox2.Text:=Naimenov;

  end;

end;

 

procedure TFormEditContract.BitBtn2Click(Sender: TObject);

begin

FormEditContract.Close;

end;

 

procedure TFormEditContract.FormActivate(Sender: TObject);

begin

  ShowNowData;

  ShowEnterprise;

  ShowManufacture;

  ShowSection;

  ShowNameGoods;

  Edit1.Text:=Kolvo;

  ComboBox5.Text:=Oplacheno;

  ComboBox6.Text:=Otgrugeno;

end;

 

procedure TFormEditContract.FormClose(Sender: TObject;

  var Action: TCloseAction);

begin

   FormContract.ShowContract;

end;

 

procedure TFormEditContract.BitBtn1Click(Sender: TObject);

var goods,klient:string;kol:integer;

begin

  if (Edit1.Text='')or(Edit2.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='''+ComboBox3.Text+'''');

  FormSklad.QuerySection.Open;

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

  FormSklad.QueryManufacture.Close;

  FormSklad.QueryManufacture.SQL.Clear;

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

  FormSklad.QueryManufacture.Open;

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

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('SELECT IDGoods, CountGoods FROM GeneralSklad WHERE Section='''+Razdel+''' and Manufacture='''+Proizvodit+''' and NameGoods='''+ComboBox2.Text+'''');

  FormSklad.QueryGeneralSklad.Open;

  if FormSklad.QueryGeneralSklad.IsEmpty then

    begin

      MessageDlg('Такого  товара не существует!',mtWarning,[mbOK],0);

      exit;

    end;

  goods:=FormSklad.QueryGeneralSklad.FieldValues['IDGoods'];

  kol:=StrToInt(Edit1.Text)-StrToInt(Kolvo);

  if not (kol<FormSklad.QueryGeneralSklad.FieldByName('CountGoods').AsInteger) then

    begin

      MessageDlg('Недостаточно  данного товара на складе!',mtWarning,[mbOK],0);

      FormSklad.ShowGeneralSklad;

      exit;

    end;

  kol:=FormSklad.QueryGeneralSklad.FieldByName('CountGoods').AsInteger-kol;

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('SELECT IDClient FROM Clients WHERE Enterprise='''+ComboBox1.Text+'''');

  FormSklad.QueryClients.Open;

  klient:=FormSklad.QueryClients.FieldValues['IDClient'];

 

  FormSklad.QueryContract.Close;

  FormSklad.QueryContract.SQL.Clear;

  FormSklad.QueryContract.SQL.Add('UPDATE Contract SET Client='''+klient+''', Goods='''+goods+''', CountGoods='''+Edit1.Text+''', Pay='''+ComboBox5.Text+''', Delivery='''+ComboBox6.Text+''' WHERE IDContract='''+IntToStr(nowID)+'''');

  FormSklad.QueryContract.ExecSQL;

 

  FormSklad.QueryGeneralSklad.Close;

  FormSklad.QueryGeneralSklad.SQL.Clear;

  FormSklad.QueryGeneralSklad.SQL.Add('UPDATE GeneralSklad SET  CountGoods='''+IntToStr(kol)+''' WHERE IDGoods='''+goods+'''');

  FormSklad.QueryGeneralSklad.ExecSQL;

 

  Close;

  FormSklad.ShowGeneralSklad;

  FormContract.ShowContract;

end;

 

procedure TFormEditContract.ComboBox3Change(Sender: TObject);

begin

  Razdel:=ComboBox3.Items[ComboBox3.ItemIndex];

  ShowNameGoods;

end;

 

procedure TFormEditContract.ComboBox1Change(Sender: TObject);

begin

  Proizvodit:=ComboBox1.Items[ComboBox1.ItemIndex];

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('SELECT Shop FROM Clients WHERE Enterprise='''+Proizvodit+'''');

  FormSklad.QueryClients.Open;

  Edit2.Text:=FormSklad.QueryClients.FieldValues['Shop'];

end;

 

procedure TFormEditContract.ComboBox4Change(Sender: TObject);

begin

  Proizvodit:=ComboBox4.Items[ComboBox4.ItemIndex];

  ShowSection;

  ShowNameGoods;

end;

end.

 

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

unit UnitClients;

 

interface

 

uses

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

  Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DBCtrls;

 

type

  TFormClients = class(TForm)

    DBGridClients: TDBGrid;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    DBNavigator1: TDBNavigator;

    procedure FormActivate(Sender: TObject);

    procedure ShowClients;

    procedure DBGridClientsCellClick(Column: TColumn);

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

      Shift: TShiftState);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormClients: TFormClients;

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

 

implementation

 

uses UnitAddClient, UnitEditClient, UnitSklad;

 

{$R *.dfm}

 

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

procedure TFormClients.ShowClients;

begin

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

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

  FormSklad.QueryClients.SQL.Add(' f.NameStreet Улица, b.House Дом, g.NameAgent Агент ');

  FormSklad.QueryClients.SQL.Add(' from Clients as b, Streets as f, Agents as g');

  FormSklad.QueryClients.SQL.Add(' where f.IDStreet=b.Street and g.IDAgent=b.Agent');

  FormSklad.QueryClients.Open;

  DBGridClients.Fields[0].Visible:=false; {Поле ID не отображается}

  if not FormSklad.QueryClients.IsEmpty then {если в результате запроса таблица не пуста}

    nowID:=FormSklad.QueryClients.FieldValues['IDClient']; {то сохраняем код текущей записи}

end;

 

procedure TFormClients.FormActivate(Sender: TObject);

begin

  ShowClients;

end;

 

procedure TFormClients.DBGridClientsCellClick(Column: TColumn);

begin

  nowID:=FormSklad.QueryClients.FieldValues['IDClient'];{При перемещении по таблице сохраняем код текущей записи}

end;

 

procedure TFormClients.DBGridClientsKeyUp(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

  nowID:=FormSklad.QueryClients.FieldValues['IDClient'];{При перемещении по таблице сохраняем код текущей записи}

end;

 

procedure TFormClients.BitBtn1Click(Sender: TObject);

begin

  FormAddClient.ShowModal;{Вызов формы  для добавления нового клиента}

end;

 

procedure TFormClients.BitBtn2Click(Sender: TObject);

begin

  FormEditClient.ShowModal;{Вызов  формы для редактирования клиента}

end;

 

procedure TFormClients.BitBtn3Click(Sender: TObject);

begin

  FormSklad.QueryContract.Close;

  FormSklad.QueryContract.SQL.Clear;

  FormSklad.QueryContract.SQL.Add('SELECT count(*) kol FROM Contract WHERE Pay=False and Client='''+IntToStr(nowID)+'''');

  FormSklad.QueryContract.Open;

  if FormSklad.QueryContract.FieldByName('kol').AsInteger>0 then

   {Если клиент ничего не должен, то можно удалить его}

    begin

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

      exit;

    end;

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

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('DELETE FROM Clients WHERE IDClient='''+IntToStr(nowID)+'''');

  FormSklad.QueryClients.ExecSQL;

  ShowClients;

end;

end.

 

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

unit UnitAddClient;

 

interface

 

uses

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

  Dialogs, StdCtrls, Buttons, UnitClients;

 

type

  TFormAddClient = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Label2: TLabel;

    Edit2: TEdit;

    Label3: TLabel;

    ComboBox1: TComboBox;

    Label4: TLabel;

    Edit3: TEdit;

    Label5: TLabel;

    ComboBox2: TComboBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure FormActivate(Sender: TObject);

    procedure ShowStreets;

    procedure ShowAgents;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormAddClient: TFormAddClient;

 

implementation

 

uses UnitSklad;

 

{$R *.dfm}

procedure TFormAddClient.ShowStreets;

begin

  FormSklad.QueryStreets.Close;

  FormSklad.QueryStreets.SQL.Clear;

  FormSklad.QueryStreets.SQL.Add('SELECT NameStreet FROM Streets ORDER BY NameStreet');

  FormSklad.QueryStreets.Open;

  ComboBox1.Clear;

  FormSklad.QueryStreets.First;

  while not FormSklad.QueryStreets.Eof do

    begin

      ComboBox1.Items.Add(FormSklad.QueryStreets.FieldValues['NameStreet']);

      FormSklad.QueryStreets.Next;

    end;

  ComboBox1.ItemIndex:=0;

end;

 

procedure TFormAddClient.ShowAgents;

begin

  FormSklad.QueryAgents.Close;

  FormSklad.QueryAgents.SQL.Clear;

  FormSklad.QueryAgents.SQL.Add('SELECT NameAgent FROM Agents ORDER BY NameAgent');

  FormSklad.QueryAgents.Open;

  ComboBox2.Clear;

  FormSklad.QueryAgents.First;

  while not FormSklad.QueryAgents.Eof do

    begin

      ComboBox2.Items.Add(FormSklad.QueryAgents.FieldValues['NameAgent']);

      FormSklad.QueryAgents.Next;

    end;

  ComboBox2.ItemIndex:=0;

end;

 

procedure TFormAddClient.FormActivate(Sender: TObject);

begin

  ShowStreets;

  ShowAgents;

end;

 

procedure TFormAddClient.BitBtn1Click(Sender: TObject);

var str,ag:string;

begin

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

    begin

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

      exit;

    end;

 

  FormSklad.QueryStreets.Close;

  FormSklad.QueryStreets.SQL.Clear;

  FormSklad.QueryStreets.SQL.Add('SELECT IDStreet FROM Streets WHERE NameStreet='''+ComboBox1.Text+'''');

  FormSklad.QueryStreets.Open;

  str:=FormSklad.QueryStreets.FieldValues['IDStreet'];

 

  FormSklad.QueryAgents.Close;

  FormSklad.QueryAgents.SQL.Clear;

  FormSklad.QueryAgents.SQL.Add('SELECT IDAgent FROM Agents WHERE NameAgent='''+ComboBox2.Text+'''');

  FormSklad.QueryAgents.Open;

  ag:=FormSklad.QueryAgents.FieldValues['IDAgent'];

 

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('INSERT INTO Clients (Enterprise, Shop, Street, House, Agent) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''','''+str+''','''+Edit3.Text+''','''+ag+''')');

  FormSklad.QueryClients.ExecSQL;

  Close;

  FormClients.ShowClients;

end;

 

procedure TFormAddClient.BitBtn2Click(Sender: TObject);

begin

FormAddClient.Close;

end;

end.

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

unit UnitEditClient;

 

interface

 

uses

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

  Dialogs, StdCtrls, Buttons, UnitSklad;

 

type

  TFormEditClient = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Label2: TLabel;

    Edit2: TEdit;

    Label3: TLabel;

    ComboBox1: TComboBox;

    Label4: TLabel;

    Edit3: TEdit;

    Label5: TLabel;

    ComboBox2: TComboBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure ShowStreets;

    procedure ShowAgents;

    procedure ShowClients;

    procedure FormActivate(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormEditClient: TFormEditClient;

 

implementation

 

uses UnitClients;

 

{$R *.dfm}

 

procedure TFormEditClient.ShowStreets;

begin

  FormSklad.QueryStreets.Close;

  FormSklad.QueryStreets.SQL.Clear;

  FormSklad.QueryStreets.SQL.Add('SELECT NameStreet FROM Streets ORDER BY NameStreet');

  FormSklad.QueryStreets.Open;

  ComboBox1.Clear;

  FormSklad.QueryStreets.First;

  while not FormSklad.QueryStreets.Eof do

    begin

      ComboBox1.Items.Add(FormSklad.QueryStreets.FieldValues['NameStreet']);

      FormSklad.QueryStreets.Next;

    end;

end;

 

procedure TFormEditClient.ShowAgents;

begin

  FormSklad.QueryAgents.Close;

  FormSklad.QueryAgents.SQL.Clear;

  FormSklad.QueryAgents.SQL.Add('SELECT NameAgent FROM Agents ORDER BY NameAgent');

  FormSklad.QueryAgents.Open;

  ComboBox2.Clear;

  FormSklad.QueryAgents.First;

  while not FormSklad.QueryAgents.Eof do

    begin

      ComboBox2.Items.Add(FormSklad.QueryAgents.FieldValues['NameAgent']);

      FormSklad.QueryAgents.Next;

    end;

end;

 

procedure TFormEditClient.ShowClients;

begin

  Edit1.Text:=FormSklad.QueryClients.FieldValues['Предприниматель'];

  Edit2.Text:=FormSklad.QueryClients.FieldValues['Магазин'];

  ShowStreets;

  ShowAgents;

  ComboBox1.Text:=FormSklad.QueryClients.FieldValues['Улица'];

  Edit3.Text:=FormSklad.QueryClients.FieldValues['Дом'];

  ComboBox2.Text:=FormSklad.QueryClients.FieldValues['Агент'];

end;

 

procedure TFormEditClient.FormActivate(Sender: TObject);

begin

  ShowClients;

end;

 

procedure TFormEditClient.BitBtn1Click(Sender: TObject);

var str,ag:string;

begin

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

    begin

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

      exit;

    end;

  FormSklad.QueryStreets.Close;

  FormSklad.QueryStreets.SQL.Clear;

  FormSklad.QueryStreets.SQL.Add('SELECT IDStreet FROM Streets WHERE NameStreet='''+ComboBox1.Text+'''');

  FormSklad.QueryStreets.Open;

  str:=FormSklad.QueryStreets.FieldValues['IDStreet'];

 

  FormSklad.QueryAgents.Close;

  FormSklad.QueryAgents.SQL.Clear;

  FormSklad.QueryAgents.SQL.Add('SELECT IDAgent FROM Agents WHERE NameAgent='''+ComboBox2.Text+'''');

  FormSklad.QueryAgents.Open;

  ag:=FormSklad.QueryAgents.FieldValues['IDAgent'];

 

  FormSklad.QueryClients.Close;

  FormSklad.QueryClients.SQL.Clear;

  FormSklad.QueryClients.SQL.Add('UPDATE Clients SET Enterprise='''+Edit1.Text+''', Shop='''+Edit2.Text+''', Street='''+str+''', House='''+Edit3.Text+''', Agent='''+ag+''' WHERE IDClient='''+IntToStr(nowID)+'''');

  FormSklad.QueryClients.ExecSQL;

  Close;

  FormClients.ShowClients;

end;

 

procedure TFormEditClient.BitBtn2Click(Sender: TObject);

begin

FormEditClient.Close;

end;

end.

 

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

unit UnitEditAgent;

 

interface

 

uses

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

  Dialogs, StdCtrls, Buttons, Grids, DBGrids, UnitSklad;

 

type

  TFormEditAgent = class(TForm)

    DBGrid1: TDBGrid;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    BitBtn4: TBitBtn;

    Label1: TLabel;

    Edit1: TEdit;

    procedure FormActivate(Sender: TObject);

    procedure DBGrid1CellClick(Column: TColumn);

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

      Shift: TShiftState);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  FormEditAgent: TFormEditAgent;

 

implementation

 

{$R *.dfm}

 

procedure TFormEditAgent.FormActivate(Sender: TObject);

begin

  FormSklad.QueryAgents.SQL.Clear;

  FormSklad.QueryAgents.SQL.Add('SELECT IDAgent, NameAgent ФИО_Агента FROM Agents ORDER BY NameAgent');

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