Реферат: Автоматизация автосалона 2
Название: Автоматизация автосалона 2 Раздел: Рефераты по информатике Тип: реферат | ||
Содержание: Описание таблиц Базы Данных. 3 Взаимосвязь между таблицами Базы Данных. 4 Описание внешнего вида пользовательского интерфейса. 5 Основные цели данного курсового проекта: 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 стр. |