2 Разработка клиентского приложения

2

2.1 Используемые компоненты

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

– DBGrid – это визуальный компонент среды Delphi, предназначен для визуализации наборов данных [4];

– Image – этот компонент служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки, пиктограммы или метафайла;

– TADOConnection используется для указания базы данных и работы транзакциями;

– TADOTable – таблица доступная через ADO;

– TADOQuery –запрос к базе данных. Это может быть как запрос, в результате которого возвращаются данные и базы (например, SELECT), так и запрос, не возвращающий данных (например, INSERT);

– DataSource – не визуальный компонент представляет собой источник данных, который обеспечивает связь между набором данных и компонентами отображения и редактирования данных [5];

– Edit – используется для ввода пользователем однострочных текстов. Может использоваться для отображения текста. Компонент визуальный;

– Button – используется для создания кнопок, которыми пользователь выбирает команды в приложении. Компонент визуальный;

– PageControl – позволяет создавать страницы, управляемые закладками или иными органами управления, для экономии места на рабочем столе. Компонент визуальный;

– ComboBox – представляет собой комбинацию поля редактирования (Edit) и список (ListBox), что дает возможность ввести данные путем набора на клавиатуре или выбора из списка.

2.2 Подключение к MS SQL сервер

Для подключения необходимо добавить на форму компонент с вкладки ADO – ADOConnection. В свойстве Use Connection String нужно указать расположение сервера (рисунок 4).

Рисунок 4 – Свойство Use Connection String

Далее необходимо нажать на кнопку «Build…» и выбрать провайдера «Microsoft OLE DB Provider for SQL Server». Затем нужно настроить данное свойство и выбрать БД на сервере – «Airport» (рисунок 5).

Рисунок 5 – Свойства канала передачи данных

Для отображения полученной с сервера БД нужно расположить компонент ADOTable и в компоненте Connection указать ADOConnection. В TableName нужно указать название таблицы из БД. После необходимо поместить на форму компонент DataSource и указать в DataSet ссылку на компонент ADOTable.

Чтобы отобразить таблицу, нужно добавить на форму DBGrid и указать в DataSource ссылку на созданный DataSource компонент.

2.3 Форма клиентского приложения

При запуске приложения открывается форма авторизации пользователя (рисунок 6).

Рисунок 6 – Форма авторизации в приложении

Если логин или пароль были введены неверно, то выводится сообщение с просьбой повторить попытку ввода (рисунок 7).

Рисунок 7 – Сообщение с просьбой повторить попытку входа в БД

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

Форма для администратора БД представлена на рисунке 8. Данному пользователю доступны все таблицы и функции для работы с БД. А также присутствует вкладка «Запросы», где пользователь может написать запрос и выполнить его.

Рисунок 8 – Форма клиентского приложения для администратора БД

Форма для сотрудников отдела кадров представлена на рисунке 9. Сотрудникам этого отдела доступна только одна таблица БД – «Сотрудники» и вкладка «Запросы». Сотрудники отдела кадров могут добавлять, удалять, редактировать, сортировать записи таблицы БД «Сотрудники», а также осуществлять поиск по коду или фамилии сотрудника и составлять отчет.

Рисунок 9 – Форма приложения для сотрудников отдела кадров

Форма для сотрудников отдела продаж представлена на рисунке 10. Данному пользователю доступны все таблицы БД, но с ограниченными функциями. Добавлять, удалять и редактировать записи возможно только в таблицах «Пассажиры» и «Билеты». В остальных таблицах БД доступны только такие функции, как «Сортировать», «Поиск» и «Создать отчет». А также предусмотрена возможность создания запросов.

Рисунок 10 – Форма приложения для сотрудников отдела продаж

Форма для диспетчера представлена на рисунке 11. Данному пользователю доступна только одна таблица для добавления, удаления и редактирования записей – «Рейсы». Таблицы «Самолеты», «Типы самолетов», «Авиакомпании» представлены только для просмотра информации, у диспетчера нет возможности редактировать записи этих таблиц.

Рисунок 11 – Форма клиентского приложения для диспетчера

Форма для пассажиров представлена на рисунке 12. Если для выше приведенных пользователей необходимо было вводить логин и пароль, то для пассажиров присутствует кнопка «Вход для пассажира», которая не требует ввода логина и пароля (рисунок 6). Пассажирам доступны некоторые таблицы БД только для просмотра информации. Отсутствует возможность редактировать записи таблиц и создания запросов.

Рисунок 12 – Форма клиентского приложения для пассажиров

Для сотрудников отдела кадров, отдела продаж, для администратора БД и диспетчера предусмотрена возможность создания запросов. Форма создания запросов представлена на рисунке 13.

Рисунок 13 – Форма создания запросов

На вкладке «Запрос» отображена таблица DBGrid, куда выводится созданный запрос, который введен в Edit.

2.4 Тестирование клиентского приложения

2.4.1 Добавление новой записи в таблицу БД

Добавим новую запись в таблицу «Авиакомпании». Код – 11. Наименование авиакомпании – ЮТэйр (рисунок 14).

Рисунок 14 – Добавление новой записи в таблицу «Авиакомпании»

При нажатии на «Добавить», Edit компоненты очищаются. При закрытии Формы таблица обновляется и появляется новая, добавленная запись (рисунок 15).

Рисунок 15 – Новая запись авиакомпании «ЮТэйр»

2.4.2 Удаление записи из таблицы БД

Удалим последний элемент из таблицы «Самолеты» (рисунок 16).

Рисунок 16 – Подтверждение удаления записи

Результат удаления записи из таблицы «Самолеты» представлен на рисунке 17.

Рисунок 17 – Результат удаления записи из таблицы «Самолеты»

2.4.3 Редактирование записи таблицы БД

Изменим время вылета самолета на 2 часа позже на рейс «Москва-Анапа» с номером рейса – 20 (рисунок 18). При нажатии на кнопку «Редактировать» открывается новая форма, куда мы вводим новые значения для полей, которые нужно изменить. При нажатии на «Изменить» форма закроется и таблица обновится.

Рисунок 18 – Редактирование записи в таблице «Рейсы»

Результат изменения представлен на рисунке 19.

Рисунок 19 – Результат изменения записи в таблице «Рейсы»

Изменение информации прошло успешно.

2.4.4 Поиск записи в таблице БД

Поиск происходит по изменению компонента Edit. Введем фамилию «Романова» в строке поиска записи в таблице «Сотрудники» (рисунок 20).

Рисунок 20 – Поиск записи по фамилии в таблице «Сотрудники»

Сотрудник был найден в таблице.

2.4.5 Сортировка записей таблиц БД по определенному столбцу

Выберем таблицу «Пассажиры» для сортировки. В данной таблице сортировка возможна по следующим полям: Код пассажира, Фамилия, Имя, Отчество, Паспорт. Выберем значение ComboBox – «Фамилия» для сортировки (рисунок 21).

Рисунок 21 – Сортировка пассажиров по фамилии

Сортировка прошла успешно.

2.4.6 Создание отчетов

Создадим отчет для таблицы «Рейсы» (рисунок 22)

Рисунок 22 – Отчет по таблице «Рейсы»

2.4.7 Создание запросов

Если оставить Edit пустым, то откроется окно «Вы не ввели запрос» (рисунок 23).

Рисунок 23 – Сообщение о том, что пользователь не ввел запрос

Создадим запрос на вывод самолетов, вместимость которых более 200 (рисунок 24).

Рисунок 24 – Результат запроса на вывод самолетов, вместимость которых более 200

Запрос был успешно выполнен.

2.5 Руководство пользователя

Для входа в БД необходимо авторизоваться или нажать на кнопку «Вход для пассажира».

Данные для входа администратора БД:

– логин: Администратор;

– пароль: 201.

Данные для входа в приложение сотрудника отдела кадров:

– логин: Отдел кадров;

– пароль: 202.

Данные для входа в приложение сотрудника отдела продаж:

– логин: Отдел продаж;

– пароль: 203.

Данные для входа в приложение диспетчера:

– логин: Диспетчер;

– пароль: 204.

После авторизации открывается БД с определенными функциями для каждой группы пользователей.

Для добавления новой записи в таблицу, пользователь должен нажать на кнопку «Добавить». В открытой форме пользователь вводит данные в поля (рисунок 25). В случае, если пользователю не нужно вводить новые данные, то тогда необходимо нажать на кнопку «Закрыть».

Рисунок 25 – Форма для добавления новой записи в таблицу

Для удаления записи необходимо выделить запись в таблице и нажать на кнопку «Удалить». После этого нужно подтвердить удаление записи (Рисунок 26).

 

Рисунок 26 – Подтверждение удаления записи из таблицы

Для изменения данных записи в таблице, пользователь должен выбрать в таблице строку и нажать на кнопку «Редактировать». При нажатии на кнопку «Изменить» форма закроется, и таблица обновится (рисунок 27).

Рисунок 27 – Форма для редактирования записи в таблице

Чтобы выполнить поиск, пользователь должен ввести необходимый параметр в компонент Edit (рисунок 28).

Рисунок 28 – Поиск записи в таблице «Самолеты» по наименованию самолета

Для того чтобы отсортировать данные по определенному столбцу, пользователю необходимо выбрать наименование столбца в выпадающем списке «Сортировать по» и нажать на кнопку «Сортировать» (рисунок 29).

Рисунок 29 – Выбор столбца для сортировки данных в таблице «Самолеты»

В том случае, если пользователю необходимо обратиться к базе данных с помощью запроса, составленному на языке T-SQL, ему необходимо перейти на вкладку «Запросы» и ввести свой запрос, после чего нажать кнопку «Выполнить запрос». При верном вводе запроса вся необходимая информация отобразится на экране (рисунок 30).

Рисунок 30 – Выполнение запроса на языке T-SQL

Для того чтобы завершить работу с БД «Аэропорт» необходимо нажать на кнопку «Закрыть» (рисунок 31).

Рисунок 31 – Кнопка для завершения работы с клиентским приложением

Заключение

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

– администратор БД;

– пассажиры;

– диспетчер;

– сотрудники отдела кадров;

– сотрудники отдела продаж.

Программное средство Delphi было соединено с Microsoft SQL Server с помощью средства ADO. Разработанное приложение позволяет пользователю добавлять, изменять, удалять данные из таблицы. Возможен поиск по таблицам, сортировка данных и создание отчетов. Также для пользователя была создана возможность создания запросов к таблицам БД, используя язык T-SQL.

Диаграммы базы данных представлены в приложении А.

Программный код, разработанного клиентского приложения для информационной системы аэропорта, представлен в приложении Б.

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

Таким образом, поставленная цель курсового проекта достигнута, задачи выполнены.

Список использованных источников

1) С.В. Тарасов. СУБД для программиста. Базы данных изнутри / Издательский дом «Солон-пресс», 2018

2) URL: https://rudocs.exdat.com/docs/index-200968.html. Дата обращения: 16.03.2021

3) URL: https://www.interestprograms.ru/article-history-pascal-delphi. Дата обращения: 25.03.2021

4) URL: https://www.h-delphi.ru/dbgrid/. Дата обращения: 18.04.2021

5) URL: http://delphi-box.ru/datasource-delphi.html. Дата обращения: 18.04.2021

 

Приложение А

Диаграммы базы данных

(обязательное)

 

Диаграмма вариантов использования представлена на рисунке А.1.

Рисунок А.1 – Диаграмма вариантов использования

Диаграмма развертывания представлена на рисунке А.2.

Рисунок А.2 – Диаграмма развертывания

Диаграмма классов БД представлена на рисунке А.3.

 

Рисунок А.3 – Диаграмма классов базы данных

Приложение Б

Листинг программы клиентской части

(обязательное)

 

unit Unit1;

 

interface

uses

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

Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, DB, ADODB;

 

type

TForm1 = class(TForm)

Image1: TImage;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ADOConnection1: TADOConnection;

BitBtn3: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

uses Unit2;

 

{$R *.dfm}

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

var

inputLogin, inputPassword: string;

begin

inputLogin := Edit1.Text;

inputPassword := Edit2.Text;

if (((inputLogin = 'Администратор') AND (inputPassword = '201')) OR ((inputLogin = 'Отдел продаж') AND (inputPassword = '203')) OR ((inputLogin = 'Диспетчер') AND (inputPassword = '204')) OR ((inputLogin = 'Отдел кадров') AND (inputPassword = '202')))

then

begin

if (Form1.Edit1.Text = 'Администратор') then

Form2.Caption := 'База данных «Аэропорт» > Администратор';

if (Form1.Edit1.Text = 'Отдел продаж') then

begin

Form2.Button1.Visible := False;

Form2.Button2.Visible := False;

Form2.Button3.Visible := False;

Form2.Button7.Visible := False;

Form2.Button8.Visible := False;

Form2.Button9.Visible := False;

Form2.Button11.Visible := False;

Form2.Button13.Visible := False;

Form2.Button14.Visible := False;

Form2.Button17.Visible := False;

Form2.Button18.Visible := False;

Form2.Button19.Visible := False;

Form2.Button21.Visible := False;

Form2.Button29.Visible := False;

Form2.Button30.Visible := False;

Form2.Button31.Visible := False;

Form2.Caption := 'База данных «Аэропорт» > Отдел продаж';

end;

if (Form1.Edit1.Text = 'Диспетчер') then

begin

Form2.Button1.Visible := False;

Form2.Button2.Visible := False;

Form2.Button3.Visible := False;

Form2.Button5.Visible := False;

Form2.Button7.Visible := False;

Form2.Button8.Visible := False;

Form2.Button9.Visible := False;

Form2.Button11.Visible := False;

Form2.Button13.Visible := False;

Form2.Button14.Visible := False;

Form2.TabSheet4.TabVisible := False;

Form2.TabSheet5.TabVisible := False;

Form2.TabSheet7.TabVisible := False;

Form2.Button35.Visible := False;

Form2.Button35.Visible := False;

Form2.Button37.Visible := False;

Form2.Caption := 'База данных «Аэропорт» > Диспетчер';

end;

if (Form1.Edit1.Text = 'Отдел кадров') then

begin

Form2.TabSheet1.TabVisible := False;

Form2.TabSheet2.TabVisible := False;

Form2.TabSheet3.TabVisible := False;

Form2.TabSheet5.TabVisible := False;

Form2.TabSheet6.TabVisible := False;

Form2.TabSheet7.TabVisible := False;

Form2.Caption := 'База данных «Аэропорт» > Отдел кадров';

end;

Form1.Visible := false;

Form2.ShowModal;

end

else

MessageDlg('Логин или пароль введены неверно! Повторите попытку снова.', mtWarning, [mbOk], 0);

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

Form2.Caption := 'База данных «Аэропорт» > Пассажиры';

Form2.Button1.Visible := False;

Form2.Button2.Visible := False;

Form2.Button3.Visible := False;

Form2.Button5.Visible := False;

Form2.TabSheet2.TabVisible := False;

Form2.Button11.Visible := False;

Form2.Button13.Visible := False;

Form2.Button14.Visible := False;

Form2.TabSheet4.TabVisible := False;

Form2.Button23.Visible := False;

Form2.Button24.Visible := False;

Form2.Button25.Visible := False;

Form2.Button27.Visible := False;

Form2.Button29.Visible := False;

Form2.Button30.Visible := False;

Form2.Button31.Visible := False;

Form2.Button33.Visible := False;

Form2.Button35.Visible := False;

Form2.Button36.Visible := False;

Form2.Button37.Visible := False;

Form2.Button39.Visible := False;

Form2.TabSheet8.TabVisible := False;

Form1.Visible := false;

Form2.ShowModal;

end;

end.

 

unit Unit2;

 

interface

uses

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

Dialogs, DB, ADODB, Menus, Grids, DBGrids, ComCtrls, jpeg, ExtCtrls,

StdCtrls, Buttons;

 

type

TForm2 = class(TForm)

ADOTable1: TADOTable;

DataSource1: TDataSource;

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

DBGrid1: TDBGrid;

Image1: TImage;

TabSheet2: TTabSheet;

ADOTable2: TADOTable;

DataSource2: TDataSource;

DBGrid2: TDBGrid;

TabSheet3: TTabSheet;

DataSource3: TDataSource;

ADOTable3: TADOTable;

ADOTable4: TADOTable;

ADOTable5: TADOTable;

ADOTable6: TADOTable;

DataSource4: TDataSource;

DataSource5: TDataSource;

DataSource6: TDataSource;

DataSource7: TDataSource;

ADOTable7: TADOTable;

TabSheet4: TTabSheet;

DBGrid3: TDBGrid;

DBGrid4: TDBGrid;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

DBGrid5: TDBGrid;

DBGrid6: TDBGrid;

DBGrid7: TDBGrid;

TabSheet8: TTabSheet;

DBGrid8: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

ComboBox1: TComboBox;

ADOQuery1: TADOQuery;

Button5: TButton;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Edit2: TEdit;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

ComboBox2: TComboBox;

Button10: TButton;

Button12: TButton;

Label3: TLabel;

Edit3: TEdit;

ADOQuery2: TADOQuery;

ADOQuery3: TADOQuery;

ADOQuery4: TADOQuery;

ADOQuery5: TADOQuery;

ADOQuery6: TADOQuery;

ADOQuery7: TADOQuery;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

ComboBox6: TComboBox;

ComboBox7: TComboBox;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Button11: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Edit4: TEdit;

Edit5: TEdit;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Button23: TButton;

Button24: TButton;

Button25: TButton;

Button26: TButton;

Button27: TButton;

Button28: TButton;

Edit10: TEdit;

Edit11: TEdit;

Button29: TButton;

Button30: TButton;

Button31: TButton;

Button32: TButton;

Button33: TButton;

Button34: TButton;

Edit12: TEdit;

Edit13: TEdit;

Button35: TButton;

Button36: TButton;

Button37: TButton;

Button38: TButton;

Button40: TButton;

Label14: TLabel;

Label15: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Button39: TButton;

Label16: TLabel;

Button41: TButton;

Button42: TButton;

ADOQuery8: TADOQuery;

ADOTable8: TADOTable;

DataSource8: TDataSource;

Edit16: TEdit;

procedure N4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Edit3Change(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button26Click(Sender: TObject);

procedure Button32Click(Sender: TObject);

procedure Button38Click(Sender: TObject);

procedure Edit4Change(Sender: TObject);

procedure Edit5Change(Sender: TObject);

procedure Edit6Change(Sender: TObject);

procedure Edit7Change(Sender: TObject);

procedure Edit8Change(Sender: TObject);

procedure Edit9Change(Sender: TObject);

procedure Edit10Change(Sender: TObject);

procedure Edit11Change(Sender: TObject);

procedure Edit14Change(Sender: TObject);

procedure Edit15Change(Sender: TObject);

procedure Edit12Change(Sender: TObject);

procedure Edit13Change(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button24Click(Sender: TObject);

procedure Button30Click(Sender: TObject);

procedure Button36Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

procedure Button28Click(Sender: TObject);

procedure Button34Click(Sender: TObject);

procedure Button40Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button27Click(Sender: TObject);

procedure Button33Click(Sender: TObject);

procedure Button23Click(Sender: TObject);

procedure Button25Click(Sender: TObject);

procedure Button29Click(Sender: TObject);

procedure Button31Click(Sender: TObject);

procedure Button35Click(Sender: TObject);

procedure Button37Click(Sender: TObject);

procedure Button39Click(Sender: TObject);

procedure Button41Click(Sender: TObject);

procedure Button42Click(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10,

Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19,

Unit20, Unit26;

 

{$R *.dfm}

 

procedure TForm2.N4Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.FormCreate(Sender: TObject);

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM Airplane');

ADOQuery1.Active := True;

 

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add('SELECT * FROM Aircraft_Types');

ADOQuery2.Active := True;

 

ADOQuery3.SQL.Clear;

ADOQuery3.SQL.Add('SELECT * FROM Airline');

ADOQuery3.Active := True;

 

ADOQuery4.SQL.Clear;

ADOQuery4.SQL.Add('SELECT * FROM Staff');

ADOQuery4.Active := True;

 

ADOQuery5.SQL.Clear;

ADOQuery5.SQL.Add('SELECT * FROM Passengers');

ADOQuery5.Active := True;

 

ADOQuery6.SQL.Clear;

ADOQuery6.SQL.Add('SELECT * FROM Flights');

ADOQuery6.Active := True;

 

ADOQuery7.SQL.Clear;

ADOQuery7.SQL.Add('SELECT * FROM Tickets');

ADOQuery7.Active := True;

 

DBGrid1.Columns[0].Title.caption := 'Код';

DBGrid1.Columns[1].Title.caption := 'Наименование самолета';

DBGrid1.Columns[2].Title.caption := 'Вместимость';

DBGrid1.Columns[3].Title.caption := 'Грузоподъемность, т';

DBGrid1.Columns[4].Title.caption := 'Код типа';

DBGrid1.Columns[5].Title.caption := 'Налетано';

DBGrid1.Columns[6].Title.caption := 'Дата последнего т/о';

DBGrid1.Columns[7].Title.caption := 'Код авиакомпании';

 

DBGrid2.Columns[0].Title.caption := 'Код типа';

DBGrid2.Columns[1].Title.caption := 'Наименование типа';

DBGrid2.Columns[2].Title.caption := 'Назначение';

 

DBGrid3.Columns[0].Title.caption := 'Код авиакомпании';

DBGrid3.Columns[1].Title.caption := 'Наименование авиакомпании';

 

DBGrid4.Columns[0].Title.caption := 'Код сотрудника';

DBGrid4.Columns[1].Title.caption := 'Фамилия';

DBGrid4.Columns[2].Title.caption := 'Имя';

DBGrid4.Columns[3].Title.caption := 'Отчество';

DBGrid4.Columns[4].Title.caption := 'Адрес';

DBGrid4.Columns[5].Title.caption := 'Телефон';

DBGrid4.Columns[6].Title.caption := 'Паспорт';

 

DBGrid5.Columns[0].Title.caption := 'Код пассажира';

DBGrid5.Columns[1].Title.caption := 'Фамилия';

DBGrid5.Columns[2].Title.caption := 'Имя';

DBGrid5.Columns[3].Title.caption := 'Отчество';

DBGrid5.Columns[4].Title.caption := 'Паспорт';

 

DBGrid6.Columns[0].Title.caption := 'Код рейса';

DBGrid6.Columns[1].Title.caption := 'Дата рейса';

DBGrid6.Columns[2].Title.caption := 'Время вылета';

DBGrid6.Columns[3].Title.caption := 'Откуда';

DBGrid6.Columns[4].Title.caption := 'Куда';

DBGrid6.Columns[5].Title.caption := 'Код самолета';

DBGrid6.Columns[6].Title.caption := 'Время полета';

 

DBGrid7.Columns[0].Title.caption := 'Код билета';

DBGrid7.Columns[1].Title.caption := 'Код пассажира';

DBGrid7.Columns[2].Title.caption := 'Код рейса';

DBGrid7.Columns[3].Title.caption := 'Код сотрудника';

DBGrid7.Columns[4].Title.caption := 'Место';

DBGrid7.Columns[5].Title.caption := 'Стоимость';

end;

 

procedure TForm2.Button1Click(Sender: TObject);

begin

Form3.ShowModal;

end;

 

procedure TForm2.Button2Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable1.Delete;

end;

 

procedure TForm2.Button3Click(Sender: TObject);

begin

Form4.ShowModal;

end;

 

procedure TForm2.Button4Click(Sender: TObject);

begin

case ComboBox1.ItemIndex of

0: ADOTable1.IndexFieldNames := 'ID_Airplane';

1: ADOTable1.IndexFieldNames := 'Name_Airplane';

2: ADOTable1.IndexFieldNames := 'Capacity';

3: ADOTable1.IndexFieldNames := 'Carrying';

4: ADOTable1.IndexFieldNames := 'ID_Type';

5: ADOTable1.IndexFieldNames := 'Naletano';

6: ADOTable1.IndexFieldNames := 'Service_Date';

7: ADOTable1.IndexFieldNames := 'ID_Airline';

end;

end;

 

procedure TForm2.Edit2Change(Sender: TObject);

begin

ADOTable1.Locate('Name_Airplane', Edit2.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit1Change(Sender: TObject);

begin

ADOTable1.Locate('ID_Airplane', Edit1.Text, [loPartialKey]);

end;

 

procedure TForm2.Button5Click(Sender: TObject);

begin

Form5.QuickRep1.Preview;

end;

 

procedure TForm2.Button6Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Edit3Change(Sender: TObject);

begin

ADOTable2.Locate('ID_Type', Edit3.Text, [loPartialKey]);

end;

 

procedure TForm2.Button8Click(Sender: TObject);

begin

Form6.ShowModal;

end;

 

procedure TForm2.Button7Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable2.Delete;

end;

 

procedure TForm2.Button9Click(Sender: TObject);

begin

Form7.ShowModal;

end;

 

procedure TForm2.Button10Click(Sender: TObject);

begin

case ComboBox2.ItemIndex of

0: ADOTable2.IndexFieldNames := 'ID_Type';

1: ADOTable2.IndexFieldNames := 'Name_Type';

2: ADOTable2.IndexFieldNames := 'Purpose';

end;

end;

 

procedure TForm2.Button12Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button20Click(Sender: TObject);

begin

case ComboBox6.ItemIndex of

0: ADOTable4.IndexFieldNames := 'ID_Staff';

1: ADOTable4.IndexFieldNames := 'Surname';

2: ADOTable4.IndexFieldNames := 'First_Name';

3: ADOTable4.IndexFieldNames := 'Last_Name';

end;

end;

 

procedure TForm2.Button15Click(Sender: TObject);

begin

case ComboBox4.ItemIndex of

0: ADOTable3.IndexFieldNames := 'ID_Airline';

1: ADOTable3.IndexFieldNames := 'Name_Airline';

end;

end;

 

procedure TForm2.Button26Click(Sender: TObject);

begin

case ComboBox5.ItemIndex of

0: ADOTable5.IndexFieldNames := 'ID_Passenger';

1: ADOTable5.IndexFieldNames := 'Surname';

2: ADOTable5.IndexFieldNames := 'First_Name';

3: ADOTable5.IndexFieldNames := 'Last_Name';

end;

end;

 

procedure TForm2.Button32Click(Sender: TObject);

begin

case ComboBox7.ItemIndex of

0: ADOTable6.IndexFieldNames := 'ID_Flight';

1: ADOTable6.IndexFieldNames := 'Flight_Date';

2: ADOTable6.IndexFieldNames := 'Departure_Time';

3: ADOTable6.IndexFieldNames := 'From_Flight';

4: ADOTable6.IndexFieldNames := 'To_Flight';

5: ADOTable6.IndexFieldNames := 'ID_Airplane';

6: ADOTable6.IndexFieldNames := 'Flight_Time';

end;

end;

 

procedure TForm2.Button38Click(Sender: TObject);

begin

case ComboBox3.ItemIndex of

0: ADOTable7.IndexFieldNames := 'ID_Ticket';

1: ADOTable7.IndexFieldNames := 'ID_Passenger';

2: ADOTable7.IndexFieldNames := 'ID_Flight';

3: ADOTable7.IndexFieldNames := 'ID_Staff';

4: ADOTable7.IndexFieldNames := 'Place';

5: ADOTable7.IndexFieldNames := 'Price';

end;

end;

 

procedure TForm2.Edit4Change(Sender: TObject);

begin

ADOTable3.Locate('ID_Airline', Edit4.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit5Change(Sender: TObject);

begin

ADOTable3.Locate('Name_Airline', Edit5.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit6Change(Sender: TObject);

begin

ADOTable4.Locate('ID_Staff', Edit6.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit7Change(Sender: TObject);

begin

ADOTable4.Locate('Surname', Edit7.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit8Change(Sender: TObject);

begin

ADOTable5.Locate('ID_Passenger', Edit8.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit9Change(Sender: TObject);

begin

ADOTable5.Locate('Surname', Edit9.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit10Change(Sender: TObject);

begin

ADOTable6.Locate('ID_Flight', Edit10.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit11Change(Sender: TObject);

begin

ADOTable6.Locate('Flight_Date', Edit11.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit14Change(Sender: TObject);

begin

ADOTable6.Locate('From_Flight', Edit14.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit15Change(Sender: TObject);

begin

ADOTable6.Locate('To_Flight', Edit15.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit12Change(Sender: TObject);

begin

ADOTable7.Locate('ID_Ticket', Edit12.Text, [loPartialKey]);

end;

 

procedure TForm2.Edit13Change(Sender: TObject);

begin

ADOTable7.Locate('Place', Edit13.Text, [loPartialKey]);

end;

 

procedure TForm2.Button13Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable3.Delete;

end;

 

procedure TForm2.Button18Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable4.Delete;

end;

 

procedure TForm2.Button24Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable5.Delete;

end;

 

procedure TForm2.Button30Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable6.Delete;

end;

 

procedure TForm2.Button36Click(Sender: TObject);

begin

if MessageDlg('Вы хотите удалить выбранную строку?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes

then

ADOTable7.Delete;

end;

 

procedure TForm2.Button16Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button22Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button28Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button34Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button40Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm2.Button11Click(Sender: TObject);

begin

Form8.ShowModal;

end;

 

procedure TForm2.Button14Click(Sender: TObject);

begin

Form9.ShowModal;

end;

 

procedure TForm2.Button17Click(Sender: TObject);

begin

Form10.ShowModal;

end;

 

procedure TForm2.Button19Click(Sender: TObject);

begin

Form11.ShowModal;

end;

 

procedure TForm2.Button21Click(Sender: TObject);

begin

Form12.QuickRep1.Preview;

end;

 

procedure TForm2.Button27Click(Sender: TObject);

begin

Form13.QuickRep1.Preview;

end;

 

procedure TForm2.Button33Click(Sender: TObject);

begin

Form14.QuickRep1.Preview;

end;

 

procedure TForm2.Button23Click(Sender: TObject);

begin

Form15.ShowModal;

end;

 

procedure TForm2.Button25Click(Sender: TObject);

begin

Form16.ShowModal;

end;

 

procedure TForm2.Button29Click(Sender: TObject);

begin

Form17.ShowModal;

end;

 

procedure TForm2.Button31Click(Sender: TObject);

begin

Form18.ShowModal;

end;

 

procedure TForm2.Button35Click(Sender: TObject);

begin

Form19.ShowModal;

end;

 

procedure TForm2.Button37Click(Sender: TObject);

begin

Form20.ShowModal;

end;

 

procedure TForm2.Button39Click(Sender: TObject);

begin

Form26.ShowModal;

end;

 

procedure TForm2.Button41Click(Sender: TObject);

begin

ADOQuery8.Active := False;

if Edit16.Text <> '' then begin

ADOQuery8.SQL.Text := Edit16.Text;

ADOQuery8.Active := True

end

else

ShowMessage('Вы не ввели запрос!');

end;

 

procedure TForm2.Button42Click(Sender: TObject);

begin

Form1.Close;

end;

 

end.

 

unit Unit3;

 

interface

uses

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

Dialogs, Buttons, ComCtrls, StdCtrls;

 

type

TForm3 = class(TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

DateTimePicker1: TDateTimePicker;

Button2: TButton;

Label9: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

uses Unit2;

 

{$R *.dfm}

 

procedure TForm3.Button1Click(Sender: TObject);

begin

Form2.ADOQuery1.Insert;

Form2.ADOQuery1.FieldByName('ID_Airplane').Text := Edit1.Text;

Form2.ADOQuery1.FieldByName('Name_Airplane').Text := Edit2.Text;

Form2.ADOQuery1.FieldByName('Capacity').Text := Edit3.Text;

Form2.ADOQuery1.FieldByName('Carrying').Text := Edit4.Text;

Form2.ADOQuery1.FieldByName('ID_Type').Text := Edit5.Text;

Form2.ADOQuery1.FieldByName('Naletano').Text := Edit6.Text;

Form2.ADOQuery1.FieldByName('Service_Date').AsDateTime := DateTimePicker1.Date;

Form2.ADOQuery1.FieldByName('ID_Airline').Text := Edit7.Text;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

Edit5.Clear;

Edit6.Clear;

Edit7.Clear;

if Form2.ADOQuery1.Modified then Form2.ADOQuery1.Post;

Form2.ADOTable1.Close;

Form2.ADOTable1.Open;

Close;

end;

 

procedure TForm3.Button2Click(Sender: TObject);

begin

Form2.ADOQuery1.Refresh;

Form2.ADOTable1.Close;

Form2.ADOTable1.Open;

Close;

end;

end.

 

unit Unit4;

 

interface

uses

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

Dialogs, ComCtrls, StdCtrls;

 

type

TForm4 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

DateTimePicker1: TDateTimePicker;

Button2: TButton;

Label9: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form4: TForm4;

 

implementation

uses Unit2;

 

{$R *.dfm}

 

procedure TForm4.Button1Click(Sender: TObject);

begin

Form2.ADOTable1.Edit;

Form2.ADOTable1.FieldByName('ID_Airplane').Text := Edit1.Text;

Form2.ADOTable1.FieldByName('Name_Airplane').Text := Edit2.Text;

Form2.ADOTable1.FieldByName('Capacity').Text := Edit3.Text;

Form2.ADOTable1.FieldByName('Carrying').Text := Edit4.Text;

Form2.ADOTable1.FieldByName('ID_Type').Text := Edit5.Text;

Form2.ADOTable1.FieldByName('Naletano').Text := Edit6.Text;

Form2.ADOTable1.FieldByName('Service_Date').AsDateTime := DateTimePicker1.Date;

Form2.ADOTable1.FieldByName('ID_Airline').Text := Edit7.Text;

if Form2.ADOTable1.Modified then Form2.ADOTable1.Post;

Close;

end;

 

procedure TForm4.Button2Click(Sender: TObject);

begin

Form2.ADOTable1.Refresh;

Close;

end;

 

end.