Автоматизация автосалона
Содержание:
Введение
Основные цели данного курсового проекта:
- Разработать АИС по автосалону «Автомаркет».
- Закрепить знания программирования в среде Delphi.
- Познакомится со всеми этапами создания готового продукта.
Результат проекта – готовый продукт (программа), которую в дальнейшем можно использовать в магазинах специализированных на продаже автомобилей.
При создании
проекта будет использоваться механизм
доступа к данным Borland Database Engine (BDE).
Этот механизм доступа к данным позволяет
обращаться к локальным и файл-серверным
форматам баз данных dBase, FoxPro и Paradox, к различным
серверам SQL и ко многим другим источникам
данных, доступ которых поддерживался
при помощи драйверов ODBC. Например, с помощью
BDE можно напрямую работать с табличными
файлами MS Excel.
Описание таблиц Базы Данных
- Catalog.db – таблица содержит каталог автомобилей (Acura, BMW и т.д.).
- Characteristic.db – таблица содержит в себе данные о характеристиках автомобилей.
- The.Characteristic.db – в таблицу входят подробное описание характеристик каждого автомобиля.
- Zakaz.db – в таблице отображается наименование автомобиля который был куплен, то есть добавлен в «Архив».
Взаимосвязь между таблицами Базы Данных
Описание внешнего вида пользовательского интерфейса
В
данном случае оформление программы производилось
добавлением основных элементов как DbGrid,
ComboBox и т.д., а присвоение их значение производилось
в самом коде.
- Form1.dfm
Рис.1
Общее окно
- Form2.dfm
Рис.2
Окно оформления автомобиля
- Form3.dfm
Рис.3
Окно Архива клиентов (тех кто купил автомобиль)
ER диаграмма
1
∞
Программный код
- Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBTables, DBCtrls, StdCtrls, XPMan, ComCtrls,
Buttons,
Menus, ExtCtrls;
type
TForm1 = class(TForm)
Query1: TQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
XPManifest1: TXPManifest;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
CB1: TComboBox;
CB2: TComboBox;
GroupBox2: TGroupBox;
Label3: TLabel;
txtOt: TEdit;
txtDo: TEdit;
RB1: TRadioButton;
Label4: TLabel;
RB2: TRadioButton;
Label5: TLabel;
txtYear: TEdit;
cmdApply: TButton;
cmdAll: TButton;
PM1: TPopupMenu;
N1: TMenuItem;
DBNavigator1: TDBNavigator;
MainMenu1: TMainMenu;
N2: TMenuItem;
N3: TMenuItem;
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
procedure CB1Change(Sender: TObject);
procedure CB2Change(Sender: TObject);
procedure RB1Click(Sender: TObject);
procedure RB2Click(Sender: TObject);
procedure cmdApplyClick(Sender: TObject);
procedure cmdAllClick(Sender: TObject);
procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
uses Unit2,
Unit3;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
sql_str:string;
begin
sql_str:='SELECT * FROM Katalog';
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
CB1.Items.Add(Query1.
Query1.Next;
end;
CB1.ItemIndex:=0;
CB1Change(Sender);
end;
procedure TForm1.CB1Change(Sender: TObject);
var
sql_str,tip:string;
i:byte;
bFind:bool;
begin
CB2.Clear;
CB2.Items.Add('Все типы');
sql_str:='SELECT * FROM '+CB1.Text;
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
try
Query1.Open;
except
on EDBEngineError do
exit;
end;
Query1.First;
while not Query1.Eof do
begin
bFind:=false;
tip:=Query1.FieldByName('Tip_
for i:=0 to CB2.Items.Count-1 do
if CB2.Items.Strings[i]=tip then
begin
bFind:=true;
break;
end;
if bFind=false then CB2.Items.Add(tip);
Query1.Next;
end;
CB2.ItemIndex:=0;
end;
procedure TForm1.CB2Change(Sender: TObject);
var
sql_str:string;
begin
if CB2.Text='Все типы' then
sql_str:='SELECT * FROM '+CB1.Text
else
sql_str:='SELECT * FROM '+CB1.Text+' WHERE Tip_kyzova='+QuotedStr(CB2.
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
Query1.Open;
end;
procedure TForm1.RB1Click(Sender: TObject);
begin
txtYear.Enabled:=false;
Label5.Enabled:=false;
txtOt.Enabled:=true;
txtDo.Enabled:=true;
Label3.Enabled:=true;
Label4.Enabled:=true;
txtOt.SetFocus;
end;
procedure TForm1.RB2Click(Sender: TObject);
begin
txtOt.Enabled:=false;
txtDo.Enabled:=false;
Label3.Enabled:=false;
Label4.Enabled:=false;
txtYear.Enabled:=true;
Label5.Enabled:=true;
txtYear.SetFocus;
end;
procedure TForm1.cmdApplyClick(Sender: TObject);
var
sql_str:string;
begin
Query1.SQL.Clear;
if RB1.Checked then
if CB2.Text='Все типы' then
sql_str:='SELECT * FROM '+CB1.Text+
' WHERE Data_vipyska BETWEEN '+QuotedStr(txtOt.Text)+' AND '+QuotedStr(txtDo.Text)
else
sql_str:='SELECT * FROM '+CB1.Text+' WHERE Tip_kyzova='+QuotedStr(CB2.
'AND Data_vipyska BETWEEN '+QuotedStr(txtOt.Text)+' AND '+QuotedStr(txtDo.Text)
else
if CB2.Text='Все типы' then
sql_str:='SELECT * FROM '+CB1.Text+' WHERE Data_vipyska='+QuotedStr(
else
sql_str:='SELECT * FROM '+CB1.Text+' WHERE Tip_kyzova='+QuotedStr(CB2.
'AND Data_vipyska='+QuotedStr(
Query1.SQL.Add(sql_str);
Query1.Open;
end;
procedure TForm1.cmdAllClick(Sender: TObject);
begin
CB2Change(Sender);
end;
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
p:TPoint;
begin
GetCursorPos(p);
if Button=mbRight then PM1.Popup(p.X,p.Y);
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form3.ShowModal;
end;
end.
- Unit2.pas
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, DB, DBTables;
type
TForm2 = class(TForm)
Label1: TLabel;
txtFam: TEdit;
Label2: TLabel;
lblMarka: TLabel;
Label4: TLabel;
lblModel: TLabel;
cmdOk: TButton;
cmdClose: TButton;
Label3: TLabel;
lblCena: TLabel;
Query1: TQuery;
procedure FormShow(Sender: TObject);
procedure cmdCloseClick(Sender: TObject);
procedure cmdOkClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2:
TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.FormShow(Sender: TObject);
begin
lblMarka.Caption:=Form1.CB1.
lblModel.Caption:=Form1.
lblCena.Caption:=Form1.
end;
procedure TForm2.cmdCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm2.cmdOkClick(Sender: TObject);
var
sql_str:string;
begin
sql_str:='INSERT
INTO Zakaz(Marka,Model,Cena,Fam) VALUES('+QuotedStr(lblMarka.
','+QuotedStr(lblModel.
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
Query1.ExecSQL;
MessageDlg('Поздравляем
с покупкой нового автомобиля!'
Close;
end;
end.
- Unit3.pas
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
txtFilter: TEdit;
Label1: TLabel;
procedure txtFilterChange(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.txtFilterChange(Sender: TObject);
begin
Query1.Filter:='';
if txtFilter.Text='' then
Query1.Filtered:=false
else
begin
Query1.Filter:='Fam='+
Query1.Filtered:=true;
end;
end;
procedure TForm3.FormShow(Sender: TObject);
var
sql_str:string;
begin
sql_str:='SELECT * FROM Zakaz';
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
Query1.Open;
end;
end.
Заключение
При проектировании данной курсовой работы, были использованы материалы по теоретической части, а именно SQL запросы. Которая дает возможность ссылаться на единую базу, как через локальную сеть, так и через Интернет. Так как сейчас Интернет имеет глобальную значимость, то ее вероятности безграничны, и всегда можно быть в курсе данных. На примере, сеть компьютерных магазинов, которая основана в нескольких городах. Если заказчик, требует подборку «железа», которой в данный момент не присутствует в магазине, то есть возможность произвести его заказ из основного склада, например с другого города, которую должны, в короткие сроки, доставит к заказчику.
В данной курсовой работе, так же были учтены такие услуги как, «Архив», где идет учет продаваемой продукции.
Данную
программу можно уже
Использованная литература
- Галисеев Г. В. “Компоненты в Delphi 7.”
Санкт-Петербург:
“Вильямс”, 2004 год. - 642
стр.
- Коржинский С.Н. “Изучаем Delphi”
SNK Press Online (электронное
издание), 2007год. cтр.- 344
- Петров К.Д. “Delphi.Help.”
Казань: “Пром”, 2004
год. - 230 cтр.
- Пиренеев А.Н. “Delphi:Самоучитель.”
Казань:
“Абри”, 2005 год. - 120
стр.
- Поган А. “Delphi: Руководство программиста.”
Москва: “Эксмо”, 2006. - 480
cтр.
- Стив Тейксейр, Ксавье Пачеко “Borland Delphi 6. Руководство разработчика.“
Санкт-Петербург:
“Вильямс”, 2002 год. - 1120
стр.
- Хомкин Б.А. “Delphi: Сделай сам.”
Москва
“Эксмо”, 2005 год. - 110
стр.
- Чиртик А. “Delphi: Трюки и эффекты”
Санкт-Петербург:
“Питер”; 2007 год. – 400
стр.
- Шабров В.Н. “Delphi: Программируй сам.”
Казань: “Абри”; 2006 год. - 200 стр.

- Автоматизация агентства частного сыска
- Автоматизация адсорбционной установки
- Автоматизация алгоритма Флойда Уоршалла
- Автоматизация алгоритма численного решения алгебраических и трансцендентных уравнений методом хорд
- Автоматизация анализа потребностей и предложений компьютерной техники
- Автоматизация анализа себестоимости продукции в ОАО "Лам мебель"
- Автоматизация анализа финансовой деятельности предприятия средствами MS Excel
- Автоматизации учета труда и его оплаты
- Автоматизация
- Автоматизация
- Автоматизация
- Автоматизация
- Автоматизация
- Автоматизация абсорбции газа