Файл: Разработка регламента выполнения процесса «Складской учет» (Выбор комплекса задач автоматизации).pdf
Добавлен: 01.04.2023
Просмотров: 105
Скачиваний: 2
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
1.2. Характеристика существующих бизнес-процессов
1.3. Характеристика документооборота, возникающего при решении задачи
1.4. Обоснование проектных решений по информационному обеспечению
1.5. Обоснование проектных решений по программному обеспечению
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.4. Общие положения (дерево функций и сценарий диалога)
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
2.7 Описание программных модулей
2.7 Описание программных модулей
Данный программный продукт состоит из нескольких модулей (подпрограмм). Такой подход, во-первых, позволяет абстрагироваться от интерфейса пользователя, так как работа с данным вынесена в отдельный модуль, так же как и интерфейс пользователя является отдельным модулем. Данный подход чем-то напоминает всем известный шаблон проектирования MVC (ModelViewController).
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, открывается подменю, в котором определены пункты:
- Товары;
- Услуги;
- Склады;
- Сотрудники;
- Клиенты;
- Поставщики;
- Единицы измерения;
- Виды товаров;
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, отражающая текущую организацию бизнес-процессов), а так же требования к реализуемой функциональности ИС, включающие модель TOBE, отражающая требуемую организацию бизнес-процессов – приводятся системные диаграммы в нотации UML, отличающиеся использованием ИС в бизнес-процессах предприятия. Набор диаграмм включает:
- Диаграмма прецедентов;
- Диаграммы деятельности или автомата;
- Диаграммы последовательности либо коммуникации;
- Диаграмма классов.
Далее приведена функциональная спецификация, в которой излагаются требования к информационной системе в формате стандарта IEEE830.