Учебная работа. Реферат: Автоматизация автосалона 2
Введение. 2
Описание таблиц Базы Данных. 3
Связь меж таблицами Базы Данных. 4
Описание наружного вида пользовательского интерфейса. 5
ER диаграмма. 7
Программный код. 7
Программный код. 8
Заключение. 20
Использованная литература. 21
Введение
Главные цели данного курсового проекта:
1. Создать АИС по автомобильному салону «Автомаркет».
2. Закрепить познания программирования в среде Delphi.
3. Познакомится со всеми шагами сотворения готового продукта.
Итог проекта – готовый продукт (программка), которую в предстоящем можно употреблять в магазинах специализированных на продаже каров.
При разработке проекта будет употребляться механизм доступа к данным Borland Database Engine (BDE). Этот механизм доступа к данным дозволяет обращаться к локальным и файл-серверным форматам баз данных dBase, FoxPro и Paradox, к разным серверам SQL и ко почти всем остальным источникам данных, доступ которых поддерживался с помощью драйверов ODBC. к примеру, при помощи BDE можно впрямую работать с табличными файлами MS Excel.
Описание таблиц Базы Данных
1)
Catalog
.
db
– таблица содержит каталог каров (Acura, BMW и т.д.).
2)
Characteristic
.
db
– таблица содержит внутри себя данные о свойствах каров.
3)
The
.
Characteristic
.
db
– в таблицу входят подробное описание черт всякого кара.
4)
Zakaz
.
db
– в таблице отображается наименование кара который был куплен, другими словами добавлен в «Архив».
Связь меж таблицами Базы Данных
Описание наружного вида пользовательского интерфейса
В данном случае оформление программки выполнялось добавлением главных частей как DbGrid, ComboBox и т.д., а присвоение их
1)
Form1.
dfm
Рис.1 Общее окно
2)
Form2.dfm
Рис.2 Окно дизайна кара
3)
Form
3
.dfm
Рис.3 Окно Архива клиентов (тех кто купил кар)
ER
диаграмма
1
∞
Программный
код
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.FieldByName(‘AVTO’).AsString);
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_kyzova’).AsString;
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.Text);
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.Text)+
‘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(txtYear.Text)
else
sql_str:=’SELECT * FROM ‘+CB1.Text+’ WHERE Tip_kyzova=’+QuotedStr(CB2.Text)+
‘AND Data_vipyska=’+QuotedStr(txtYear.Text);
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.
2)
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.Text;
lblModel.Caption:=Form1.DBGrid1.Fields[0].Text;
lblCena.Caption:=Form1.DBGrid1.Fields[5].Text;
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.Caption)+
‘,’+QuotedStr(lblModel.Caption)+’,’+QuotedStr(copy(lblCena.Caption,0,length(lblCena.Caption)-3))+’,’+QuotedStr(txtFam.Text)+’)’;
Query1.SQL.Clear;
Query1.SQL.Add(sql_str);
Query1.ExecSQL;
MessageDlg(‘Поздравляем с покупкой новейшего кара!’,mtInformation,[mbOk],0);
Close;
end;
end.
3)
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=’+QuotedStr(txtFilter.Text+’*’);
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 запросы. Которая дает возможность ссылаться на единую базу, как через локальную сеть, так и через Веб. Потому что на данный момент Веб имеет глобальную значимость, то ее вероятности беспредельны, и постоянно можно быть в курсе данных. На примере, сеть компьютерных магазинов, которая базирована в нескольких городках. Если заказчик, просит выборку «железа», которой в данный момент не находится в магазине, другими словами возможность произвести его заказ из основного склада, к примеру с другого городка, которую должны, в недлинные сроки, доставит к заказчику.
В данной курсовой работе, так же были учтены такие услуги как, «Архив», где идет учет продаваемой продукции.
Данную программку можно уже полномасштабно употреблять в сетях магазинах либо в исходном бизнесе, но с течением времени как покажутся новейшие требования, и с течением времени эта программка избавиться от неких недостаток, перейдя на новейший уровень, и станет приносить хот, какую или пользу в виде денег и сэкономленного времени.
Использованная литература
1.
Галисеев Г. В. “Составляющие в
Delphi
7.”
Санкт-Петербург: “Вильямс”, 2004 год. — 642 стр.
2.
Коржинский С.Н. “Изучаем
Delphi
”
SNK Press Online (электрическое издание), 2007год.
c
тр.- 344
3.
Петров К.Д.
“Delphi
.
Help
.”
Казань: “Пром”, 2004 год. — 230
c
тр.
4.
Пиренеев А.Н. “
Delphi
:Самоучитель.”
Казань:
“
Абри”, 2005 год. — 120 стр.
5.
Поган А. “Delphi: Управление программера.”
Москва:
“
Эксмо
”
, 2006. — 480
c
тр.
6.
Стив
Тейксейр
,
Ксавье
Пачеко
“Borland Delphi 6.
Управление разраба.“
Санкт-Петербург: “Вильямс”, 2002 год. — 1120 стр.
7.
Хомкин Б.А. “Delphi: Сделай сам.”
Москва
“
Эксмо
”,
2005 год. — 110 стр.
8.
Чиртик А. “
Delphi
: Трюки и эффекты”
Санкт-Петербург: “Питер”; 2007 год. – 400 стр.
9.
Шабров В.Н. “Delphi: Программируй сам.”
Казань
: “
Абри
”;
2006 год. — 200 стр.
]]>