Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная к курсачу.docx
Скачиваний:
66
Добавлен:
12.03.2015
Размер:
749.7 Кб
Скачать

Клиент для работы с бд

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

Поскольку в C# по умолчанию нет драйверов для работы с базами данных, созданными в InterBase/Firebird, мне понадобилось скачать сторонний драйвер, который открывает возможности взаимодействия с БД Firebird в приложениях, созданных на C#/C++.

Данный драйвер – IBProvider3.0.0.3464 – поставляется в двух версиях, коммерческой и свободной, которые различаются своими возможностями. Для этого проекта вполне достаточно было и свободной версии.

Меню соединения с базой данных

Прежде чем пользователю получит доступ к основному меню приложения, ему необходимо указать файл базы данных, с которой нужно соединиться, а также ввести корректные имя пользователя и пароль. Это осуществляется через следующее окно:

Форма реализуется через отдельный класс Login, организованный по принципу встроенного классаMessageBox. Внутри класса хранятся значения вводимых пользователем данных, сама форма вызывается через статический метод класса, которому в качестве выходных параметров передаются три строковых переменные.

public partial class Login : Form {

// путь к БД, имя пользователя, пароль

public String Path;

public String User;

public String Password;

// результат вызова окна

public DialogResult Result;

/*

...

*/

// отображение окна

// значения, введенные пользователем, записываются в переменные

// path, user, pass

public static DialogResult Show(out string path,

out string user,

out string pass) {

Login login = new Login();

login.ShowDialog();

DialogResult val = login.Result;

path = login.Path;

user = login.User;

pass = login.Password;

login.Dispose();

return val;

}

}

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

Главное меню приложения

По завершению работы окна соединения с БД на экране появляется основное окно, содержащее главное меню проекта:

Главное окно разбито на две части. Слева находится меню в виде иерархического списка, через которое осуществляется доступ ко всем возможностям приложения. В правой части расположена рабочая область, в которой отображаются компоненты, соответствующие выбранному пункту меню. Фактически рабочая область сформирована из TabControl'а со множеством вкладок, в котором каждой строчке меню поставлена в соответствие своя вкладка. При выборе какого-то пункта из меню вызывается обработчик соответствующего события, открывающий нужную вкладку:

/* выбор страницы */

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {

if (e.Node.Parent != null) {

//выбран просмотр таблиц

if ((e.Node.Parent.Text == "Просмотр баз данных") &&

(e.Node.Index >= 0) && (e.Node.Index < 6)) {

tpages.SelectedIndex = 0;

//загрузка соответствующей таблицы

if (e.Node.Text == "Страны") {

tpages.SelectedIndex = 0;

adCurrent = adCountry;

bsCurrent = bsCountries;

} else if (e.Node.Text == "Марки") {

tpages.SelectedIndex = 1;

adCurrent = adMark;

bsCurrent = bsMarks;

} else if (e.Node.Text == "Станки") {

//... и т.д.

}

Содержание меню проекта:

  1. Просмотр базы данных

    1. Страны

    2. Марки

    3. Типы станков

    4. Станки

    5. Типы ремонтов

    6. Ремонты

  2. Регистрация ремонтов

  3. План на текущий месяц

  4. Просроченные ремонты

  5. Анализ видов ремонтов

    1. По срокам

    2. По дате окончания

    3. По стоимости

  6. Поиск ремонтов

    1. По виду

    2. По марке

    3. За период

    4. За год

    5. За все время

  7. Отчеты

    1. За месяц

    2. За год

Рассмотрим каждый пункт меню по отдельности.