Программа "Сведения о владельцах автомобилей"

Delphi и базы данных, его среда, компоненты к доступа к данным и для работы с ними. Язык запросов SQL. База данных в Microsoft Access. Этапы проектирования баз данных. Этапы разработки и приемы работы в программе "Сведения о владельцах автомобилей".

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

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

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

1.8 Этапы проектирования баз данных

Этапы проектирования и создания базы данных определяются следующей последовательностью:

- построение информационно-логической модели данных предметной области;

- определение логической структуры реляционной базы данных;

- конструирование таблиц базы данных;

- создание схемы данных;

- ввод данных в таблицы (создание записей);

- разработка необходимых форм, запросов, макросов, модулей, отчетов;

- разработка пользовательского интерфейса.

В процессе разработки модели данных необходимо выделить информационные объекты, соответствующие требованиям нормализации данных, и определить связи между ними. Эта модель позволяет создать реляционную базу данных без дублирования, в которой обеспечивается однократный ввод данных при первоначальной загрузке и корректировках, а также целостность данных при внесении изменений.[2]

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

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

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

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

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

-определить функциональные зависимости между атрибутами;

- выбрать все зависимые атрибуты и указать для каждого все его ключевые атрибуты, т. е. те, от которых он зависит;

- сгруппировать атрибуты, одинаково зависимые от ключевых атрибутов. Полученные группы зависимых атрибутов вместе с их ключевыми атрибутами образуют информационные объекты[2].

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

В процессе создания сначала конструируются таблицы базы данных, соответствующие информационным объектам построенной модели данных. Далее может создаваться схема данных, в которой фиксируются существующие логические связи между таблицами. Эти связи соответствуют связям информационных объектов. В схеме данных могут быть заданы параметры поддержания целостности базы данных, если модель данных была разработана в соответствии с требованиями нормализации. Целостность данных означает, что в БД установлены и корректно поддерживаются взаимосвязи между записями разных таблиц при загрузке, добавлении и удалении записей в связанных таблицах, а также при изменении значений ключевых полей.[2]

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

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

С помощью встроенных средств и инструментов базы данных создается пользовательский интерфейс, позволяющий управлять процессами ввода, хранения, обработки, обновления и представления информации базы данных.[2]

2. Этапы разработки и работа в программе «Сведения о владельцах автомобилей»

2.1 Этапы разработки «Сведения о владельцах автомобилей»

Разработку программы «Сведения о владельцах автомобилей» можно разделить на следующие этапы:

1. Создание БД в MS Access;

2. Создание программы в Delphi;

3. Внедрение созданной БД в созданную программу.

Рассмотрим первый этап. Базу данных BD.mdb мы создали в среде MS Access в режиме конструктора. Ввели название полей, ключевые поля, тип полей, а так же размер полей.

Следующий этап - разработка программы в среде Delphi. Для создания программы нам понадобились следующие модули и библиотеки Delphi:

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

Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB, WinSkinData, SkinCaption, comobj, excel97, jpeg;

Ниже перечислен список используемых компонент и процедур:

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBGrid1: TDBGrid;

Image1: TImage;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

BitBtn8: TBitBtn;

BitBtn9: TBitBtn;

BitBtn1: TBitBtn;

BitBtn10: TBitBtn;

Panel5: TPanel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label9: TLabel;

Label8: TLabel;

Panel6: TPanel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

ColorDialog1: TColorDialog;

FontDialog1: TFontDialog;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

SkinCaption1: TSkinCaption;

SkinData1: TSkinData;

BitBtn11: TBitBtn;

procedure BitBtn9Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure DBGrid1CellClick(Column: TColumn);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn10Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn11Click(Sender: TObject);

Создание связи с базой данных происходит в результате выполнения следующего кода программы:

procedure TForm1.FormCreate(Sender: TObject);

begin

path:=ExtractFileDir(ParamStr(0));

ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+path+'\BD.MDB;Persist Security Info=False';

ADOQuery1.SQL.Add('select * from Inf');

ADOQuery1.ExecSQL;

ADOQuery1.Active:=true;

DBGrid1.Columns[0].Visible:=False;

DBGrid1.Columns[4].Visible:=False;

DBGrid1.Columns[5].Visible:=False;

DBGrid1.Columns[6].Visible:=False;

DBGrid1.Columns[7].Visible:=False;

DBGrid1.Columns[8].Visible:=False;

DBGrid1.Columns[9].Visible:=False;

DBGrid1.Columns[10].Visible:=False;

DBGrid1.Columns[11].Visible:=False;

end;

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

procedure TForm1.DBGrid1CellClick(Column: TColumn);

begin

path:=ExtractFileDir(ParamStr(0));

Label16.Caption:=ADOQuery1.Fields[3].AsString;

Label17.Caption:=ADOQuery1.Fields[4].AsString;

Label18.Caption:=ADOQuery1.Fields[5].AsString;

Label19.Caption:=ADOQuery1.Fields[6].AsString;

Label20.Caption:=ADOQuery1.Fields[7].AsString;

Label21.Caption:=ADOQuery1.Fields[1].AsString;

Label22.Caption:=ADOQuery1.Fields[9].AsString;

Label23.Caption:=ADOQuery1.Fields[8].AsString;

Label24.Caption:=ADOQuery1.Fields[2].AsString;

Label25.Caption:=ADOQuery1.Fields[10].AsString;

if ADOQuery1.Fields[11].AsString= '' then

begin

Image1.Picture.LoadFromFile(path+'\foto\nofoto.jpg');

end

else

begin

Image1.Picture.LoadFromFile(path+'\foto\'+ADOQuery1.Fields[11].AsString);

end;

end;

Удаление выбранной записи осуществляется при выполнении следующего кода:

procedure TForm1.BitBtn4Click(Sender: TObject);

var

u,t:integer;

begin

path:=ExtractFileDir(ParamStr(0));

t:=0;

for u:= 1 to ADOQuery1.RecordCount do

begin

t:=t+1;

end;

if t<>0 then

begin

if MessageDlg('Удалить эту запись?',mtInformation,[mbYes,mbNo],1)=mrYes then

begin

if ADOQuery1.Fields[11].AsString<>'nofoto.jpg' then

begin

DeleteFile(path+'\foto\'+ADOQuery1.Fields[11].AsString);

end;

ADOQuery1.Open;

ADOQuery1.Delete;

end;

end

else

begin

ShowMessage('Нет записей для удаления !');

end;

end;

Удаление всех записей осуществляется при выполнении следующего кода:

procedure TForm1.BitBtn5Click(Sender: TObject);

var

u, t:integer;

begin

path:=ExtractFileDir(ParamStr(0));

if MessageDlg('Удалить все данные?',mtInformation,[mbYes,mbNo],1)=mrYes then

begin

for u:= 1 to ADOQuery1.RecordCount do

begin

ADOQuery1.RecNo:=u;

if ADOQuery1.Fields[11].AsString<>'nofoto.jpg' then

begin

DeleteFile(path+'\foto\'+ADOQuery1.Fields[11].AsString);

end;

ADOQuery1.Open;

ADOQuery1.Delete;

end;

end;

end;

Экспорт данных в MS Excel происходит следующим образом:

procedure TForm1.BitBtn3Click(Sender: TObject);

var

excel:Variant;

x,i,f :integer;

f1, f2, f3, f4, f5, f6, F7, f8, f9, f10: string;

hwnd1:HWND;

begin

excel:=CreateOleObject('excel.application');

excel.WorkBooks.Add('');

excel.WorkBooks[1].WorkSheets[1].Name := 'Отчет' ;

excel.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[3].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[4].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[5].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[6].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[7].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[8].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[9].ColumnWidth := 20;

excel.WorkBooks[1].WorkSheets[1].Columns[10].ColumnWidth := 20;

for f:=1 to ADOQuery1.RecordCount+1 do

begin

excel.WorkBooks[1].WorkSheets[1].Rows[f].Font.Bold := false;

excel.WorkBooks[1].WorkSheets[1].Rows[f].Font.Color := clBlack;

excel.WorkBooks[1].WorkSheets[1].Rows[f].Font.Size := 10;

excel.WorkBooks[1].WorkSheets[1].Rows[f].Font.Name := 'Times New Roman';

end;

excel.Cells(1,1):='Гос №';

excel.Cells(1,2):='Марка';

excel.Cells(1,3):='Фамилия';

excel.Cells(1,4):='Имя';

excel.Cells(1,5):='Отчество';

excel.Cells(1,6):='Год рождения';

excel.Cells(1,7):='Место жительства';

excel.Cells(1,8):='Двигатель №';

excel.Cells(1,9):='Кузов №';

excel.Cells(1,10):='Цвет';

excel.WorkBooks[1].WorkSheets[1].Rows[1].Font.Bold := True;

excel.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color := clblack;

excel.WorkBooks[1].WorkSheets[1].Rows[1].Font.Size := 10;

excel.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name := 'Times New Roman';

excel.WorkBooks[1].WorkSheets[1].Rows[1].HorizontalAlignment:=3;

for x:= 1 to ADOQuery1.RecordCount do

begin

ADOQuery1.RecNo:=x;

f1:=ADOQuery1.Fields[1].AsString;

f2:=ADOQuery1.Fields[2].AsString;

f3:=ADOQuery1.Fields[3].AsString;

f4:=ADOQuery1.Fields[4].AsString;

f5:=ADOQuery1.Fields[5].AsString;

f6:=ADOQuery1.Fields[6].AsString;

f7:=ADOQuery1.Fields[7].AsString;

f8:=ADOQuery1.Fields[8].AsString;

f9:=ADOQuery1.Fields[9].AsString;

f10:=ADOQuery1.Fields[10].AsString;

excel.Cells(x+1,1) :=f1;

excel.Cells(x+1,2) :=f2;

excel.Cells(x+1,3) :=f3;

excel.Cells(x+1,4) :=f4;

excel.Cells(x+1,5) :=f5;

excel.Cells(x+1,6) :=f6;

excel.Cells(x+1,7) :=f7;

excel.Cells(x+1,8) :=f8;

excel.Cells(x+1,9) :=f9;

excel.Cells(x+1,10) :=f10;

excel.Cells[1,1].Borders.LineStyle := xlContinuous;

excel.Cells[1,2].Borders.LineStyle := xlContinuous;

excel.Cells[1,3].Borders.LineStyle := xlContinuous;

excel.Cells[1,4].Borders.LineStyle := xlContinuous;

excel.Cells[1,5].Borders.LineStyle := xlContinuous;

excel.Cells[1,6].Borders.LineStyle := xlContinuous;

excel.Cells[1,7].Borders.LineStyle := xlContinuous;

excel.Cells[1,8].Borders.LineStyle := xlContinuous;

excel.Cells[1,9].Borders.LineStyle := xlContinuous;

excel.Cells[1,10].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,1].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,2].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,3].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,4].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,5].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,6].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,7].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,8].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,9].Borders.LineStyle := xlContinuous;

excel.Cells[x+1,10].Borders.LineStyle := xlContinuous;

end;

excel.Cells[1,1].Interior.Color := clSilver;

excel.Cells[1,2].Interior.Color := clSilver;

excel.Cells[1,3].Interior.Color := clSilver;

excel.Cells[1,4].Interior.Color := clSilver;

excel.Cells[1,5].Interior.Color := clSilver;

excel.Cells[1,6].Interior.Color := clSilver;

excel.Cells[1,7].Interior.Color := clSilver;

excel.Cells[1,8].Interior.Color := clSilver;

excel.Cells[1,9].Interior.Color := clSilver;

excel.Cells[1,10].Interior.Color := clSilver;

excel.VISIBLE:=True;

hwnd1:=FindWindow('xlmain',nil);

if hwnd1<>0 then

DestroyWindow(hwnd1);

end;

Увеличение фотографии происходит следующим образом:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if Form2.Showing=true then

begin

Form2.Close;

end;

form2.Image1.Picture:=Form1.Image1.Picture;

Form2.ShowModal;

end;

Для того, чтобы выполнить замену фотографии, выполняется следующий код программы:

procedure TForm3.BitBtn2Click(Sender: TObject);

var

path:string;

begin

if f<>'nofoto.jpg' then

begin

path:=ExtractFileDir(ParamStr(0));

DeleteFile(v);

Form1.ADOQuery1.Edit;

Form1.ADOQuery1.Fields[11].AsString:=ExtractFileName(OpenDialog1.FileName);

Form1.ADOQuery1.Post;

CopyFile(pchar(OpenDialog1.FileName),Pchar(Path + '\foto\'+ExtractFileName(OpenDialog1.FileName)), true)

end;

Form1.Image1.Picture.LoadFromFile(path+'\foto\'+form1.ADOQuery1.Fields[11].AsString);

Form3.Close;

end;

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

procedure TForm4.BitBtn2Click(Sender: TObject);

begin

form1.ADOQuery1.Append;

form1.ADOQuery1.Fields[1].AsString:=Edit6.Text;

form1.ADOQuery1.Fields[2].AsString:=Edit9.Text;

form1.ADOQuery1.Fields[3].AsString:=Edit1.Text;

form1.ADOQuery1.Fields[4].AsString:=Edit2.Text;

form1.ADOQuery1.Fields[5].AsString:=Edit3.Text;

form1.ADOQuery1.Fields[6].AsString:=Edit4.Text;

form1.ADOQuery1.Fields[7].AsString:=Edit5.Text;

form1.ADOQuery1.Fields[8].AsString:=Edit8.Text;

form1.ADOQuery1.Fields[9].AsString:=Edit7.Text;

form1.ADOQuery1.Fields[10].AsString:=Edit10.Text;

form1.ADOQuery1.Fields[11].AsString:=ExtractFileName(OpenDialog1.FileName);

Form1.ADOQuery1.Post;

CopyFile(pchar(OpenDialog1.FileName),Pchar(Path + '\foto\'+ExtractFileName(OpenDialog1.FileName)), true) ;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

Edit5.Clear;

Edit6.Clear;

Edit7.Clear;

Edit8.Clear;

Edit9.Clear;

Edit10.Clear;

Edit11.Clear;

Form1.Image1.Picture.LoadFromFile(path+'\foto\'+form1.ADOQuery1.Fields[11].AsString);

Form4.Close;

end;

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

procedure TForm5.FormCreate(Sender: TObject);

var

u:integer;

begin

ComboBox1.Clear;

ComboBox2.Clear;

ComboBox3.Clear;

ComboBox4.Clear;

ComboBox5.Clear;

ComboBox6.Clear;

ComboBox7.Clear;

ComboBox8.Clear;

ComboBox9.Clear;

ComboBox10.Clear;

for u:= 1 to form1.ADOQuery1.RecordCount do

begin

form1.ADOQuery1.RecNo:=u;

ComboBox1.Items.Add(form1.ADOQuery1.Fields[3].AsString);

ComboBox2.Items.Add(form1.ADOQuery1.Fields[4].AsString);

ComboBox3.Items.Add(form1.ADOQuery1.Fields[5].AsString);

ComboBox4.Items.Add(form1.ADOQuery1.Fields[6].AsString);

ComboBox5.Items.Add(form1.ADOQuery1.Fields[7].AsString);

ComboBox6.Items.Add(form1.ADOQuery1.Fields[1].AsString);

ComboBox7.Items.Add(form1.ADOQuery1.Fields[9].AsString);

ComboBox8.Items.Add(form1.ADOQuery1.Fields[8].AsString);

ComboBox9.Items.Add(form1.ADOQuery1.Fields[2].AsString);

ComboBox10.Items.Add(form1.ADOQuery1.Fields[10].AsString);

end;

end;

Поиск-фильтр по фамилии:

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

If ComboBox1.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Фамилия ="'+ ComboBox1.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по имени:

If ComboBox2.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Имя ="'+ ComboBox2.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по отчеству:

If ComboBox3.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Отчество ="'+ ComboBox3.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по году рождения:

If ComboBox4.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Год ="'+ ComboBox4.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по месту жительства:

If ComboBox5.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Адрес ="'+ ComboBox5.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по гос.номеру:

If ComboBox6.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Гос№ ="'+ ComboBox6.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по номеру кузова:

If ComboBox7.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Кузов ="'+ ComboBox7.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по номеру двигателя:

If ComboBox8.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Двигатель ="'+ ComboBox8.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по марке:

If ComboBox9.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Марка ="'+ ComboBox9.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Поиск-фильтр по цвету:

If ComboBox10.Enabled=true then

begin

Form1.ADOQuery1.Active:=false;

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.SQL.Add('select * from Inf WHERE (Цвет ="'+ ComboBox10.Text +'") ');

Form1.ADOQuery1.ExecSQL;

Form1.ADOQuery1.Active:=true;

Form1.DBGrid1.Columns[0].Visible:=False;

Form1.DBGrid1.Columns[4].Visible:=False;

Form1.DBGrid1.Columns[5].Visible:=False;

Form1.DBGrid1.Columns[6].Visible:=False;

Form1.DBGrid1.Columns[7].Visible:=False;

Form1.DBGrid1.Columns[8].Visible:=False;

Form1.DBGrid1.Columns[9].Visible:=False;

Form1.DBGrid1.Columns[10].Visible:=False;

Form1.DBGrid1.Columns[11].Visible:=False;

end;

Form5.Close;

Form1.BitBtn11.Visible:=True;

end;

Заставка программы осуществляется следующим образом:

program Project1;

uses

Forms,

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

Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB, WinSkinData, SkinCaption, comobj, excel97, jpeg;

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},

Unit6 in 'Unit6.pas' {Form6};

{$R *.res}

begin

Application.Initialize;

Form6 := TForm6.Create(Application);

Form6.Show;

Form6.Update;

while Form6.Timer1.Enabled do

Application.ProcessMessages;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(TForm5, Form5);

Form6.Hide;

Form6.Free;

Application.Run;

2.2 Основные приемы работы в «Сведения о владельцах автомобилей»

Рисунок 1. Главное окно программы

На Рисунке 1 изображено главное окно программы. В данном окне находятся Панель управления, Информационная база данных, Информация о владельце и Информация о транспортном средстве, а также фотография транспортного средства.

Для добавления новых сведений необходимо нажать кнопку Добавить сведения, после чего появляется окно добавления записи изображенное на Рисунке 2.

Рисунок 2. Окно добавления записи

В данном окне необходимо заполнить все поля ввода, а также если имеется фотография транспортного средства то необходимо нажать кнопку Открыть, после чего необходимо выбрать фотографию, далее необходимо нажать кнопку Добавить сведения.

Для того чтобы создать отчет, необходимо нажать кнопку Создать отчет.

Для удаления выбранной записи необходимо нажать кнопку Удалить запись. Для удаления всех записей нажмите кнопку Удалить все данные.

Рисунок 3. Окно поиска-фильтра

Для того, чтобы найти какую-либо запись, либо выполнить фильтрацию записей по определенному критерию, необходимо нажать кнопку Поиск/Фильтр, после чего в появившемся окне поиска-фильтра (Рисунок 3) выбрать категорию поиска и нажать кнопку Поиск/Фильтр.

Рисунок 4. Окно изменения фото

Для изменения фотографии выбранной записи, необходимо нажать кнопку Изменить фото, после чего в появившемся окне изменения фото (Рисунок 4), выбрать необходимую фотографию через кнопку Обзор.

Рисунок 5. Окно изменения шрифта

На Рисунке 5 изображено окно изменения шрифта информационной базы. Для того, чтобы изменить шрифт, необходимо выбрать нужный шрифт и нажать кнопку OK.

На Рисунке 6 изображено окно изменения цвета окна информационной базы. Для того, чтобы изменить цвет, необходимо выбрать нужный цвет и нажать кнопку OK.

Рисунок 6. Окно изменения цвета окна

Заключение

Задачей дипломного проекта являлась разработка программного продукта по учету транспортных средств. Для реализации этой задачи были выполнены следующие этапы:

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

Спроектирована физическая модель базы данных;

Предусмотрена возможность корректировки данных;

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

Мы успешно справились с поставленными целями:

r систематизировали, закрепили и расширили теоретические знания и практические навыки в области программирования;

r развили навыки разработки информационных систем и прикладных программ специального назначения;

r Разработали программу «Сведения о владельцах автомобилей»

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

Для создания базы данных использовался Microsoft Office Access. Для написания программы использовался язык программирования Delphi, имеющий широкие возможности для работы с базами данных. Соединение с базой данных произведено при помощи технологии ADO. Обработка данных производилась при помощи операторов языка SQL, что значительно ускоряет работу программы.

Cписок использованной литературы

1 Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. -- СПб.: БХВ-Петербург, 2003. -- 288 с.

2 Гофман В. Э., Хомоненко А. Д. Работа с базами данных в Delphi. -- СПб.: БХВ-Петербург, 2001. -- 656 с.

3 Боровский А. Н. Программирование в Delphi 2005. -- СПб.: БХВ-Петербург, 2005. - 448 с.

4 Дарахвелидзе П. Г., Марков Е. П. Delphi 2005 для Win32. - СПб.: БХВ-Петербург, 2005. - 1136 с.

5 Сорокин А. В. Delphi. Разработка баз данных. -- СПб.: Питер, 2005. -- 477 с.

6 Фленов М. Е. Библия Delphi. -- СПб.: БХВ-Петербург, 2004. -- 880 с.

7 Фленов М. Е. Программирование в Delphi глазами хакера. -- СПб.: БХВ-Петербург, 2003. - 368 с.

8 Фленов М. Е. Delphi в шутку и всерьез: что умеют хакеры (+CD). -- СПб.: Питер. 2006. -- 271 с.

9 Архангельский Л.Я. Delphi 2006. Справочное пособие: Язык Delphi, классы, функции Win32 и .NET. -- М.: ООО «Бином-Пресс», 2006 г. -- 1 152 с.

10 Фаронов В. В. Delphi 2005. Разработка приложений для баз данных и Интернета. -- СПб.: Питер, 2006. -- 603 с.

11 Карпова Т. С. Базы данных: модели, разработка, реализация. -- СПб.: Питер, 2001. -- 304 с.

12 Иллюстрированный самоучитель по Delphi для начинающих. Электронное пособие.

13 Иллюстрированный самоучитель по Delphi для профессионалов. Электронное пособие.

14 Delphi World 6.0. Электронный справочник.


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

  • Постановка задачи автоматизации учебного процесса колледжа и описание предметной области. Работа с базами данных в Delphi: способы, компоненты доступа к данным и работы с ними. Язык запросов SQL. База данных в Microsoft Access и результаты исследований.

    дипломная работа [55,6 K], добавлен 16.07.2008

  • Проектирование базы данных учета посещаемости и среда разработки программного продукта. Работа с базами данных Access в Delphi: компоненты доступа к данным, создание отчетов в Delphi и запросов на языке SQL. Программа и эксплуатационная документация.

    дипломная работа [53,2 K], добавлен 16.07.2008

  • Состав, расширение баз данных Access (Microsoft Office). Выполнение запросов, заполнение форм и таблиц. Типы данных Microsoft Access. Средства создания объектов базы данных СУБД. Дополнительные возможности запросов. Свойства полей. Режим работы с формами.

    презентация [3,0 M], добавлен 28.10.2014

  • Компоненты реляционной базы данных Microsoft Access. Создание структуры таблиц и определение связей между ними. Проектирование форм для сводных таблиц и запросов с помощью конструктора окон. Разработка и создание автоотчетов и запросов на выборку данных.

    реферат [3,3 M], добавлен 29.01.2011

  • Системы визуального объектно-ориентированного программирования. Среда разработки Delphi. Microsoft Access как система управления базами данных реляционного типа. Структурированный язык запросов SQL. Программирование базы данных Библиотечного фонда.

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

  • Принципы работы с реляционными базами данных в среде Microsoft Access. Основные положения базы данных Access. Составление таблиц, запросов, отчетов, страниц и модулей. Основные структуры представления базы данных. Определение связей между таблицами.

    контрольная работа [2,6 M], добавлен 03.04.2014

  • Характеристика Microsoft Access. Создание структуры базы данных. Определение основных тем таблиц базы данных и информации, которую будут содержать поля таблиц. Создание таблиц, запросов, форм и отчетов. Страницы доступа к данным. Макросы и модули.

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

  • Разработка прикладного программного обеспечения деятельности отдела кадров университета в среде Microsoft Access 2003. Характеристика этапов проектирования базы данных. Построение семантической модели. Нормализация данных, понятие нормальной формы.

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

  • Структура простейшей базы данных и свойства полей. Характеристика типов данных. Описание процесса создания базы данных, таблиц и связей между ними, простых и составных форм, запросов в Microsoft Access. Пример составления подчинённых отчетов и макросов.

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

  • Информационные системы и базы данных. Обоснование выбора системы управления базой данных. Язык запросов SQL. Построение информационной модели. Разработка базы данных по продаже автомобилей в Microsoft Access. Организация связей между таблицами.

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

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