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.