Разработка полнофункционального клиент-серверного приложения, реализующего прототип информационной системы

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



чателях, для которых не прибыл груз заданного типа:

ALTER procedure pStPr_9(@N varchar(50))p.[Name] from Polychatel pjoin cargo c on.polychatel_id=c.polychatel_idjoin tovar tv on.tovar_id=tv.tovar_idtv.tovar_nazvanie=@N

На рисунке 9:

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

приложение серверный информационный интерфейс

Рис. 9 - Form 5

Рис. 10 - Form 6

На рисунке 10:

в comboBox1 происходит выбор номера типа судна благодаря выполнению хранимой процедуры (для транзакции №1 - прибытие судна в порт):

PROCEDURE pStPr_12tip_id from tip

в dataGridView1 происходит вывод всех данных таблицы water_craft из базы данных с помощью транзакции (происходит как обновление данных, так и их добавление, т.е. транзакция№1 и №2):

ALTER procedure pTran* from water_craft

5. Диаграммы классов, реализующих уровни презентации, бизнес - логики и базы данных приложения

Рис. 11 - Диаграмма классов. Уровень презентации

Рис. 12 - Диаграммы классов. Уровень БД и бизнес - логики

6. Словесное описание процесса выполнения транзакций

Рис. 13 - Form 6. Форма выполнения транзакции

В данной работе необходимо выполнить транзакции: прибытия судна в порт; убытие судна из порта.

Здесь участвует только таблица water_craft.

DML - команды выполняются в следующей последовательности: вначале выбираются данные из таблицы с помощью команды SELECT, затем происходит добавление записей с помощью команды INSERT, и последним действием происходит сохранение изменений в таблице с помощью команды UPDATE.

При загрузке формы вызывается метода Form6_Load. Все данные таблицы water_craft из базы данных загружаются в dataGridView1. Таблица состоит из девять столбцов: дата ухода, дата прихода, нагруженность, название порта, флаг, капитан, владелец, номер судна, номер типа. В таблице, загруженной в dataGridView1 можно проводить всякого рода изменения:

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

если же Вы хотите произвести изменение в какой-либо другой ячейке, нужно сначала нажать кнопку Clear. Если Вы производите изменение в столбцах с типом string, то при нажатии кнопки Clear ячейка станет пустой и изменение теперь можно производить;

если изменения будут производиться в столбцах типа int или float, то при нажатии кнопки Clear, то в эти ячейки занесется цифра 0, после чего можно производить изменение;

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

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

Обработка exception и нелепых ситуаций:

если Вы ошибочно ввели неправильный формат влюбой ячейке, произойдет exception и появится сообщение, указыающее на ошибку типа;

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

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

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

Чтобы добавить новых сведений о судне, достаточно правильно ввести все данные в новом поле таблицы и нажать кнопку Commit. Если же ошибки не было, то операция пройдет успешно и добавления будут сохранены. В этом случае мы переходим в блок finally, в котором благополучно все завершается. Таким же способом нужно производить и изменения в ячейках.

Если же ошибки произошли при выполнении транзакции, мы переходим в блок catch, в котором показывается одна из перечисленных ошибок и транзакция не выполняется, при этом происходит откат транзакции Rollback, произойдет очистка данных, которые были занесены в таблицу, но не были закреплены.

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

7. Инструкция пользователя по работе с приложением

Рис. 14 - Main_Form. Главная форма

На рисунке 14 показана главная форма входа в приложение:

Button1 - кнопка, при нажатии которой выполняется запрос №1. Происходит выдача данных о том, сколько груза указанного типа подлежит разгрузке в нашем порту для данного судна. На Form 1 в comboBox1 выбираем судно, а в comboBox2 выбираем груз. После этого в listBox1 выведется результат данного запроса.

Button2 - кнопка, при нажатии которой выполняется запрос №2. Выдача данных о том, сколько груза указанного вида подлежит разгрузке для каждого получателя с судна, которое пришло в порт раньше других судов. На Form 2 в textBox1 выводится номер судна, которое пришло в порт раньше всего, а в textBox2 - тип этого судна. В comboBox1 нужно выбрать интересующий нас груз и в listBox1 выведется количества груза заданного типа.

Button3 - кнопка, при нажатии которой выполняется запрос №3. Выдача данных о том, сколько груза всех видов подлежит разгрузке для данного получателя со всех судов, упорядочив их по названию груза. На Form 3 в comboBox1нужно выбрать получателя и результат запроса выведется в listBox1 в виде информации о получении груза - товара, количества, номера