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

Структурные элементы базы данных. Объектно-ориентированная модель программных компонент. Масштабируемые средства для построения баз данных. Рассмотрение программного продукта Delphi. Изучение новых тенденции развития СУБД и областей их применения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.05.2016
Размер файла 293,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Программный доступ к базе данных

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

Различные представления данных

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

Полноценный язык для работы с базами данных

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

Динамическое определение данных

С помощью SQL можно динамически изменять и расширять структуру базы данных даже в то время, когда пользователи обращаются к ее содержимому. Это большое преимущество перед языками статического определения данных, которые запрещают доступ к базе данных во время изменения ее структуры. Таким образом, SQL обеспечивает максимальную гибкость, так как дает базе данных возможность адаптироваться к изменяющимся требованиям, не прерывая работу приложения, выполняющегося в реальном масштабе времени.

Архитектура клиент/сервер

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

Глава 7. База данных «Магазин автозапчастей»

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 Сущности базы данных «Магазин автозапчастей»

№ п/п

тип сущности

атрибуты

1.

Audi

Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.

2.

Skoda

Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.

3.

Volkswagen

Код; Наименование; Дата выпуска; Количество; Цена закупки; Цена продажи; Группа; Дата поступления.

На рисунке 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.

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

Библиографический список

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

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

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

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

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

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

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

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

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

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

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

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

11. Материалы с сайта 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.

Размещено на Allbest.ru


Подобные документы

  • Новые тенденции развития СУБД и областей их применения. Структурные элементы базы данных. Объектно-ориентированная модель программных компонентов. Формы, модули и метод разработки "Two-Way Tools". Масштабируемые средства для построения баз данных.

    дипломная работа [589,5 K], добавлен 16.12.2013

  • Delphi как программный продукт с феноменальными характеристиками. Компилятор в машинный код. Объектно-ориентированная модель программных компонентов. Масштабируемые средства для построения баз данных. Программный код.

    контрольная работа [27,8 K], добавлен 30.07.2007

  • Анализ данных предметной области. Информационно-логическая модель базы данных. Физическое проектирование и мероприятия по защите и обеспечению целостности базы данных. Приложение интерфейса для SQL-сервера базы данных на языке программирования Delphi.

    курсовая работа [2,2 M], добавлен 30.05.2013

  • Изучение основных понятий баз данных: структура простейшей базы данных, компоненты базы данных Microsoft Access. Проектирование базы данных "Туристическое агентство" в СУБД Access 2010, в которой хранятся данные о клиентах, которые хотят поехать отдыхать.

    курсовая работа [3,3 M], добавлен 20.09.2013

  • Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.

    курсовая работа [3,7 M], добавлен 05.04.2012

  • Этапы проектирования базы данных. Инфологическое проектирование. Определение требований к операционной обстановке. Выбор СУБД и других программных средств. Логическое и физическое проектирование реляционной базы данных. Технология доступа к информации.

    курсовая работа [2,3 M], добавлен 06.10.2016

  • Требования, предъявляемые к базе данных. Основы построения базы данных. Программный продукт Delphi. Структура базы данных и интерфейс программы. Построение функциональной схемы подсистемы "Учет и реализация товара", общая схема построения системы.

    курсовая работа [5,9 M], добавлен 13.12.2011

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.

    курсовая работа [838,9 K], добавлен 25.11.2010

  • Построение банков данных. Инструментальные средства баз данных Borland. Принцип работы и архитектура баз данных в Delphi. Навигационный способ доступа к базам данных: операции с таблицей, сортировка и перемещение по набору данных, фильтрация записей.

    курсовая работа [642,7 K], добавлен 06.02.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.