7.1. Исходные данные на проектирование .

ООО «______» занимается продажей новых запасных частей к автомобилям Фольксваген, Ауди, Шкода.

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

Для этого рассмотрим основные этапы, по которым запчасти проходят в магазине:

Закупаются запчасти, они поступают на склад.

Для каждого наименования заводится отдельная строка в таблице базы данных, в которой указываются:

Код товара по каталогу

Наименование

Дата выпуска

Количество

Ее стоимость

Дата поступления

Группа. (01-двигатель, 02-система охлаждения, 03-система питания, 04-система зажигания, 05-трансмиссия, 06-подвеска, 07-рулевое управление, 08-тормозная система, 09-кузов, 10-электрооборудование).

Со склада требуемая часть поступает непосредственно в магазин, который реализует данные товары в розницу.

При занесении данных о новом товаре, необходимо заполнить форму "Покупка", в открывающемся окне будет расположено несколько полей для заполнения: "Код товара", куда заносится уникальный код по каталогу; "Наименование" - описание детали, "Дата выпуска" - заполняется на случай если запчасть устанавливалась до какого-то времени, после чего была изменена конструкция и т.д., "Цена"- вводится цена в рублях, "Количество" - целое значение, "Группа" - заносится номер группы, к которой относится деталь. Существует несколько групп. Это системы автомобиля: тормозная система, двигатель, подвеска и т.д.

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

Программа "Магазин автозапчастей" будет служить для облегчения учета движения товаров. Наиболее рутинными и в то же время наиболее ответственными процессами являются:

ввод поступивших товаров.

Выгрузка товаров со склада в магазин.

Просмотр информации по состоянию склада.

Таким образом разрабатываемая программа должна выполнять следующие функции:

Учет товара

Возможность выборки по критериям

Информация об остатках на складе.

Общие требования:

Разработать структуру базы данных

Разработать программу ввода данных, организации доступа к данным и их редактирования.

Технические средства – ПЭВМ типа IBM PC

Операционная система – MS Windows 9x/NT/ME/XP

СУБД и инструментальные программные средства – Средство разработки приложений Borland Delphi 7.0

7.2. Реализация проекта .

Вся информация для хранения в базе данных разбита на сущности и атрибуты по специфическим признакам. Каждая сущность представляет собой таблицу базы данных. Анализ описанной предметной области и решаемых задач позволяет выделить следующие сущности (таблица 1):

№ п/п тип сущности атрибуты
1. Audi Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.
2. Skoda Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.
3. Volkswagen Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.

Таблица 1. Сущности базы данных «Магазин автозапчастей».

На рисунке 1 представлено главное окно итоговой программы.

Проектирование Базы Данных для коммерческого предприятия

Рис 1. Главное диалоговое окно программы «Магазин автозапчастей».

Что бы начать работу с одной из трех таблиц (Audi, Volkswagen или Skoda), нужно выбрать соответствующее имя таблицы из выпадающего списка на панели инструментов. Верхняя часть окна отражает состояние таблицы в данный момент и данные, записанные в ее полях. Нижнее поле – это текстовое поле, где ведется лог операций, произведенных над таблицей. Этот лог никуда не записывается, он служит для того, чтобы пользователь мог удостовериться, что его действия были корректно выполнены и новые данные были применены к текущей таблице.

Для более удобного просмотра информации в таблице, записи можно упорядочить по следующим индексам: Код; Наименование; Дата выпуска; Дата поступления; Группа. Эта функция доступна через Данные -> Упорядочить.

На панели инструментов есть кнопки «Добавить», «Редактировать» и «Удалить». С помощью них пользователь может модифицировать данные в таблице об уже имеющихся записях. При нажатии на кнопки «Редактировать» и «Добавить», будет включен режим редактирования, цвет таблицы станет бирюзовым, как показано на рисунке 2. Выйти из режима редактирования можно, кликнув по кнопке «Редактирование».

Проектирование Базы Данных для коммерческого предприятия

Рис 2. Включен режим «Редактирование».

Если потребуется удалить существующую запись, то нужно установить табличный указатель на нужную строку и нажать на кнопку «Удалить». Всплывет сообщение для подтверждения удаления. При нажатии на «ОК» запись будет удалена.

Проектирование Базы Данных для коммерческого предприятия

Рис 3. Подтверждение удаления записи из таблицы.

Для отражения поступления нового товара на склад используется операция «Покупка» (Операции -> Покупка). Форма выглядит следующим образом:

Проектирование Базы Данных для коммерческого предприятия

Рис 4. Форма операции «Покупка».

Все поля формы обязательны для заполнения. «Цена» товара указывается в рублях. «Группа» товара – это выпадающий список. Для выбора доступны следующие группы: 01-двигатель; 02-система охлаждения; 03-система питания; 04-система зажигания; 05-трансмиссия; 06-подвеска; 07-рулевое управление; 08-тормозная система; 09-кузов; 10-электрооборудование. При нажатии кнопки «ОК» данные с формы записываются в активную таблицу.

Для того, чтобы отразить выгрузку какого-либо товара в магазин, либо добавить некоторое количество товара, который уже имеется на складе, используется операция «Выгрузить/Добавить на склад» (Операции -> Выгрузить/Добавить на склад).

Проектирование Базы Данных для коммерческого предприятия

Рис 5. Форма операции «Возврат/Добавить на Склад».

В данном случае действия пользователя происходят в следующей последовательности:

По поиску нужно задать критерий для нахождения требуемой записи в таблице;

Нажать на кнопку «Отразить»;

В поле с таблицей будут отражены код, наименование и группа того товара, запись о котором будет редактироваться;

В соответствующем поле будет отражено количество единиц на складе;

Доступно 2 вида действия: добавить некоторое количество товара на склад или выгрузить;

В соответствующем поле нужно ввести то количество единиц, которое нужно добавить или выгрузить;

После нажатия на кнопку «ОК» таблица будет соответственно отредактирована и в поле Memo добавиться запись о проделанной операции.

Чтобы найти ту или иную запись в таблице, можно воспользоваться «Быстрым поиском» (Данные -> Быстрый поиск).

Проектирование Базы Данных для коммерческого предприятия

Рис 6. Форма Быстрого поиска.

Верхний выпадающий список содержит строки «Код», «Наименование» и «Группа». При вводе значения в поле рядом с выпадающим списком, табличный указатель на главной форме приложения будет перемещен на запись таблицы, которая соответствует либо максимально приближена к значению, введенному в это поле.

«Поиск по дате» осуществляет поиск записи по «Дате выпуска» и по «Дате поступления». Поле ввода для критерия поиска имеет маску. Вводить дату следует в формате дд.мм.гггг.. Табличный указатель будет перенесен на нужную запись после нажатия кнопки «Найти»

Для просмотра общей статистической информации о товарах на складе, можно вызвать окно статистики (Данные -> Статистика).

Проектирование Базы Данных для коммерческого предприятия

Рис 7. Статистика.

В области «Справка» можно выделить записи из таблицы, отобранные по критерию групповой принадлежности.


Заключение

В ходе данной дипломной работы была создана база данных с применением современного средства разработки приложений Borland Delphi 7.0. В ней реализованы все основные аспекты современных баз данных, в том числе язык запросов SQL.

Целью работы являлась разработка программного обеспечения для автоматизации учета продукции на складе - база данных, которая реализовала бы автоматизацию учета товаров, хранение данных в файлах, организацию доступа к ним и редактирование.

В ходе работы над программой были изучены методы проектирования баз данных и работа с ними, исследована методология проектирования по предметной области «Склад», изучен один из наиболее используемых языков для создания запросов SQL, изучен язык программирования Object Pascal, реализованный в среде программирования Delphi 7.

Приложение «Магазин автозапчастей» в настоящее время используется в области малого бизнеса на предприятии ООО «________», где получило положительную оценку, как со стороны операторов, так и администратора компьютерной сети.


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

Основная литература:

Шумаков А.И. «Базы данных в среде Delphi 5», Электронная версия

Вейскас Д. «Эффективная работа с Access 2000». СПб., 2001г.

Дуванов А. А. «Конструирование баз данных». СПб, 2003г.

Антипов Д. В., Соколов А. В. «Базы данных». Москва, 2002.

Кирстен В. «СУБД Cache. Объектно-ориентированная разработка приложений», - СПб.: «Питер», 2001.

Понамарёв В. «Базы данных в DELPHI 7», СПб «Питер», 2003.

Симонович С.В. «Язык структурированных запросов SQL», СПб «Питер», 2000.

Дополнительная литература:

Лекции по дисциплине «Базы данных» Ваксер В.В.

Лекции по дисциплине «Распределенные системы обработки информации» Ваксер В.В.

Использованы материалы с сайта http://www.cit-forum.ru/

Материалы с сайта http://www.ibex.ch/

Приложения

Приложение 1.

Блок-схема программы.

Поиск
Проектирование Базы Данных для коммерческого предприятия
Приложение 2.

Полный листинг программы «Магазин автозапчастей».

program MyEdit;

uses

Forms,

MainUnit in 'MainUnit.pas' {MainForm},

ChildUnit in 'ChildUnit.pas' {ChildForm},

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4},

Unit5 in 'Unit5.pas' {Form5};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TMainForm, MainForm);

Application.Run;

end.

unit MainUnit;

interface

uses

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

Menus, StdActns, ActnList, DB, Grids, DBGrids, ExtCtrls, DBCtrls,

DBTables, ComCtrls, ToolWin, StdCtrls, Buttons, Mask;

type

TMainForm = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

WindowMenu: TMenuItem;

OpenDialog1: TOpenDialog;

ActionList1: TActionList;

Arrange1: TWindowArrange;

Cascade1: TWindowCascade;

Close1: TWindowClose;

MinimizeAll1: TWindowMinimizeAll;

TileHorizontally1: TWindowTileHorizontal;

TileVertically1: TWindowTileVertical;

N13: TMenuItem;

N16: TMenuItem;

Copy1: TEditCopy;

Cut1: TEditCut;

Paste1: TEditPaste;

StatusBar1: TStatusBar;

DataSource1: TDataSource;

ToolBar1: TToolBar;

ComboBox1: TComboBox;

Timer1: TTimer;

warehouse: TTable;

DBGrid1: TDBGrid;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N9: TMenuItem;

N11: TMenuItem;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Memo1: TMemo;

N10: TMenuItem;

N12: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

N22: TMenuItem;

Label1: TLabel;

Splitter1: TSplitter;

N23: TMenuItem;

N24: TMenuItem;

Query1: TQuery;

N25: TMenuItem;

procedure ComboBox1Change(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton7MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton8MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton6MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure ToolBar1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton8Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N22Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure N25Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

editmark: boolean;

stDay : array[1..7] of string[11] = ('воскресенье','понедельник','вторник',

'среда','четверг','пятница','суббота');

implementation

uses Unit1, Unit2, Unit3, Unit4, Unit5;

{$R *.DFM}

procedure TMainForm.ComboBox1Change(Sender: TObject);

begin

warehouse.Active := false;

if combobox1.ItemIndex = 0 then begin

warehouse.TableName:='Audi.db';

end;

if combobox1.ItemIndex = 1 then begin

warehouse.TableName:= 'Volkswagen.db';

end;

if combobox1.ItemIndex = 2 then begin

warehouse.TableName := 'Skoda.db';

end;

warehouse.ReadOnly:=false;

dbgrid1.ReadOnly:=true;

warehouse.Active := true;

end;

procedure TMainForm.N8Click(Sender: TObject);

begin

application.Terminate;

end;

procedure TMainForm.FormCreate(Sender: TObject);

var Present: TDateTime;

year, month, day : word;

begin

present:=now;

decodedate(present,year,month,day);

statusbar1.Panels[2].Text:=inttostr(day)+'.'+inttostr(month)+'.'+inttostr(year)+', '+stDay[DayOfWeek(Present)];

end;

procedure TMainForm.N3Click(Sender: TObject);

begin

warehouse.Active := false;

if opendialog1.Execute then begin

warehouse.TableName:=opendialog1.FileName;

warehouse.Active:=true;

end;

end;

procedure TMainForm.Timer1Timer(Sender: TObject);

var date: Tdatetime;

begin

statusbar1.Panels[1].Text:=timetostr(time);

end;

procedure TMainForm.N6Click(Sender: TObject);

begin

combobox1.ItemIndex := -1;

warehouse.Active :=false;

warehouse.TableName := '';

end;

procedure TMainForm.SpeedButton1MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Добавить';

end;

procedure TMainForm.SpeedButton2MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Редактировать';

end;

procedure TMainForm.SpeedButton4MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Быстрый поиск';

end;

procedure TMainForm.SpeedButton5MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Покупка';

End;

procedure TMainForm.SpeedButton7MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='О программе';

end;

procedure TMainForm.SpeedButton8MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Выход из приложения';

end;

procedure TMainForm.SpeedButton3MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Удалить';

end;

procedure TMainForm.SpeedButton6MouseMove(Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='Выгрузить/Добавить на склад';

end;

procedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

Statusbar1.Panels[0].Text:='';

end;

procedure TMainForm.ToolBar1MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='';

end;

procedure TMainForm.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

begin

Statusbar1.Panels[0].Text:='';

end;

procedure TMainForm.SpeedButton1Click(Sender: TObject);

begin

if editmark=false then begin

label1.Caption:='Редактирование';

dbgrid1.Color:=clteal;

dbgrid1.ReadOnly:=false; warehouse.insert; editmark:=true end

else begin

dbgrid1.ReadOnly:=true; editmark:=false;

label1.Caption:='';

dbgrid1.Color:=clwindow; end;

end;

procedure TMainForm.SpeedButton3Click(Sender: TObject);

var k:integer;

begin

k:=messagebox(0,'Удалить запись?','Удаление',33);

if k=1 then begin

memo1.Lines.Add(Timetostr(time)+' Запись была удалена из таблицы [ '+inttostr(warehouse.fieldbyname('Код').Value)+' '+warehouse.fieldbyname('Наименование').Value+' ]');

warehouse.Delete;

end;

end;

procedure TMainForm.SpeedButton5Click(Sender: TObject);

begin

Application.CreateForm(TForm1, Form1);

Form1.Show;

end;

procedure TMainForm.SpeedButton8Click(Sender: TObject);

begin

application.Terminate;

end;

procedure TMainForm.SpeedButton2Click(Sender: TObject);

begin

if editmark=false then begin

label1.Caption:='Редактирование';

dbgrid1.Color:=clteal;

dbgrid1.ReadOnly:=false; warehouse.Edit; editmark:=true end

else begin

dbgrid1.ReadOnly:=true; editmark:=false;

label1.Caption:='';

memo1.Lines.Add(Timetostr(time)+' Таблица была отредактирована');

dbgrid1.Color:=clwindow; end;

end;

procedure TMainForm.N13Click(Sender: TObject);

begin

speedbutton5.Click;

end;

procedure TMainForm.N4Click(Sender: TObject);

begin

speedbutton1.Click;

end;

procedure TMainForm.N5Click(Sender: TObject);

begin

speedbutton2.Click;

end;

procedure TMainForm.N9Click(Sender: TObject);

begin

speedbutton3.Click;

end;

procedure TMainForm.SpeedButton4Click(Sender: TObject);

begin

Application.CreateForm(TForm2, Form2);

Form2.show;

end;

procedure TMainForm.N18Click(Sender: TObject);

begin

warehouse.IndexFieldNames:='Код';

end;

procedure TMainForm.N19Click(Sender: TObject);

begin

warehouse.IndexFieldNames:='Наименование';

end;

procedure TMainForm.N20Click(Sender: TObject);

begin

warehouse.IndexFieldNames:='Дата выпуска';

end;

procedure TMainForm.N21Click(Sender: TObject);

begin

warehouse.IndexFieldNames:='Дата поступления';

end;

procedure TMainForm.N22Click(Sender: TObject);

begin

warehouse.IndexFieldNames:='Группа';

end;

procedure TMainForm.SpeedButton6Click(Sender: TObject);

begin

Application.CreateForm(TForm3, Form3);

form3.Show;

form3.dbgrid1.DataSource:=datasource1;

end;

procedure TMainForm.N24Click(Sender: TObject);

var i,R,P,SR,SP: integer;

begin

Application.CreateForm(TForm4, Form4);

SR:=0; SP:=0;

form4.Show;

R:=0;

P:=0;

warehouse.Active:=false;

warehouse.TableName:='Audi.db';

warehouse.active:=true;

warehouse.First;

for i:=1 to warehouse.RecordCount do begin

R:=R+mainform.warehouse.fieldbyname('Кол-во').Value;

P:=P+mainform.warehouse.fieldbyname('Кол-во').Value*mainform.warehouse.fieldbyname('Цена закупки').Value;

warehouse.Next;

end;

form4.label2.Caption:=inttostr(R);

form4.Label4.Caption:=inttostr(P); SR:=R; Sp:=P;

{second table}

R:=0;

P:=0;

warehouse.Active:=false;

warehouse.TableName:='Volkswagen.db';

warehouse.Active:=true;

warehouse.First;

for i:=1 to warehouse.RecordCount do begin

R:=R+mainform.warehouse.fieldbyname('Кол-во').Value;

P:=P+mainform.warehouse.fieldbyname('Кол-во').Value*mainform.warehouse.fieldbyname('Цена закупки').Value;

warehouse.Next;

end;

form4.label6.Caption:=inttostr(R);

form4.Label7.Caption:=inttostr(P); SR:=SR+R; SP:=SP+P;

{third table}

R:=0;

P:=0;

warehouse.Active:=false;

warehouse.TableName:='Skoda.db';

warehouse.Active:=true;

warehouse.First;

for i:=1 to warehouse.RecordCount do begin

R:=R+mainform.warehouse.fieldbyname('Кол-во').Value;

P:=P+mainform.warehouse.fieldbyname('Кол-во').Value*mainform.warehouse.fieldbyname('Цена закупки').Value;

warehouse.Next;

end;

form4.label8.Caption:=inttostr(R);

form4.Label9.Caption:=inttostr(P); SR:=SR+R; SP:=SP+P;

form4.Label17.Caption:=inttostr(SR);

form4.Label19.caption:=inttostr(SP);

warehouse.Active:=false;

warehouse.TableName:=combobox1.text+'.db';

warehouse.Active:=true;

end;

procedure TMainForm.SpeedButton7Click(Sender: TObject);

begin

Application.CreateForm(TForm5, Form5);

Form5.Show;

end;

procedure TMainForm.N25Click(Sender: TObject);

begin

warehouse.edit; warehouse.Post;

memo1.Lines.Add(Timetostr(time)+' Все изменения сохранены');

end;

end.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ComCtrls, Mask, DBCtrls, DB, DBTables, Spin, Buttons;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

GroupBox2: TGroupBox;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit2: TEdit;

ComboBox1: TComboBox;

MaskEdit1: TMaskEdit;

DateTimePicker1: TDateTimePicker;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Mainunit;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

mainform.warehouse.Delete;

Form1.Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

mainform.warehouse.InsertRecord([edit2.text,edit1.text,maskedit1.text,spinedit2.text,spinedit1.text,'',combobox1.text,datetimepicker1.date]);

mainform.Memo1.Lines.Add('Произведена покупка'+timetostr(time));

form1.Close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

mainform.warehouse.InsertRecord([edit2.text,edit1.text,maskedit1.text,spinedit2.text,spinedit1.text,'',combobox1.text,datetimepicker1.date]);

mainform.Memo1.Lines.Add(timetostr(time)+' Произведена покупка '+edit1.Text+' [ '+spinedit2.Text+' по цене '+spinedit1.text+'р. ]');

edit1.Clear;

edit2.Clear;

combobox1.Clear;

maskedit1.Clear;

spinedit1.Clear;

spinedit2.Clear;

form1.Close;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

combobox1.Clear;

maskedit1.Clear;

spinedit1.Clear;

spinedit2.Clear;

Form1.Close;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls, ComCtrls;

type

TForm2 = class(TForm)

Edit1: TEdit;

ComboBox1: TComboBox;

GroupBox1: TGroupBox;

ComboBox2: TComboBox;

Button1: TButton;

MaskEdit1: TMaskEdit;

procedure DBEdit1Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

p,pd: integer;

implementation

uses MainUnit;

{$R *.dfm}

procedure TForm2.DBEdit1Change(Sender: TObject);

begin

mainform.warehouse.FindField('Код');

end;

procedure TForm2.Edit1Change(Sender: TObject);

var lan,i,mark: integer;

strmark: string;

begin

lan:=mainform.warehouse.RecordCount;

mainform.warehouse.First;

if edit1.text='' then begin mark:=0; end

else begin

if p=0 then begin mark:=strtoint(edit1.text);

for i:=0 to lan do begin

if mainform.warehouse.Fields[p].AsInteger=mark then

else mainform.warehouse.Next;

end; end;

if ((p=1) or (p=6)) then begin strmark:=edit1.Text;

for i:=0 to lan do begin

mainform.warehouse.setkey;

mainform.warehouse.IndexFieldNames:=mainform.warehouse.Fields[p].FieldName;

mainform.warehouse.FindNearest([edit1.text]);

end; end;

end;

end;

procedure TForm2.ComboBox1Change(Sender: TObject);

begin

case combobox1.ItemIndex of

0: p:=0;

1: p:=1;

2: p:=6; end;

end;

procedure TForm2.ComboBox2Change(Sender: TObject);

begin

case combobox2.ItemIndex of

0: pd:=2;

1: pd:=7; end;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if pd=0 then pd:=2;

if maskedit1.Text='' then else

begin mainform.warehouse.SetKey;

mainform.warehouse.IndexFieldNames:=mainform.warehouse.Fields[pd].FieldName;

mainform.warehouse.FindNearest([maskedit1.text]);

end;

end;

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

begin

edit1.Text:=''; maskedit1.Text:='';

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, Buttons, Mask, DBCtrls,

ExtCtrls;

type

TForm3 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Edit2: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBEdit1: TDBEdit;

GroupBox1: TGroupBox;

ComboBox1: TComboBox;

Edit1: TEdit;

Button1: TButton;

GroupBox2: TGroupBox;

Label2: TLabel;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label1: TLabel;

Memo1: TMemo;

procedure Button2Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure FormDestroy(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

p,pd: integer;

implementation

uses mainunit;

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);

begin

form3.Close;

end;

procedure TForm3.Edit1Change(Sender: TObject);

var lan,i,mark: integer;

strmark: string;

begin

lan:=mainform.warehouse.RecordCount;

mainform.warehouse.First;

if edit1.text='' then begin mark:=0; end

else begin

if p=0 then begin mark:=strtoint(edit1.text);

for i:=0 to lan do begin

if mainform.warehouse.Fields[p].AsInteger=mark then

else mainform.warehouse.Next;

end; end;

if ((p=1) or (p=6)) then begin strmark:=edit1.Text;

for i:=0 to lan do begin

mainform.warehouse.setkey;

mainform.warehouse.IndexFieldNames:=mainform.warehouse.Fields[p].FieldName;

mainform.warehouse.FindNearest([edit1.text]);

end; end;

end;

end;

procedure TForm3.ComboBox1Change(Sender: TObject);

begin

case combobox1.ItemIndex of

0: p:=0;

1: p:=1;

2: p:=6; end;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

mainform.Query1.Active:=false;

mainform.Query1.Close;

mainform.Query1.SQL.Clear;

mainform.Query1.SQL.Add('select '+'Код, Наименование, "Дата выпуска", "Кол-во", "Цена закупки", "Группа" '+'from '+mainform.ComboBox1.Text+' where '+combobox1.Text+'='+edit1.text);

mainform.Query1.Active:=true;

dbedit1.DataField:='Кол-во';

end;

procedure TForm3.BitBtn1Click(Sender: TObject);

var N,RN: integer;

begin

if radiobutton1.Checked=true then begin

N:=strtoint(edit2.Text);

RN:=strtoint(dbedit1.Text);

RN:=RN-N;

memo1.Lines.Add('Выгружено '+edit2.Text+' единиц '+mainform.warehouse.FieldValues['Наименование']);

mainform.memo1.Lines.Add(Timetostr(time)+' Выгружено '+edit2.Text+' единиц '+mainform.warehouse.FieldValues['Наименование']);

end;

if radiobutton2.Checked=true then begin

N:=strtoint(edit2.Text);

RN:=strtoint(dbedit1.Text);

RN:=RN+N;

memo1.Lines.Add('Добавлено '+edit2.Text+' единиц '+mainform.warehouse.FieldValues['Наименование']);

mainform.memo1.Lines.Add(Timetostr(time)+' Добавлено '+edit2.Text+' единиц '+mainform.warehouse.FieldValues['Наименование']);

end;

mainform.Query1.Close;

datasource1.Enabled:=false;

mainform.warehouse.edit;

mainform.warehouse.FieldByName('Кол-во').AsInteger:=RN;

mainform.warehouse.Post;

mainform.Query1.Open;

datasource1.Enabled:=true;

edit2.Text:='';

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

begin

mainform.Query1.Active:=false;

edit1.Clear;

edit2.Clear;

dbedit1.DataField:='';

form3.close;

end;

procedure TForm3.Edit2Change(Sender: TObject);

var N,RN: integer;

begin

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

dbgrid1.DataSource:=datasource1;

mainform.Query1.Active:=false;

mainform.Query1.Close;

mainform.Query1.SQL.Clear;

mainform.Query1.SQL.Add('select '+'Код, Наименование, Группа '+'from '+mainform.ComboBox1.Text+' where '+combobox1.Text+'="'+edit1.text+'"');

mainform.Query1.Active:=true;

dbedit1.DataField:='Кол-во';

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

dbgrid1.DataSource:=mainform.DataSource1;

end;

procedure TForm3.ComboBox2Change(Sender: TObject);

begin

case combobox1.ItemIndex of

0: p:=0;

1: p:=1;

2: p:=6; end;

end;

procedure TForm3.FormDestroy(Sender: TObject);

begin

mainform.Query1.Active:=false;

edit1.Text:='';

edit2.Text:='';

dbedit1.DataField:='';

end;

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

begin

mainform.Query1.Active:=false;

edit1.Text:='';

edit2.Text:='';

dbedit1.DataField:='';

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, DB, Mask, QuickRpt, QRCtrls, ExtCtrls;

type

TForm4 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label21: TLabel;

Button1: TButton;

ComboBox1: TComboBox;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Mainunit;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var i: integer;

begin

datasource1.DataSet:=mainform.Query1;

mainform.Query1.close;

mainform.Query1.SQL.Clear;

mainform.Query1.SQL.Add('Select * from '+mainform.ComboBox1.Text+' where Группа="'+combobox1.Text+'"');

mainform.Query1.Open;

mainform.Query1.Active:=true;

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

form4.close;

end;

procedure TForm4.Button3Click(Sender: TObject);

var i:integer;

begin

mainform.warehouse.First;

for i:=1 to mainform.warehouse.recordcount do begin

if mainform.warehouse.FieldByName('Дата выпуска').value='02.03.2004' then

datasource1.DataSet:=mainform.warehouse.Fields.DataSet;

mainform.warehouse.Next;

end;

end;

end.

unit Unit5;

interface

uses

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

Dialogs, StdCtrls;

type

TForm5 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Mainunit;

{$R *.dfm}

end.

Для подготовки данной работы были использованы материалы с сайта http://referat.ru


Информация о работе «Проектирование Базы Данных для коммерческого предприятия»
Раздел: Информатика, программирование
Количество знаков с пробелами: 133101
Количество таблиц: 1
Количество изображений: 9

Похожие работы

Скачать
172664
1
21

... ЭВМ. Приложения, созданные с помощью SQL и рассчитанные на однопользовательские системы, по мере своего развития могут быть перенесены в более крупные системы. Информация из корпоративных реляционных баз данных может быть загружена в базы данных отдельных подразделений или в личные базы данных. Наконец, приложения для реляционных баз данных можно вначале смоделировать на экономичных персональных ...

Скачать
43049
5
14

... кварталов... повернуть направо...". (Аналогично больший или меньший уровень детализации запроса приходится создавать пользователю в разных СУБД, не имеющих языка SQL.) Появление теории реляционных баз данных и предложенного Коддом языка запросов "alpha", основанного на реляционном исчислении [2, 3], инициировало разработку ряда языков запросов, которые можно отнести к двум классам: 1.         ...

Скачать
44529
3
21

... к данным представляют собой специальную Web-страницу, предназначенную для просмотра и работы через Интернет или интрасеть с данными, которые хранятся в базах данных Microsoft Access или БД MS SQL Server; Макрос - набор макрокоманд, создаваемый пользователем для автоматизации выполнения конкретных операций; Модуль - объект, содержащий программы на языке Visual Basic, применяемые в некоторых ...

Скачать
38947
4
10

... рабочих станции ЛВС главном офисе Технология Wi-Fi позволяет развернуть сеть без прокладки кабеля, что может уменьшить стоимость развёртывания, что для малого бизнеса немаловажно, или расширения сети. Технология Wi-Fi очень удобна, так как вы не привязаны к проводной компьютерной сети. Вы можете работать за своим столом или переходить в другие кабинеты, оставаясь в зоне действия сети. Во втором ...

0 комментариев


Наверх