Разработка информационной подсистемы "InventoryManagement", для управления запасами ООО "РегататАУСтаврополь"

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

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



71;InventoryManagement в ERwin. В результате логическая модель базы данных информационной подсистемы InventoryManagement в ERwin примет вид, представленный на рисунке 2.1.

Рисунок 2.1 - Логическая модель базы данных информационной подсистемы InventoryManagement

2.2.4 Создание физической модели базы данных информационной подсистемы InventoryManagement

Для создания физической модели используем CASE-средство ERwin версии 4.0. После того как будут выполнены все необходимые действия, физическая модель приобретет вид, показанный на рисунке 2.2.

Рисунок 2.2 - Физическая модель базы данных информационной подсистемы InventoryManagement

2.3 Создание проекта и решений Microsoft Visual Studio для реализации информационной подсистемы InventoryManagement

Для создания проекта необходимо запустить Microsoft Visual Studio 2010 стандартным способом. Используя набор команд: Пуск > Все программы > Microsoft Visual Studio 2010. Затем создадим проект: Файл > Создать > Проект > Приложение WindowsFormsApplication. Эти действия представлены на рисунке 2.3.

Рисунок 2.3 - Процесс создания проекта

Затем необходимо ввести имя проекта InventoryManagent, указать месторасположения проекта. Далее на экране появится окно конструктора Form1. Сохраним его под именем MainWindow (рисунок 2.3).

Рисунок 2.4 - Внешний вид среды Visual Studio после создания проекта

2.4 Реализация приложения

.4.1 Разработка интерфейса главной формы MainWindow

Поместим на форму MainWindow компонент MenuStrip и сохраним его под именем menuStrip1. Заполняем пункты меню, в соответствии с функциями программы. Вид меню главной формы представлен на рисунках 2.5, 2.6, 2.7.

Рисунок 2.4 - Вид меню главной формы

Рисунок 2.6 - Вид меню главной формы

Рисунок 2.7 - Вид меню главной формы

Для осуществления перехода между формами проекта, в окне кода решения напишем следующий программный код:

private void поступлениеТовараToolStripMenuItem_Click(object sender, EventArgs e)

{

ReturnsGoods dialog = new ReturnsGoods();

dialog.ShowDialog(this);

}

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

Переход в других пунктах меню происходит аналогично. Обработчики имеют подобный код.

2.4.2 Реализация формы ReturnsGoods

Для создания новой формы необходимо нажать Проект, затем Добавить новый элемент, после чего откроется окно (рисунок 2.8). Из установленных шаблонов выбираем Windows Forms, а из списка элементов форму Windows Forms. Сохраним форму под именем ReturnsGoods.

Рисунок 2.8 - Создание формы ReturnsGoodds

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

?dataGridView1 - таблица, в которой отображается информация о товаре имеющемся на складе;

?textBox - поля для ввода текста, используется для введения номера накладной;

?два элемента comboBox - используются для выбора сотрудника и контрагента;

?два элемента button - кнопки для перехода на другие формы;

?dateTimePicker1 - используется для вывода даты;

?семь элементов label - используются для оформления формы.

После добавления всех элементов форма ReturnsGoods принимает вид, показанный на рисунке 2.9.

Рисунок 2.9 - Вид формы ReturnsGoods

Для добавления поступившего товара необходимо нажать кнопку Сохранить. Для выполнения этой функции добавим следующий код:

private void button4_Click(object sender, EventArgs e)

{

// сохранение приходной накладной

AdapterDataContext db = new AdapterDataContext();

List();

int NOT_DEFINED = -1;

int _nakladNumber= NOT_DEFINED, kontrId = NOT_DEFINED, sotrydId=NOT_DEFINED;

DateTime dt=DateTime.Now;

string kontrName="";

string sotrudName = "";

try

{

_nakladNumber = Int32.Parse(nakladNumber.Text);

// проверка номера накладной

var Choose = from pps in db.postyplenie where pps.nomer_nakladnoi == _nakladNumber select pps;

try

{pps_id = Convert.ToInt32(Choose.First().nomer_nakladnoi);.Show("Произошла ошибка. Номер накладной не уникален.", "Приходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

catch (Exception ex)

{

//-----

}

DataRowView srow = (DataRowView)kontrComboBox.SelectedItem;

kontrId = (int)srow.Row["id_kontragent"];

kontrName = (string)srow.Row["name"];

dt = dateTimePicker1.Value;sotrRow = (DataRowView)comboBox3.SelectedItem;

sotrydId = (int)sotrRow.Row["id_sotrydnik"];

sotrudName = (string)sotrRow["FIO"];

}

catch

{.Show("Произошла ошибка.

Вы ввели неверные данные.", "Приходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

int ID_IDX = 0, QUANT_IDX = 2;

foreach (DataGridViewRow row in dataGridView1.Rows)

{

int row_id = (int)row.Cells[ID_IDX].Value;

string quantityString = (string)row.Cells[QUANT_IDX].Value;

int quantity;

try

{

quantity = Int32.Parse(quantityString);

}

catch

{

quantity = 0;

}

if (quantity > 0)

{

// меняем поле количество для каждого товара

var Choose = from st in db.tovar where .id_tovar == row_id select st;q = Convert.ToInt32(Choose.First().kolichestvo);cost = .ToDouble

(Choose.First().tcena_pokupki);realcost = Convert.ToDouble(Choose.First().tcena_prodaji);name = .ToString(Choose.First().name);good = new GoodStruct(name, quantity, cost, realcost);

glist.Add(good);

Choose.First().kolichestvo = q + quantity;

db.SubmitChanges();

// -------------------------------------------

postyplenie post = new postyplenie

{

data_time = dt,

id_kontragent = kontrId,

id_sotrydnik = sotrydId,

id_tovar = row_id,

nomer_nakladnoi = _nakladNumber,

kolichestvo_tovara = quantity

};

db.postyplenie.InsertOnSubmit(post);

db.SubmitChanges();

}

}

При нажатии на кнопку с надписью Добавить контрагента (рисунок 2.9) открывается диалоговое окно, представленное на рисунке 2.10.

Рисунок 2.10 - Вид формы добавление контрагента

Для закрытия текущей формы используем метод Close().

При наж