Автор: Пользователь скрыл имя, 06 Апреля 2013 в 09:44, курсовая работа
При создании СУБД нужно четко знать:
- Задачи склада?
Склад занимается поставками товара различных фирм в торговые точки или фирменные магазины.
- Откуда берется товар?
Весь товар хранится на складе, куда его периодически завозят фирмы-производители.
- Кто покупает и реализует товар, полученный со склада?
Существуют клиенты – магазины или люди, которые реализуют товар за определенную цену (её клиент устанавливает в зависимости от дефицита товара или спроса на товар).
- Кто на складе занимается договорами?
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Технический проект . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Руководство пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Руководство программиста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Список использованой литератури . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
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(
procedure
DBGridGeneralSkladKeyUp(
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;{(
begin
QueryGeneralSklad.Close;
QueryGeneralSklad.SQL.Clear;
QueryGeneralSklad.SQL.Add('
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'
QueryGeneralSklad.Open;
DBGridGeneralSklad.Fields[0].
if not QueryGeneralSklad.IsEmpty then
nowID:=QueryGeneralSklad.
end;
procedure TFormSklad.FormActivate(
begin
Sort:=' ORDER BY a.NameGoods'; {Включение сортировки по полю <<Наименование товара>>}
ShowGeneralSklad;
end;
procedure TFormSklad.RadioGroup1Click(
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(
begin
FormAddGoods.ShowModal;
end;
procedure TFormSklad.BitBtn3Click(
begin
FormEditGoods.ShowModal;
end;
procedure TFormSklad.BitBtn4Click(Sender
var kol:integer;
begin
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
kol:=FormSklad.
FormSklad.ShowGeneralSklad;
if kol<>0 then {Проверка наличия товара на складе}
begin
MessageDlg('Нельзя
удалить товар если он имеется
на складе!',mtWarning,[mbOK],
exit;
end;
if MessageDlg('Вы уверены,
что хотите удалить текущее
наименование товара?',
{Удаление текущего наименования товра}
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.ShowGeneralSklad;
end;
procedure TFormSklad.BitBtn5Click(
begin
FormPrintSklad.ShowModal;
end;
procedure TFormSklad.
begin
nowID:=QueryGeneralSklad.Field
end;
procedure TFormSklad.
var Key: Word; Shift: TShiftState);
begin
nowID:=QueryGeneralSklad.
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.
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.Open;
ComboBox1.Clear;
FormSklad.QuerySection.First;
while not FormSklad.QuerySection.Eof do
begin
ComboBox1.Items.Add(FormSklad.
FormSklad.QuerySection.Next;
end;
ComboBox1.ItemIndex:=0;
end;
{ПРоцедура отображения таблицы <<Manufacture>>}
procedure TFormAddGoods.ShowManufacture;
begin
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
ComboBox2.Clear;
FormSklad.QueryManufacture.
while not FormSklad.QueryManufacture.Eof do
begin
ComboBox2.Items.Add(FormSklad.
FormSklad.QueryManufacture.
end;
ComboBox2.ItemIndex:=0;
end;
procedure TFormAddGoods.FormActivate(
begin
ShowSection;
ShowManufacture;
end;
procedure TFormAddGoods.BitBtn1Click(
var sec,manuf:string;
begin
if (Edit1.Text='')or(Edit2.Text='
begin
MessageDlg('не все данные введены!',mtWarning,[mbOK],0);
exit;
end;
{Определение кода раздела по неименованию}
FormSklad.QuerySection.Close;
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.Open;
sec:=FormSklad.QuerySection.
{Определение кода произволителя по названию}
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
manuf:=FormSklad.
{Добавление нового наименования товара}
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
Close;
FormSklad.ShowGeneralSklad;
end;
procedure TFormAddGoods.BitBtn2Click(
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.
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.Open;
ComboBox1.Clear;
FormSklad.QuerySection.First;
while not FormSklad.QuerySection.Eof do
begin
ComboBox1.Items.Add(FormSklad.
FormSklad.QuerySection.Next;
end;
end;
{Процедура отображения производителей}
procedure TFormEditGoods.
begin
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
ComboBox2.Clear;
FormSklad.QueryManufacture.
while not FormSklad.QueryManufacture.Eof do
begin
ComboBox2.Items.Add(FormSklad.
FormSklad.QueryManufacture.
end;
end;
{Процедура отображения информации о текущем товаре}
procedure TFormEditGoods.
begin
Edit2.Text:=FormSklad.
ShowSection;
ShowManufacture;
ComboBox1.Text:=FormSklad.
ComboBox2.Text:=FormSklad.
Edit3.Text:=FormSklad.
Edit4.Text:=FormSklad.
Edit5.Text:=FormSklad.
Edit1.Text:=FormSklad.
end;
procedure TFormEditGoods.BitBtn1Click(
var sec,manuf:string;
begin
if (Edit1.Text='')or(Edit2.Text='
begin
MessageDlg('не все данные введены!',mtWarning,[mbOK],0);
exit;
end;
FormSklad.QuerySection.Close;
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.SQL.
FormSklad.QuerySection.Open;
sec:=FormSklad.QuerySection.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
FormSklad.QueryManufacture.
manuf:=FormSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
FormSklad.QueryGeneralSklad.
Close;
FormSklad.ShowGeneralSklad;
end;
procedure TFormEditGoods.FormActivate(
begin
ShowGeneralSklad;
end;
procedure TFormEditGoods.BitBtn2Click(
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(
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.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.Open;
DBGridContract.Fields[0].
if not FormSklad.QueryContract.
begin
FormSklad.QueryContract.First;
nowID:=FormSklad.
end;
end;
procedure TFormContract.FormActivate(
begin
fPay:='';{Фильтрация
fDeliver:='';
fClient:='';
{Заполнение списка клиентов для выбора параметра фильтрации по клиентам}
FormSklad.QueryClients.Close;
FormSklad.QueryClients.SQL.
FormSklad.QueryClients.SQL.
FormSklad.QueryClients.Open;
ComboBox1.Clear;
FormSklad.QueryClients.First;
while not FormSklad.QueryClients.Eof do
begin
ComboBox1.Items.Add(FormSklad.
FormSklad.QueryClients.Next;
end;
ComboBox1.Text:=FormSklad.
ShowContract;
end;
procedure TFormContract.BitBtn1Click(
var kol,goods:string;
pay,delivery:boolean;
begin
FormSklad.QueryContract.Close;
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.
FormSklad.QueryContract.SQL.