Программа "Сведения о владельцах автомобилей"
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