Файл: Проектирование реализации операций бизнес-процесса «Складской учет».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 06.04.2023

Просмотров: 128

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.7 Описание программных модулей

Данный программный продукт состоит из нескольких модулей (подпрограмм). Такой подход, во-первых, позволяет абстрагироваться от интерфейса пользователя, так как работа с данным вынесена в отдельный модуль, так же как и интерфейс пользователя является отдельным модулем. Данный подход чем-то напоминает всем известный шаблон проектирования MVC (Model View Controller).

MVC – это шаблон проектирования, который позволяет разбить программу на три логических уровня:

  • Model – модель данных в виде сущностей;
  • View – представление или иначе говоря интерфейс пользователя;
  • Controller – это структура классов которая маршрутизирует запрос пользователя к нужному месту (для обработки запроса) и в ответ получает ответ, который отдается на интерфейс.

Данный шаблон проектирования в основном применяется в WEB системах, но для толстых клиентов так же имеется место.

В данной системе есть три модуля:

  • MySql.Data;
  • DataLayer;
  • WarehouseApp.

Первая подпрограмма это MySql.Data. В ней реализована логика работы с базой данных. Данный модуль «умеет» выполнять базовые операции с MySql базой данных. Эта подпрограмма никак не зависит от конкретной базы данных, она является неким драйвером для работы с БД.

Вторая подпрограмма это DataLayer. Данная подпрограмма реализует слой доступа к данным. Стоит отметить, что этот модуль зависит от первого модуля, так как для выполнения запросов в БД ему нужен драйвер, через который это будет делаться. Так же в данном модуле находятся модели, которые в дальнейшем будут применяться для построения интерфейса пользователя. Для каждой сущности (модели) есть подпрограммы, которые называются – Репозитории. Каждый репозиторий умеет выполнять базовые операция для «своей» сущности, к таким операция относятся:

  • Insert – добавление записи;
  • Update – обновление записи;
  • Delete – удаление записи;
  • List – получить список записей;
  • Get – получить запись по уникальному id.

Последняя подпрограмма WarehouseApp в соответсвии с MVC содержит View и Controller. View – это классы панелей, которые отображают выбранную пользователем панель (которая соответствует пункту меню выбранного пользователем). При нажатии на кнопку срабатывает событие, которое маршрутизирует запрос в подпрограмму DataLayer, а в ответ получает ответ, который отображается на панели.

Алгоритм решения задачи закупки представлен на рисунке 3. При наличии заказов составляется список адресов, на которые должен быть поставлен товар. Если заказы отсутствуют, цикл начинается с начала. При наличии двух и более адресов составляется оптимальный маршрут с учетом пробок, пожеланий поставщика, расстояния между контрольными точками. Если при исполнении маршрута на пути следования образуется пробка, программа вносит изменения в маршрут.


Составление списка заявок на доставку на период

Заказы есть

Поиск нового заказа

Выбор транспорта, осуществляющего доставку

Составление маршрута доставки с учетом времени, удобного поставщику, расстояния между адресами, статистики пробок

Исполнение услуги по доставке товара

На маршруте есть пробки

Доставка товара

Да

Да

Нет

Нет

Товар доставлен?

Нет

Да

Рисунок 20. Алгоритм решения задачи

2.8. Контрольный пример реализации проекта и его описание

Приведем модули кода программы 1С, используемые для отслеживания движения ТМЦ и отображения этого графическим способом, понятным пользователю программы.

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

Данный код программы использует справочники: Номенклатуры, Список Параметров, Остатки ТМЦ, Резервы ТМЦ.

Параметры, используемые в программе: «используется», «фирма», «склад», «договор», «кооперация».

Для определения наличия товара на складе определены значения:

1 - проведение выполнено;

0 – нет.

Контроль ТМЦ осуществляется в следующих объектах:

Фирма, склад, оптовая организация, розничная организация.

ТМЦ розничного магазина контролируются постоянно для постоянного обеспечения потребителей товаром.

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

Механизм оповещений предназначен для информирования пользователя о том, что система выполнила то или иное действие. Оповещения могут создаваться системой или разработчиком прикладного решения.

Оповещение отображается в окне, которое по умолчанию привязано к системному лотку панели задач операционной системы. Если с оповещением связана какая-либо ссылка, то пояснение будет одновременно являться гиперссылкой. При ее нажатии откроется объект, на который указывает ссылка. Пояснение также будет представлено гиперссылкой, если оповещение сформировано системой автоматически (при интерактивной записи/изменении объекта).


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

Пояснение - уточняющая информация.

Окно оповещения исчезает с экрана по истечении некоторого времени. Однако, если навести на него курсор мыши, то окно будет отображаться до тех пор, пока его не закрыть или не отвести курсор мыши.

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

При проведении документа на списание очередного товара, как указано на рисунках, программа сверяет остаток товара.

Рисунок 21. Интерфейс программы

Рисунок 22. Интерфейс программы

Если количество товара ниже заданной в модуле отметки, программа выводит сообщение об отсутствии необходимого количества товара на складе и, соответственно, о том, что документ не проведен.

Рисунок 23. Интерфейс программы

При отображении в информационной панели список оповещений выравнивается по правому краю панели. Наиболее позднее оповещение будет отображаться у правого края панели. Если оповещений больше пяти, то отображаются только пять последних оповещений.

Главная форма приложения имеет структуру вложенных элементов, показанную на рис. 24.

Рисунок 24. Структура главной формы приложения

Панель contentHolder является элементом, в который динамически в зависимости от пункта меню создаются и подгружаются пользовательские элементы управления (UserControl). Таким образом, форм (наследников класса Form) в разработанном приложении всего 3, остальное – контролы, которые наследуются от класса UserControl. Описание форм приложения дано в табл. 19.

Таблица 19

Описание форм приложения

Компонент

Назначение

Свойство

Значение

MainForm

Главная
форма

Name

MainForm

Text

Салон текстильного дизайна «Арт-материя»

StartPosition

CenterScreen

Size

710; 502

MainMenuStrip

menuStrip1

ChooseProductBox

Форма добавления товара в поставку

Name

ChooseProductBox

Text

Добавить товар в поставку

Size

327; 195

StartPosition

CenterParent

MinimizeBox

False

MaximizeBox

False

FormBorderStyle

FixedSingle

ChooseServiceBox

Форма добавления услуги или товара в заказ

Name

ChooseServiceBox

Text

Выбрать услугу

Size

555; 305

StartPosition

CenterParent

MinimizeBox

False

MaximizeBox

False

FormBorderStyle

FixedSingle

LoginForn

Форма авторизации пользователя

Name

LoginForm

Text

Авторизация

Size

555; 305

StartPosition

CenterParent

MinimizeBox

False

MaximizeBox

False

FormBorderStyle

FixedSingle


Основным связующим элементом разработанной АИС является система меню, состоящего из главного меню и подменю (Рисунок 26). Разработанная система является меню – ориентированной. Взаимодействие пользователя с системой осуществляется в диалоговом режиме. Диалог формализован в структурной форме.

Обработка вызовов команд меню организована таким образом, что за всё отвечает универсальный обработчик, который берёт имя элемента управления, который нужно создать, из свойства Tag выбранного пункта меню (см. лист. 3.1).

Листинг 3.1. Универсальный обработчик события выбора пункта меню.

/// <summary>

/// Универсальный обработчик

/// </summary>

/// <param name=«sender»>Пункт меню, по который выбрал пользователь</param>

/// <param name=«o»>аргументы</param>

private void menu_click(object sender, EventArgs o)

{

//получаем нажатый элемент

ToolStripMenuItem tsmi = sender as ToolStripMenuItem;

if (tsmi != null)

{

//заголовку присваиваем значение текста выбранного пункта меню

root.Text = tsmi.Text;

string formName = tsmi.Tag as string;

//если с пунктом меню не связно имя формы, то берем по умолчанию NullUserControl

if (formName == null)

{

formName = «NullUserControl»;

}

//Подгружаем в contentHolder связанную с пунктом меню форму

ContentToHolderLoader.LoadUserControlIntoContentHolder(formName, contentHolder);

}

}

При выборе в строке меню Справочники, как показано на рис.27, открывается подменю, в котором определены пункты:

  1. Товары;
  2. Услуги;
  3. Склады;
  4. Сотрудники;
  5. Клиенты;
  6. Поставщики;
  7. Единицы измерения;
  8. Виды товаров;

9. Курсы валют.

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

В пункте Документы находится перечень приходных и расходных накладных.

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

Пункт Запросы позволяет осуществить Поиск товара в базе по атрибутам и просмотреть деятельность конкретного сотрудника (количество и общую стоимость реализованных им товаров/услуг).

В формах ChooseProductBox и ChooseServiceBox обработчик событий привязан на кнопку “Добавить” и приведён соответственно в лист. 3.2 и 3.3.

Листинг 3.2. Обработка события onClick формы ChooseProductBox

private void btnAdd_Click(object sender, EventArgs e)

{

buying.Price = double.Parse(txtPrice.Text, Formater.nfi);

buying.ProductID = (UInt32)cbProduct.SelectedValue;

buying.UnitID = (UInt32)cbUnits.SelectedValue;

buying.Amount = UInt32.Parse(txtAmount.Text, Formater.nfi);

buying.Name = (String)cbProduct.Text;

}

Листинг 3.3. Обработка события onClick формы ChooseServiceBox


private void btnAdd_Click(object sender, EventArgs e)

{

saling.Amount = UInt32.Parse(txtAmount.Text, Formater.nfi);

Rests rests = cbProduct.SelectedItem as Rests;

//Проверить, достаточно ли товара на складе

if (saling.Amount <= rests.RestAmount)

{

saling.Price = double.Parse(txtPrice.Text, Formater.nfi);

saling.ProductID = (UInt32)cbProduct.SelectedValue;

saling.ServiceID = (UInt32)cbService.SelectedValue;

saling.ServiceTypeID = (UInt32)cbServiceType.SelectedValue;

saling.EmployeeID = (UInt32)cbEmployee.SelectedValue;

saling.UnitID = (UInt32)cbUnits.SelectedValue;

saling.ProductName = (String)cbProduct.Text;

saling.ServiceName = (String)cbService.Text;

saling.Description = tbDescription.Text;

btnAdd.DialogResult = DialogResult.OK;

this.DialogResult = DialogResult.OK;

}

else

{

btnAdd.DialogResult = DialogResult.None;

this.DialogResult = DialogResult.None;

txtAmount.SelectAll();

txtAmount.Focus();

MessageBox.Show(«На складе меньше товара, чем вы хотите продать!»);

}

}

ЗАКЛЮЧЕНИЕ

В любой организации, как большой, так и маленькой, возникает проблема такой организации управления данными, которая обеспечила бы наиболее эффективную работу. Организации используют для этого шкафы с папками, однако многие предприятия стараются использовать компьютеризированные системы автоматизации, позволяющие эффективно хранить, извлекать информацию и управлять большими объемами данных.

В результате проделанной работы были автоматизированы складские операции для салона текстильного дизайна «Art – материя». Данная программа позволяет сократить ручные операции, ускорить и упростить обработку информации, повысить точность, полноту и достоверность учета товара на фирме.

В процессе формирования требований к информационной системе описаны: модель структуры предприятия, схема управления предприятием, функциональные подразделения предприятия (краткая характеристика отдела закупок и сбыта, видов его деятельности, сущность задачи учета товаров и предметная технология ее решения). Далее излагается модель деятельности предприятия (модель AS IS, отражающая текущую организацию бизнес-процессов), а так же требования к реализуемой функциональности ИС, включающие модель TO BE, отражающая требуемую организацию бизнес-процессов – приводятся системные диаграммы в нотации UML, отличающиеся использованием ИС в бизнес-процессах предприятия. Набор диаграмм включает:

  • Диаграмма прецедентов;
  • Диаграммы деятельности или автомата;
  • Диаграммы последовательности либо коммуникации;
  • Диаграмма классов.

Далее приведена функциональная спецификация, в которой излагаются требования к информационной системе в формате стандарта IEEE830.