Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование реализации операций бизнес-процесса «Запасы-склад (приходование товара)»(Выбор комплекса задач автоматизации.)

Содержание:

ВВЕДЕНИЕ

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

Целью курсовой работы является выполнение проектирования информационной системы для реализации бизнес-процесса «Приходование товара» на примере компании «АвтоVIPЦентр».

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

  • изучить актуальную на данный момент организацию бизнес-процесса товарооборота на складе компании «АвтоVIPЦентр» и происходящего при его осуществлении документооборота;
  • выбрать и обосновать проектные решения по информационному и программному обеспечению;
  • составить информационную модель проектируемой информационной системы;
  • разработать базу данных и программные модули ИС;
  • описать контрольный пример реализации проекта.

1 глава. Аналитическая часть.

1.1. Выбор комплекса задач автоматизации.

Деятельность компании «АвтоVIPЦентр» заключается в розничных продажах автотоваров различных групп: от настольных предохранителей до двигателей автомобилей.

Магазин «АвтоVIPЦентр» занимает несколько помещений (торговый зал, склад товаров и боксовые помещения). У компании имеются заключенные договоры с поставщиками, которые осуществляют поставку автотоваров и сопутствующих расходных материалов на склад магазина.

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

Когда клиент приходит в магазин «АвтоVIPЦентр», все его взаимодействие осуществляется с менеджером торгового зала, который проводит консультации клиента по интересующим его вопросам, а также осуществляет продажу техники: операции с денежными средствами, оформление чеков и т.д. После оплаты товара клиент получает чек, на основании которого работники склада отгружают перечисленные в нем товарные позиции. Если выявлено отсутствие товара на складе, то сотрудник компании составляет заявку на его заказ и направляет её в отдел закупок.

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

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

В рамках выполняемой курсовой работы предметом исследования является реализация организации бизнес-процесса «Запасы-склад». Данный процесс целиком выполняется работниками склада.

Для более подробного изучения организации бизнес-процесса оприходования товара на складе компании ООО «АвтоVIPЦентр» будет использован метод моделирования.

1.2. Характеристика существующих бизнес – процессов.

Чтобы выполнить анализ бизнес-процесса, будет использовано функционально-структурное моделирование этой деятельности. В качестве основной методологии построения функциональных моделей выступит IDEF0.

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

Стандарт IDEF0 регламентирует с помощью входа (первый тип входных данных) показывать объекты, которые преобразуются в данным бизнес-процессе, это могут информационные и материальные потоки. С помощью управления (второй тип) показывают объекты, которые управляют выполнением бизнес-процессам. С помощью механизмов (третий тип) необходимо показывать объекты, которые непосредственно осуществляют данные бизнес-процесс: сотрудники, технические средства, информационный системы. На выходе бизнес процесса показывают результат выполнения данного бизнес-процесса.

На первом этапе построения IDEF0 модели система представляется как единое целое. Основная цель данного этапа – выявить входные и выходные данные, а также механизмы и правила для данной системы. Диаграмма данного этапа называется контекстной. Контекстная диаграмма для бизнес-процесса «Приходование товара» изображена на рисунке 1 (для построения диаграмм использовалось CASE- средство AllFusion Process Modeler 7)

Рисунок 1. Контекстная диаграмма

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

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

Рисунок 2. Диаграмма декомпозиции

Приходование товара включает в себя три основных этапа:

  • проверка наличия и сохранности товара;
  • оформление акта о расхождении;
  • размещение товара на полках склада.

1.3. Характеристика документооборота, возникающего при решении задачи.

В процессе выполнения бизнес-процесса приходования товара на складе в компании «АвтоVIPЦентр» формируются два документа: акт приемки и акт о расхождении. На рисунках ниже (рисунки 3 и 4) приведены схемы документооборота для каждого из этих документов.

Рисунок 3. Схема документооборота для акта приемки

Рисунок 4. Схема документооборота для акта расхождения

1.4. Обоснование проектных решений по информационному обеспечению.

Информационная реализация комплекса задач, которая поставлена перед данным проектом, выполнена в виде реляционной базы данных, в которой сохраняется вся информация для автоматизации процесса приходования товара.

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

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

Существуют определенные правила создания и проектировании базы данных для нужд какой-либо организации:

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

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

Входными данными для проектируемой информационной системы автоматизации процесса приходования товара выступают заказы к поставщикам:

  • номер заказа;
  • дата формирования заказа;
  • сумма заказа;
  • товары в заказе;
  • поставщик, от которого пришел заказа;

Всего в информационной системе используется четыре справочника:

  • сотрудники (они же пользователи ИС);
  • товары;
  • категории;
  • поставщики;

Выходными данными информационной системы выступают документы акт приемки и акт о расхождении.

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

Описание используемых классификаторов приведено в таблице 1.

Таблица 1

Используемые идентификаторы

№ пп

Наименование кодируемого множества объектов

Значность кода

Мощность кода

Система кодирования

1

Идентификационный номер заказа

4

9999

Порядковая

2

Идентификационный номер поставщика

4

9999

Порядковая

3

Идентификационный номер сотрудника

4

9999

Порядковая

4

Идентификационный номер товара

4

9999

Порядковая

5

Идентификационный номер категории

4

9999

Порядковая

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

Программное обеспечение – это совокупность программ для реализации целей и задач информационной системы, а также нормального функционирования комплекса технических средств.

В состав программного обеспечения входят общесистемные и специальные программные продукты, в том числе: операционная система, системы программирования, инструментальные средства программиста, тестовые и диагностические программы, программные средства телекоммуникации, защиты информации, функциональное программное обеспечение (автоматизированные рабочие места, системы управления базами данных и т. п.).

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

В качестве возможных альтернатив были выбраны три наиболее популярных языка: C#, Java и Delphi,.

Язык программирования С# был создан в конце 1990-х годов и непосредственно связан с C++ и Java. Это достаточно популярные языки программирования в мире. Прообразом С# является язык С, от которого унаследован синтаксис и многие операторы. Кроме того, С# построен на улучшенной объектной модели, определенной в C++. Зная один из языков семейства С, у вас не возникнет проблем при работе с С.

Ввиду популярности С и С++ при разработке бизнес-приложений, но их низкой продуктивности разработки, компания Microsoft разработала язык C#, который учитывал пожелания разработчиков использовать современное и гибкое средство написания программных продуктов. У C# есть много полезных особенностей – простота, объектная ориентированность, типовая защищенность, очистка памяти от ненужных объектов, поддержка совместимости версий. Данные возможности позволяют быстро и легко разрабатывать приложения, особенно Web-сервисы. При создании C#были учтены лучшие черты и особенности Visual Basic, C++, Java, Delphi.

Язык программирования Java. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) – специальной программой, которая обрабатывает байтовый код и передает соответствующие команды оборудованию.

Главным достоинством такого способа выполнения программ является независимость транслируемого байтового кода от операционной системы и оборудования. То есть JAVA-приложения могут выполнятся на любом устройстве, для которого существует виртуальная машина. Еще одной особенностью технологии Java является полный контроль исполнения программы виртуальной машиной, что обеспечивает гибкие возможности безопасности и защиты данных. Любые операции, которые не должны входить в полномочия программы (например, доступ к закрытым или конфиденциальным данным, соединения с другим компьютером и пр.) вызывают завершение работы программы. К недостаткам технологии Java следует отнести сниженную производительность, по сравнению с классической технологией программирования в виде дополнительных операции по трансляции программы в байт-код.

Delphi - язык программирования высокого уровня, особенностями которого являются:

  • набор операторов языка отражает принципы структурного проектирования и позволяет записывать достаточно сложные алгоритмы в лёгкой и элегантной форме;
  • функции объектно-ориентированного программирования прекрасно дополняют простой синтаксис языка;
  • изучения языка не вызывает сложностей;
  • обеспечение взаимодействия с базами данных;
  • возможность составления отчетов;
  • возможность компоновки исполняемых файлов под операционные системы семейства Windows достигается при помощи встроенного компилятора.

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

В качестве системы управления базой данных была выбрана Microsoft SQL SERVER.

СУБД MS SQL Server 2008 наделена всеми необходимыми возможностями. В частности, система обладает следующими преимуществами:

  • обеспечивает высокую надежность и устойчивость к различным сбоям;
  • позволяет осуществлять доступ к данным посредством ЛВС;
  • обладает развитой системой репликации, позволяющей избегать конфликтов изменений и чтений информации при многопользовательском доступе к БД.

2 глава. Проектная часть.

2.1. Информационная модель и её описание.

Схема движения входной, промежуточной и результативной информации и функций предметной области называется информационной моделью. С её помощью можно объяснить, на основе каких входных данных (документов) и какой нормативно-справочной информации происходит выполнение основных функций. Информационная модель проектируемой ИС представлена на рисунке 5.

Рисунок 5. Информационная модель

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

Кроме того, пользователи могут осуществлять ввод данных о заказах поставщикам и готовить выходные документы: акты приемки и акты о расхождении.

2.2. Характеристика нормативно-справочной, входной и оперативной информации.

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

Таблица 2

Справочники информационной системы

№ пп

Название справочника

Ответственный за ведение

Средний объём справочника в записях

Среднюю частоту актуализации

Средний объем актуализации, %

1

Пользователи

Заведующий складом

2

1 раз в полгода

50

2

Поставщики

Заведующий складом

10

1 раз в месяц

10

3

Товары

Заведующий складом

1000

1 раз в неделю

10

4

Категории

Заведующий складом

10

1 раз в месяц

10

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

Реквизитный состав каждого справочника представлен в виде таблицы 3.

Таблица 3

Реквизитный состав справочников информационной системы

№ п/п

Наименование справочника

Перечень реквизитов

1

Пользователи

ФИО пользователя

Логин

Пароль

Телефон

Электронная почта

2

Поставщики

Наименование

Телефон

Электронная почта

3

Товары

Наименование

Описание

Единица измерения

4

Категории

Наименование

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

На рисунке 6 представлена форма для работы с записями справочника «Пользователи».

Рисунок 6. Форма Пользователь

Чтобы исключить ошибки при введении пароля, поле для ввода продублировано.

Перед тем, как будет произведено сохранение данных, выполняется проверка наличия пользователей с таким же логином (у каждого пользователя должен быть свой уникальный логин), а также сложность введенного пароля (минимум одна цифра, один прописной знак и один специальный символ).

Формы для работы с записями других справочников имеют аналогичный вид (Рисунок 7-9).

Рисунок 7. Форма Поставщик

Рисунок 8. Форма Товар

Рисунок 9. Форма Категория

Входными данными для информационной системы являются данные о заказах поставщикам. Эта информация вводится в ИС с помощью специальной формы, приведенной на рисунке 10.

Рисунок 10. Форма для добавления заказа поставщику

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

2.3. Характеристика результатной информации.

В качестве выходных данных выступают акт приемки и акт о расхождении.

Подробное описание выходных данных в таблице 4.

Таблица 4

Описание результатной информации

Наименование

Акт приемки

Акт о расхождении

Реквизиты

Номер заказа поставщику

Наименование поставщика

Товары в заказе

Количество принятых товаров

Дата формирования

Номер заказа поставщику

Наименование поставщика

Товары в заказе

Количество непринятых товаров

Комментарий о расхождении

Дата формирования

Таблицы, на основе которых формируется

Заказ поставщику

Поставщики

Товары

Категории

Заказ поставщику

Поставщики

Товары

Категории

Частота формирования

По мере необходимости

По мере необходимости

Способ доставки

Файл в формате Excel

Файл в формате Excel

2.4. Общие положения (дерево функций и сценарий диалога).

Базовый набор функций разработанной информационной системы можно изобразить в виде дерева, изображенного на рисунке 11.

Рисунок 11. Дерево функций

Выполнение функций разработанной информационной системы осуществляется с помощью ведения диалога с пользователем. То есть пользователь информационной системы выполняет какие-то действия, а программа соответствующим образом на них реагирует. Сценарий диалога с пользователем представлен на рисунке 12.

Рисунок 12. Сценарий диалога

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

2.5. Характеристика базы данных.

В качестве системы управления базой данный для разрабатываемой информационной системы была выбрана СУБД Microsoft SQL Server.

Для хранения всех необходимых данных была спроектирована и создана база данных, состоящая из 6 таблиц. ER-модель спроектированной базы данных представлена на рисунке 13.

Рисунок 13. ER-модель базы данных

Описание всех таблиц базы данных представлено в таблицах 5-10.

Таблица 5

Таблица users

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код пользователя

id

int

8

AI

ФИО пользователя

fio

varchar

255

Логин пользователя

login

varchar

255

Пароль пользователя (в зашифрованном виде)

password

varchar

255

Email пользователя

email

varchar

255

Телефон пользователя

phone

varchar

255

Таблица 6

Таблица vendor

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код производителя

id

int

8

AI

Наименование

caption

varchar

255

Телефон

phone

varchar

255

Адрес

address

varchar

255

Таблица 7

Таблица product

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код типа

id

int

8

AI

Наименование

caption

varchar

255

Описание

description

text

65535

Единица измерения

edizm

varchar

255

Код категории

categoryid

int

8

Таблица 8

Таблица category

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код категории

id

int

8

AI

Наименование

caption

varchar

255

Таблица 9

Таблица order_product

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код заказа

orderid

int

8

Код товара

productid

int

8

Количество в заказе

ordercount

int

8

Количество принято

factcount

int

8

Комментарий

comment

varchar

65535

Таблица 10

Таблица order

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код заказа

id

int

8

AI

Номер заказа

ordernumber

int

8

Дата создания

createdate

datetime

10

Дата закрытия

closedate

datetime

10

Сумма заказа

ordersum

float

8

Код производителя

vendorid

int

10

2.6. Структурная схема пакета (дерево вызова программных модулей).

Рабочая версия программы включает в себя четыре модуля:

  • модуль Main.pas (главное окно программы);
  • модуль Order.pas (взаимодействие с заказами);
  • модуль Connect.pas (взаимодействие с базой данных);
  • модуль Refbook.pas (взаимодействие со справочниками).

Подробное описание модулей представлено в виде таблицы 11.

Таблица 11

Описание модулей системы

№ п/п

Наименование модуля

Функции модуля

1.

модуль Main.pas

включает в себя процедуры и функции, отвечающие за отображение главного окна программы и её основного меню

2.

модуль Order.pas

в данном модуле выполняются процедуры для работы заказами (создание нового, редактирование созданного ранее, закрытие заказа, подготовка входных документов)

3.

модуль Connect.pas

модуль содержит процедуры и компоненты для инициализации подключения и осуществления всех операций взаимодействия с базой данных (отправки SQL-запросов и обработка результатов их выполнения)

4

модуль Refbook.pas

модуль выполняет процедуры и компоненты для взаимодействия со справочниками информационной системы (просмотр, добавление, изменение, удаление записей)

Дерево вызова программных модулей приведено на рисунке 14.

Рисунок 14. Дерево вызова программных модулей

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

После запуска программы создается подключения к базе данных. Взаимодействие с базой данных построено при помощи технологии ActiveX Data Objects, разработанной компанией Microsoft.

Используемая технология связи с хранилищами данных достаточно популярна у разработчиков, благодаря своей универсальности – базовый набор интерфейсов OLE DB реализован во всех актуальных на сегодняшний день операционных системах семейства Windows. Как следствие, после корректного указания провайдера соединения ADO, приложению будет обеспечен доступ к данным. Этим также достигается гибкость данного программного решения – его можно перенести на любое рабочее место, где обеспечен доступ к указанной базе данных и установленна ADO.

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

Технология ADO обеспечивает универсальный доступ к хранилищам (источникам) данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к хранилищам (источникам) данных разных типов. То есть, приложение, использующее в своей работе ADO может использовать в качестве источника любое хранилище, поддерживающее ADO, будь это локальная СУБД или серверная, или даже электронные таблицы. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

OLE DB по сути представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.

Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов.

В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов.

Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. При этом существенно расширяется само понятие данных – ведь можно разработать набор объектов и интерфейсов и для нетрадиционных табличных данных. Например, это могут быть графические данные геоинформационных систем, древовидные структуры из системных реестров, данные CASE-инструментов и т. д.

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.

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

Для работы с заказами, а также их изменения используется компонент AdoQuery. Данный компонент предназначен для отправки запросов к базе данных и обработки ответов на них. В приложении используются 3 вида запросов:

  • запросы на выборку;
  • запросы на добавление данных;
  • запросы на обновление данных.

Для получения практически любых данных любого количества таблиц базы данных используется оператор запроса SELECT.

Этот оператор выбирает записи из базы данных и имеет самую сложную структуру, по сравнению с другими операторами языка SQL. Данный оператор позволяет не только выбирать записи из базы данных, удовлетворяющие заданному условию, но также и настраивать параметры отображения этих записей, таких как сортировка и группировка. А использование агрегатных функций позволяет подсчитывать необходимые данные.

Для обновления данных, хранящихся в базе данных используется оператор UPDATE, для добавления новых – оператор INSERT.

Следует отметить, что технология ADO позволяет писать запрос в объекте AdoQuery на классическом языке SQL, без учета особенностей СУБД, используемой в качестве хранилища данных. Это является значимым преимуществом, т.к. позволяет легко переводить программные средства с одной СУБД на другую, в зависимости от условий эксплуатации и требований к ней.

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

Исходный код всех процедур с комментариями представлен в приложении.

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

При запуске программы происходит открытие формы авторизации, в которую пользователь должен ввести свои логин и пароль (Рисунок 15).

Рисунок 15. Форма авторизации

Если авторизация пройдена успешно, будет отрыто главное окно программы, в котором в виде таблицы представлены все добавленные заказы поставщиков (Рисунок 16).

Рисунок 16. Главная форма со списком заказов

Доступность всех функций программы достигается при помощи главного меню (Рисунок 17).

C:\Users\Mixa\YandexDisk\Скриншоты\2017-08-20_22-55-59.png

Рисунок 17. Главное меню

Для добавления нового заказа пользователь должен выбрать пункт меню «Новый заказ», после чего откроется форма добавления заказа (Рисунок 18).

Рисунок 18. Форма добавления заказа

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

Рисунок 19. Форма работы с заказом

Форма работы со всеми справочниками имеет общий вид: большую часть формы занимает таблица с записями справочника, а над ней расположены кнопки для открытия формы добавления или изменения записи, либо удаления записи их справочника (Рисунок 20).

Рисунок 20. Форма работы со справочником

ЗАКЛЮЧЕНИЕ

В ходе проделанной работы были решены следующие задачи:

  • выполнен анализ текущей организации бизнес-процесса приходования товаров на складе компании «АвтоVIPЦентр», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
  • выбрано проектное решение по информационному и программному обеспечению, средой разработки являлась Delphi 7, в роли СУБД выступил Microsoft SQL Server;
  • построена информационная модель информационной системы, отображающая пути преобразования входной информации в выходную;
  • выполнено построение базы данных и программных модулей, осуществляющих функционирование ИС;
  • произведение описание контрольного примера реализации проекта.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  • Туманов В.Е. Основы проектирования реляционных баз данных. М.: Бином, 2016. – 420 с.
  • Белов В.В. Проектирование информационных систем: учебник для студентов учреждений высшего профессионального образования. – М.: Издательский центр «Академия», 2013. – 352 с.
  • Грекул В.И., Коровкина Н.Л., Левочкина Г.А. Проектирование информационных систем: учебник и практикум для академического бакалавриата. – М: Издательство Юрайт, 2012. – 154 c.
  • Кузан Д. Я. Программирование Win32 API в Delphi. – СПб.: BHV, 2013 – 368 с.
  • Понамарев В.А. Базы данных в Delphi 7. Самоучитель. – СПб.: Питер – М., 2015 – 224 с.
  • Карпова И.П. Базы данных: Учебное пособие. – Спб.: Питер, 2013. – 240 с.
  • Кузин А.В., Левонисова С.В. Базы данных: Учебное пособие для студ. высш. учеб. заведений. – М.: ИЦ Академия, 2012. – 320с.
  • Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер – М., 2018 – 736 с.
  • Чистов Д.В., Мельников П.П., Золотарюк А.В., Ничепорук Н.Б. Проектирование информационных систем: учебник и практикум для академического бакалавриата / под общ. ред. Д.В. Чистова. – М: Издательство Юрайт, 2018. – 258 c.

ПРИЛОЖЕНИЯ

unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Frms,

Dialogs, Menus, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids, comobj,

ExtCtrls;

type

TFrm1 = class(TFrm)

MainMenu1: TMainMenu;

W1: TMenuItem;

W2: TMenuItem;

W3: TMenuItem;

ADOConnection1: TADOConnection;

DBGrid1: TDBGrid;

Label1: TLabel;

Edt1: TEdt;

BitBtn1: TBitBtn;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

DBGrid2: TDBGrid;

Label2: TLabel;

Edt2: TEdt;

BitBtn2: TBitBtn;

Adotbl1: TAdotbl;

Adotbl1Id: TAutoIncField;

Adotbl1FIO: TWideStringField;

Adotbl1Phone: TWideStringField;

Adotbl1Address: TWideStringField;

Adotbl1Passport: TWideStringField;

DataSource1: TDataSource;

DataSource2: TDataSource;

Adotbl2: TAdotbl;

Adotbl2id: TAutoIncField;

Adotbl2caption: TWideStringField;

Adotbl2path: TWideStringField;

PopupMenu1: TPopupMenu;

W4: TMenuItem;

W5: TMenuItem;

W6: TMenuItem;

W7: TMenuItem;

PopupMenu2: TPopupMenu;

W8: TMenuItem;

ADOQuery1: TADOQuery;

W9: TMenuItem;

W10: TMenuItem;

BitBtn3: TBitBtn;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

produre W3Click(Send: TObject);

produre BitBtn1Click(Send: TObject);

produre BitBtn2Click(Send: TObject);

produre FrmShow(Send: TObject);

produre Edt1Change(Send: TObject);

produre W7Click(Send: TObject);

produre W8Click(Send: TObject);

produre W5Click(Send: TObject);

produre W6Click(Send: TObject);

produre W4Click(Send: TObject);

produre W2Click(Send: TObject);

produre FrmResize(Send: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Frm1: TFrm1;

implementation

uses shabl;

{$R *.dfm}

produre TFrm1.W3Click(Send: TObject);

begin

frm1.Close;

end;

produre TFrm1.BitBtn1Click(Send: TObject);

begin

Edt1.Clear;

Edt1.SetFocus;

end;

produre TFrm1.BitBtn2Click(Send: TObject);

begin

Edt2.Clear;

Edt2.SetFocus;

end;

produre TFrm1.FrmShow(Send: TObject);

begin

Adotbl1.open;

Adotbl1.Sort:='NAME ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.75);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.35);

Adotbl2.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.75);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.35);

end;

produre TFrm1.Edt1Change(Send: TObject);

begin

if Edt1.text<>'' then

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='NAME like %'+Edt1.Text+'%';

DbGrid1.DataSource.DataSet.Filtered:=true;

end

else

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='';

end;

end;

produre TFrm1.W7Click(Send: TObject);

begin

Dbgrid2.DataSource.DataSet.Close;

DbGrid2.DataSource.DataSet.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.75);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.35);

end;

produre TFrm1.W8Click(Send: TObject);

begin

Dbgrid1.DataSource.DataSet.Close;

DbGrid1.DataSource.DataSet.open;

Adotbl1.Sort:='NAME ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.75);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.35);

end;

produre TFrm1.W5Click(Send: TObject);

begin

if not DbGrid1.DataSource.DataSet.FieldByName('id').IsNull then

begin

Frm2.Edt1.Text:=DbGrid2.DataSource.DataSet.FieldByName('caption').AsString;

Frm2.Edt2.Text:=DbGrid2.DataSource.DataSet.FieldByName('path').AsString;

Frm2.Caption:='Редактирование шаблона';

Frm2.Label3.Caption:= DbGrid2.DataSource.DataSet.FieldByName('id').AsString;

Frm2.show;

end;

end;

produre TFrm1.W6Click(Send: TObject);

var

s: string;

begin

s := InputBox('Ввод данных','Необходимо указать название нового шаблона','');

if s<>'' then

begin

With AdoQuery1 do

begin

close;

SQL.Clear;

SQl.add('INSERT INTO shablon (caption) VALUES ( :caption )');

Parameters.ParamByName('caption').Value:=s;

EXECSQL;

end;

W7.Click;

end;

end;

produre TFrm1.W4Click(Send: TObject);

var

Word:Variant;

begin

if not DBGrid1.DataSource.DataSet.FieldByName('id').IsNull then

begin

if fileExists(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString) then

begin

Word := CreateOleObject('Word.Application');

Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);

Word.visible:=true;

end

else

begin

Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' не найден в папке shablon.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');

end;

end;

end;

produre TFrm1.W2Click(Send: TObject);

begin

W7.Click;

W8.Click;

end;

produre TFrm1.FrmResize(Send: TObject);

begin

panel1.Width:=Round((frm1.Width-50)*0.5);

panel2.Width:=Round((frm1.Width-50)*0.5);

panel1.Width:=Round(frm1.Width*0.5);

BitBtn3.Left:=Round(panel5.Width*0.5)-Round(Bitbtn3.Width*0.5);

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.75);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.35);

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.75);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.35);

end;

end.

unit shabl;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Frms,

Dialogs, StdCtrls, Buttons, DB, ADODB, comobj;

type

TFrm2 = class(TFrm)

Label1: TLabel;

Label2: TLabel;

Edt1: TEdt;

BitBtn1: TBitBtn;

Edt2: TEdt;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

OpenDialog1: TOpenDialog;

Label3: TLabel;

ADOQuery1: TADOQuery;

produre BitBtn3Click(Send: TObject);

produre Edt1Change(Send: TObject);

produre Edt2Change(Send: TObject);

produre BitBtn1Click(Send: TObject);

produre BitBtn2Click(Send: TObject);

produre FrmClose(Send: TObject; var Action: TCloseAction);

produre BitBtn4Click(Send: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Frm2: TFrm2;

implementation

Uses main;

{$R *.dfm}

produre TFrm2.BitBtn3Click(Send: TObject);

begin

Frm2.Close;

end;

produre TFrm2.Edt1Change(Send: TObject);

begin

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

end;

produre TFrm2.Edt2Change(Send: TObject);

begin

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

end;

produre TFrm2.BitBtn1Click(Send: TObject);

begin

openDialog1.InitialDir := GetCurrentDir;

if opendialog1.Execute then

begin

if FileExists(opendialog1.FileName) then

begin

Edt2.Text:=Opendialog1.FileName;

end;

end;

end;

produre TFrm2.BitBtn2Click(Send: TObject);

begin

if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;

if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;

if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;

if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;

With AdoQuery1 do

begin

close;

SQl.clear;

SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');

Parameters.ParamByName('caption').value:=Edt1.text;

Parameters.ParamByName('path').value:=ExtractFileName(OpenDialog1.Filename);

Parameters.ParamByName('id').value:=label3.caption;

execSQL;

end;

CopyFile(Pchar(Edt2.text), Pchar(ExtractFilePath(ParamStr(0))+'shablon\'+ExtractFileName(OpenDialog1.Filename)), true) ;

caption:=copy(caption,0,length(caption)-2);

close;

Frm1.N7.Click;

end;

produre TFrm2.FrmClose(Send: TObject; var Action: TCloseAction);

begin

if copy(caption,length(caption)-1,1) = '*' then

begin

If MessageBox(Handle,PChar('Данные были изменены. Сохранить изменения?'),PChar('Подтверждение'),MB_ICONINFRMATION+MB_YESNO+MB_DEFBUTTON2)=IdYes

then BitBtn2.Click;

end;

end;

produre TFrm2.BitBtn2Click(Send: TObject);

begin

if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;

if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;

if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;

if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;

With AdoQuery1 do

begin

close;

SQl.clear;

SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');

Parameters.ParamByName('caption').value:=Edt1.text;

Parameters.ParamByName('path').value:=ExtractFileName(OpenDialog1.Filename);

Parameters.ParamByName('id').value:=label3.caption;

execSQL;

end;

produre TFrm2.BitBtn4Click(Send: TObject);

var

Word:Variant;

begin

if fileExists(Edt2.text) then

begin

Word := CreateOleObject('Word.Application');

Word.Documents.Add(Edt2.text);

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

Word.visible:=true;

end

else

begin

Showmessage(' Файл '+Edt2.text+' не найден.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');

end;

end;

end.

unit Connect;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TForm5 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

Uses DataM;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

var

SetF : TextFile;

s:array[1..9] of string;

i:integer;

begin

if Edit1.text='' then begin showmessage('Укажите имя сервера'); exit; end;

if Edit2.text='' then begin showmessage('Укажите логин'); exit; end;

if Edit3.text='' then begin showmessage('Укажите пароль'); exit; end;

if Edit4.text='' then begin showmessage('Укажите имя базы данных'); exit; end;

AssignFile(SetF, ExtractFilePath(ParamStr(0))+'SetF.cfg');

reset(SetF);

For i:=1 to 4 do Readln(Setf,s[i]);

closeFile(SetF);

s[1]:=edit1.text;

s[2]:=edit2.text;

s[3]:=edit3.text;

s[4]:=edit4.text;

Rewrite(SetF);

For i:=1 to 9 do Writeln(Setf,s[i]);

closefile(Setf);

Close;

end;

end.