logo search
Диплом_Лёша

2.2.5 Этап разработки программы

  1. Первым этапом разработки АИС «Автотранспортное предприятие пассажирского транспорта» является создание нового проекта в среде Embarcadero RAD Studio XE2 Delphi. Создаём новый проект ("File" -> "New" -> “VCL Forms Application-Delphi”) рис. 6.

Первым проектом будет приложение для работы с БД.

Рисунок 6. Создание нового проекта

При первом сохранения проекта задаем его имя, как «АТР».

  1. Созданная форма является главной в проекте и будет использоваться для авторизации пользователей. Сразу же переименовываем форму в «authorization» и задаем заголовок «Авторизация».

Далее на форме authorization добавляются компоненты:

1) UniConnection1, UniTable1, UniDataSource1, UniQuery1 и проводник MySQLUniProvider1, DBEdit1.

2) Edit1, Edit2, Combobox1, Checkbox1.

3) Button1, Button2, BitBtn1.

После проделанных действий интерфейс формы authorization выглядит следующим образом (рисунок 7).

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

Рисунок 7. Интерфейс формы authorization

  1. Следующей созданной формой будет форма main, которая будет являться основной формой для работы с программой.

Создаем новую форму выполнив в среде «File->New->VCL Form-Delphi». Меняем имя на main, а заголовок на АИС «Автотранспортное предприятие» (в процессе работы программы заголовок меняется на имя выбранной таблицы).

Создаем главное меню формы MinMenu1, содержащие разделы: «Файл», «Данные», «Настройка», «Справка», «О программе». Раздел файл содержит кнопки:

Раздел меню «Данные» содержит подразделы с названиями таблиц, которые можно открыть как в виде таблиц, так и в виде формы.

Раздел «Настройки» (N9). Открывает форму «Настройки».

Раздел «Справка» (N29) открывает форму «Справка».

Раздел «О программе» (N15) открывает одноименную форму.

Далее создаем панель «Начало работы», которая будет отображаться при первом входе. С её помощью возможно быстро открыть необходимую таблицу БД. На панели Panel2, расположим GroupBox1, на котором будут расположены кнопки Button (5,6,11,13,15,19), каждая из которых отвечает за вывод, указанной в её названии таблицы. Добавляем на GroupBox1 другие GroupBox (2-7), которые будут появляться по наведению на имя таблицы в первом и будут содержать варианты действий (например: открыть таблицу, открыть форму и т.п.).

Далее добавляем DBGrid1, в который будут выводиться выбранная таблица из БД и результаты запросов. Контекстное меню PopupMenu2 привязано к DBGrid1 и содержит пункт «открыть форму», по выбору которого выведенная таблица открывается в режиме формы. Для навигации по данным выведенным в DBGrid1 добавим компонент DBNavigator1, который позволит перемещаться по данным, а также добавлять, удалять и сохранять строки. Создадим кнопку Button4, расположим её над DBNavigator1, которая будет скрывать или отображать DBNavigator1.

Для поиска и сортировки данных БД создадим новую панель Panel1 и расположил на ней компоненты Combobox1 (содержит список таблиц), Combobox2 (содержит список полей таблицы, выбранной в Combobox1), Combobox5 (содержит список полей для сортировки данных), Edit1 (сюда следует вводить данные для поиска), CheckBox1 (скрывает или раскрывает сортировку), Button2 (скрывает панель поиска и сортировки panel1). Поиск осуществляется динамически, по вводу текста в текстовое поле Edit1. Все совпадения выводятся в DBGrid1.

В самом низу формы создадим еще одну панель Panel3. Эта панель будет видима только тогда, когда открыта какая-либо таблица в DBGrid1. Сделаем ее внешний вид вдавленной в форму с помощью свойства «BorderStyle->bsSingle». На этой панели расположим кнопку BitBtn1, по нажатии на которую будет открываться форма, соответствующая таблице, выведенной в DBGrid1.

Общий вид формы main в среде разработки представлен на рисунке 8.

Рисунок 8. Интерфейс главной формы

  1. На четвертом этапе создается форма connect. Данная форма недоступна для пользователя и используется для соединения и работы с базой данных. На нем располагаются компоненты типа UniDAC: UniConnection, UniTable, UniQuery, UniDataSource, которые отвечают за соединение, отправку запросов и хранение выбранных данных. Пары компонентов UniTable и UniDataSource создаются для каждой таблицы БД:

Отдельно для разных SQL запросов создаем компоненты UniQuery1 и UniDataSource1.

Данная форма продемонстрирована на рисунке 9.

Все компоненты для работы с БД располагаются только на этой форме (за исключением формы «Авторизация» и «Новый путевой лист»).

Рисунок 9. Форма connect.

  1. На пятом этапе создаётся форма «Регистрация».

На форму добавляются компоненты Edit (1-4), Label (1-9) и Button (1, 2). Данные из компонентов типа Edit отправляются в таблицу users по нажатию кнопки «Регистрация» (Button1), при условии заполнения всех полей, затем поля очищаются и данная форма закрывается. Кнопка «Заполнить образец» (Button2) по нажатию которой текстовые поля заполняются в виде образца. По наведению на label «?» появляется всплывающая подсказка по данному полю. На рисунке 10 изображена данная форма в среде разработки.

Рисунок 10. Форма «Регистрация».

  1. На шестом этапе создаются модули, которые отображают информацию в режиме формы (рисунки 11-15). Алгоритм создания един для всех таких форм:

Модули форм: bilet_form (Билетно-учетные листы), bus_form (Подвижной состав), driver_form (Водители), route_form, list (Путевые листы).

Рисунок 11. Форма «Билетно-учетные листы».

Рисунок 12. Форма «Подвижной состав».

Рисунок 13. Форма «Водители».

Рисунок 14. Форма «Путевые листы».

Рисунок 15. Форма «Маршруты».

  1. На седьмом этапе создаются формы «Новый путевой лист» и «Новый билетно-учетный лист». Данные формы основываются на межотраслевой типовой форме №6 и Приложения №9 к инструкции о порядке учета всех видов билетов на проезд в автобусах городского и пригородного сообщения соответственно. На форму добавляются компоненты типа Edit, Combobox, Label и Button. Все поля созданы к соответствующим данным в таблице БД. Поля «Всего» подсчитываются автоматически, также автоматически высчитываются норма расхода топлива и пробега, экономия и перерасход топлива в Путевом листе. Значения полей Combobox вытаскиваются из таблицы БД.

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

По нажатию кнопки «Х» форма закрывается, предварительно выдав сообщения о подтверждении выхода.

  1. На восьмом этапе создается форма «О программе». На форму добавляются компонент GroupBox1, на котором располагаются: Label (1,2,3,4,6). В компоненты Label добавляется информация о программе и разработчике.

  2. На девятом этапе создается форма «Справка». На форме создаются компоненты TreeView1, Panel1 и OleContainer (1-3). В TreeView1 вручную создается иерархия разделов справки. Сами текстовые по каждому разделу хранятся в OleContainer. По умолчанию все компоненты OleContainer невидимы пользователю. По выбору раздела в TreeView1 нужный OleContainer становится видимым.

  3. На десятом этапе создается второй проект – «Навигация». С помощью этого проекта будет осуществляться контроль ПС на линии. Создаются два проекта: клиентская часть и серверная часть (рисунок 16).

Рисунок 16. Проекты в рабочей группе.

  1. Создание формы osn серверной части (рисунок 17). На форму добавляются компоненты: Memo1, GroupBox1, на котором расположен ListBox1, GroupBox2, MainMenu1; компоненты для работы с БД: UniConnection1, UniDataSource1, UniQuery1 и проводник MySQLUniProvider1; компоненты для работы по сети: IdTCPServer1, IdAntiFreeze1; Button1 «Скрыть блок», Label (1-4).

Button1, GroupBox1 и GroupBox1 делаем невидимыми пользователю. Они будут отображаться по выбору в меню «Подвижной состав->На линии».

Рисунок 17. Главная форма серверной части.

  1. На этом этапе наполняем клиентскую часть (рисунок 18). Создаем форму «авторизация», для проверки личности водителя. На форму добавляем Edit1 (для ввода логина), Edit2 (для ввода пароля), Button1 (для входа в программу).

Рисунок 18. Авторизация на клиентской части.

  1. Создаём основную форму на клиентской части (рисунок 19). Добавляем ListBox1, MainMenu1, GroupBox1, GroupBox2 и Button (1-6). MainMenu1 наполняем разделами: «Выход на маршрут» и «Выйти».

Рисунок 19. Основная форма клиентской части.

  1. Создаем форму «Выход на маршрут» (рисунок 20). На форму добавляем GroupBox1, на котором располагаем Button1, ComboBox (1-3). В GroupBox1 будет выводиться список бортовых номеров. В GroupBox2 – список маршрутов, GroupBox3 список направлений. По нажатии кнопки Button1 «Поехали», данные отправляются на сервер и форма закрывается.

Рисунок 20. Форма «Выход на маршрут».