Разработка информационной системы "Склад"

 

Содержание


Введение

. Документ об образе и границах

. Вариант использования

. Спецификация требований к ПО

. Моделирование данных

. Проектирование базы данных

Выводы

Перечень ссылок

Приложение


Введение


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

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

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

Для создания программного средства были использованы средства: : Visual Studio 2010, Rational Rose, BpWin 4.0, Microsoft Access.


1. Документ об образе и границах проекта


Бизнес-требования

Исходные данные, возможности бизнеса и нужды клиентов

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

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

Бизнес-цели и критерии успеха

Бизнес-цель-1. Увеличить количество заказчиков на 50% в течение 6 месяцев после второго выпуска системы.

Масштабы: стоимость товаров не приобретенных, но закупленных на склад.

Способ измерения: исследование инвентарных журналов склада,

Показатели в прошлом (2010г, первоначальное исследование): 30%

Планируемые показатели: более 30%.

Обязательные показатели: более 45%.

Бизнес-цель-2. Увеличить среднее эффективное рабочее время каждого сотрудника в течение трех месяцев после первого выпуска системы.

Критерий успеха-1. 70% заказчиков, в настоящее время сотрудничающих со складом, должны начать использовать систему Склад в течение 3 месяцев после первого выпуска системы.

Критерий успеха-2. Достичь увеличения среднего рейтинга по ежеквартальному опросу об удовлетворенности работой склада на 1 бала в течение 4 месяцев после первого выпуска системы и на 2 балла в течение 12 месяцев после второго выпуска системы.

Факторы бизнес-риска

Факторы бизнес-риска-1. Слишком мало заказчиков могут сразу принять новую систему, что уменьшит прибыль от инвестиций в разработку системы и изменений в процедурах работы склада. (Вероятность = 0,4; ущерб = 8.)

Образ решения

Положение об образе проекта

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

Основные функции

Основные функции-1. Создание, просмотр, накладной заказчиком.

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

Основные функции-3. SQL-запросы для "продвинутых пользователей".

Основные функции-4. Добавление, просмотр, изменение и удаление заказчиков сотрудником склада.

Предположения и зависимости

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

Предположения изависимости-2. Заказчики склада будут иметь возможность производить заказ на выбранный товар самостоятельно.

Масштабы и ограничения

Обьем выпусков системы. Обьемность выпусков указана в таблице 1.1.


Таблица 1.1 -- Объем первого и последующих выпусков системы

Функция Выпуск 1Выпуск 2Основные функции-1Реализована с ограничениямиРеализована полностьюОсновные функции-2Реализована не в полном обьемеРеализована полностьюОсновные функции-3Не реализована Реализована полностьюОсновные функции-4Реализован не весь функциональный обьемРеализована полностью

Ограничения и исключения

Ограничения и исключения-1. На некоторые пункты меню кафетерия доставка не распространяется, поэтому меню, доступные клиентам Cafeteria Ordering System, будут подмножеством полных меню кафетерия.

Ограничения и исключения-2. Данная система используется в единичном экземпляре. Но при потребности может быть усовершенствована для связи с другими складами через сеть Internet.

Бизнес-контекст

Заинтересованые лица. Заинтересованные лица приведены в таблице 1.2


Таблица 1.2 - Профили заинтересованных в проекте лиц

Заинтересованные в проекте лицаПонимание основной ценности проектаОтношениеОсновные интересыОграниченииДиректор складаУвеличение производительности труда сотрудников; рост прибылиСильная поддержка до выпуска 2; Доходы должны превысить затраты на разработку и использованиеНе определеныСотрудники складаБолее эффективное использование рабочего времени сотрудников в течение дня; больше оформленных поставок Озабоченность возможным сокращением персонала и урезание зарплаты Сохранение рабочих местНеобходимость обучения сотрудников работе с системой СкладПостоянные клиенты кафетерияЛучший выбор товаров; экономия времени; удобствомогут использовать систему меньше, чем ожидается, из-за не ознакомленности с ее работойПростота использования; надежность Необходимость доступа к данной системе

Приоритеты проекта. Приоритеты проекта описаны в таблице 1.3


Таблица 1.3 - Приоритеты проекта

ОбластьДвижущая силаОграниченияСтепень свободыСрокиВыпуск 1 планируется на 01.02.2011, выпуск 2 - на 01.04.2011, до 2х недель опоздания допустимо без пересмотра сроков заказчикамиФункцииВсе функции, запланированные к выпуску 2, должны быть полностью реализованыКачество95% проверочных испытаний, проводимых пользователями, должны быть выполнены; ВСЕ тесты на защищенность должны быть выполнены; соответствие корпоративным стандартам безопасности должно быть показано для всех защищенных транзакцийПерсоналПланируемый размер команды: менеджер проекта, разработчик, тестировщик, работающий на полставки; при необходимости могут быть дополнительно привлечены разработчик и тестировщик, оба работающие на полставкиРасходыДо 20% процентов перерасхода по бюджету возможны без пересмотра заказчиками

. Вариант использования


Список вариантов использования. Все варианты использования указаны в таблице 2.1


Таблица 2.1 - Варианты использования

Основное действующее лицоВариант использованияМенеджер по продажам (Администратор)1. Просмотр товаров. 2. Добавление заказчиков. 3. Добавление поставщиков. 4.Изменение информации. 5. Добавление товаров. 6. Удаление товаров. 7.Удаление заказчиков. 8.Удаление поставщиков. 9.Просмотр заказчиков. 10.Просмотр поставщиков. 11.Удаление типа товара. 12.Просмотр типа товара. 13.Написание SQL запросовЗаказчик14. Просмотр товаров на складе. 15. Оформление накладной. 16.Просмотр информации о товаре. 17.Написание SQL запросов.

№ варианта использования: Вариант использования-5

Название варианта использования: Добавление товаров

Автор: Загорулько Е.В.

Дата создания:28 ноября 2011 г.

Дата последнего обновления: 30 ноября 2011 г.

Действующие лица: Менеджеры по продажам

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Тип товара" затем в пустые строки вписывает данные после чего подтверждает добавление. Выходит из формы "Тип товара" и переходит к форме "Товар" где заполняет пустые поля и подтверждает добавление

Предварительные условия:

.Менеджер имеет доступ к данной системе.

Выходные условия:

. Список товаров обновлен.

Нормальное направление:

.0 Добавление товара.

. менеджер выбирает форму добавления товара.

. Система выводит форму для заполнения.

.менеджер заполняет форму.

. менеджер нажимает кнопку, подтверждающую, что товар добавлен

.Система подтверждает, что товар добавлен.

Альтернативные направления:

.1. Ошибка при заполнении формы (ответвление после пункта 4).

. менеджер добавляет товар не указав ранее его тип.

. система оповещает об ошибке.

.возврат к пункту 2.

.2.Подтверждения новой записи не осуществлено (ответвления после пункта 5.)

.Менеджер не подтверждает внесение товара в базу данных.

. товар не добавлен.

.возврат к пункту 1.

Исключения:

.0.Отмена операции дабавления.

. Менеджер отменяет добавление товара.

. Система переходит в главное меню.

З. Менеджер делает иную процедуру.

.0.И.2 Ввод не корректной информации.

.Система добавляет информацию в Б/Д.

.Менеджер проверяет корректность добавленной информации.

.Менеджер выбирает не корректный товар и изменяет его.

.Менеджер изменяет информацию и подтверждает изменение.

Приоритет: Высокий

Частота использования: Часто.

Бизнес-правила:

Бизнес-правило-1 Информация о товарах должна соответствовать действительности.

Бизнес-правило-2 Хранение товаров осуществляется согласно ГОСТам.

Бизнес-правило-3 Товары поступают на склад в течении 4 дней.

Особые требования:

. Менеджер должен иметь возможность прервать добавление в любой момент времени до подтверждения внесения в базу.

Допущения: 1. Предполагается, что 30% заказчиков будут заказывать мелкооптовые поставки (источник: данные склада за предыдущий год).

№ варианта использования: Вариант использования-15

Название варианта использования: Оформление накладной

Автор: Загорулько Е.В.

Дата создания:28 ноября 2011 г.

Дата последнего обновления: 30 ноября 2011 г.

Действующие лица: Заказчик.

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

Предварительные условия:

.Товар имеется на складе в нужном количестве.

.Заказчик зарегистрирован в базе данных склада.

Выходные условия:

. Накладная добавлена в базу данных.

. Накладная может быть распечатана.

Нормальное направление:

.0. Оформление накладной.

. Заказчик выбирает в главном меню форму "Накладная".

. Система выводит форму для заполнения.

.Закзчик заполняет форму.

. Заказчик распечатывает накладную или создает еще накладную и распечатывает несколько накладных.

Альтернативные направления:

.1. Ошибка при заполнении формы (ответвление после пункта 4).

. Товара не достаточное количества.

. система оповещает сколько именно товара не хватает на складе.

.возврат к пункту 2.

Исключения:

.0.Отмена операции оформления.

. Заказчик выходит из формы оформления накладной.

. Система переходит в главное меню.

З. Заказчик делает иную процедуру.

Приоритет: Высокий

Частота использования: Часто.

Бизнес-правила:

Бизнес-правило-1Товар должен хранится на складе.

Бизнес-правило-2 Нельзя оформить накладную на прошедшую дату.

Особые требования:

. Заказчик должен в любое время выйти из формы заполнения накладной.

Допущения: 1. Предполагается, что 30% заказчиков будут заказывать мелкооптовые поставки (источник: данные склада за предыдущий год).

Краткое описание вариантов использования:

. Просмотр товаров.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "товар" и просматривает все товары.

. Добавление заказчиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Заказчики" затем в пустые строки вписывает данные о заказчике после чего подтверждает добавление.

. Добавление поставщиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Поставщики"затем в пустые строки вписывает данные о поставщике после чего подтверждает добавление.

.Изменение информации .

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "товар" "заказчики" "поставщики" "тип товара", "Склад" затем выбирает нужное ему поле и заменяет в нем данные,после чего подтверждает обновление

. Удаление товаров.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "товар", находит нужный, выделяет и удаляет нажатием кнопки "удалить".

.Удаление заказчиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Заказчики", затем выбирает нужного заказчика, выделяет и удаляет его нажатием кнопки "удалить".

.Удаление поставщиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Поставщики", затем выбирает нужного поставщика, выделяет и удаляет его нажатием кнопки "удалить".

.Просмотр заказчиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Заказчики" и просматривает весь список заказчиков.

.Просмотр поставщиков.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Поставщики" и просматривает весь список поставщиков.

. Удаление типа товара.

Описание: Менеджер по продажам входит в систему склада выбирает блок "Админ", выбирает пункт "Тип товара" затем затем выбирает нужный тип и удаляет его нажатием кнопки "удалить".

.Написание SQL запросов.

Описание: Менеджер по продажам входит в систему склада и в главном окне выбирает пункт "Запросы" где может оперировать данными при помощи SQL запросов.

.Просмотр товаров на складе.

Описание: Заказчик входит в систему склада выбирает пункт "Склад" и просматривает список всех товаров имеющихся на складе. Также предусмотрен поиск и фильтрация по выбранному полю.

.Оформление накладной.

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

.Просмотр товаров.

Описание: Заказчик входит в систему склада выбирает пункт "Товар" и выбирает нужный товар и видит сколько единиц и по какой цене есть на складе .

.Написание SQL запросов.

Описание: Заказчик входит в систему склада и в главном окне выбирает пункт "Запросы" где может оперировать данными при помощи SQL запросов


. Спецификация требований к ПО


Введение

Назначение

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

Объем проекта и функции продукта

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

Ссылки

. Документ об образах и границах проекта "Система Склад".

. Каталог бизнес-правил проекта "Система Склад".

Общее описание

Общий взгляд на продукт

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

Классы пользователей. Классы и х-стики пульзователей описаны в таблице 3.1


Таблица 3.1-- Классы и характеристики пользователей

Класс пользователейОписаниеКлиент (заказчик)Клиент - это физическое лицо, желающие заказать товар на складе. Всего потенциальных клиентов - 500, из которых 350, как ожидается, будут использовать Система Склад. Ожидается, что 70% заказов будут поступать от частных лиц (мелкий опт). Клиент должен иметь возможность самостоятельно корректировать накладную.Сотрудники кафетерияВ кафетерии Process Impact в настоящее время работает около 20 сотрудников, которые будут работать с системой (работа с данными). Половину сотрудников склада придется обучать работе с компьютером и системой склад.

Операционная среда

Операционная среда-1. Система Склад установлена на сервере, работающем под управлением текущих утвержденных корпорацией версий Apache HTTP Server.

Операционная среда-3. Используется только на ОС Windows (XP, Vista,Seven).

Ограничения дизайна и реализации

Ограничения дизайна и реализации-1. Система должна использовать текущую версию корпоративного стандарта процессора базы данных Access.

Ограничения дизайна и реализации-2. Все сценарии должны быть написаны на C#.

Документация для пользователей

Документация для пользователей-1. Система имеет достаточно простой для понимания интерфейс. Не ознакомленный пользователь может интуитивно понять работу с приложением.

Документация для пользователей-2.Для пользователей со знанием SQL-запрсов предусмотрена возможность написания запросов для работы с БД.

Предположения и зависимости

Предположения и зависимости-1. Склад работает ежиднекно кроме субботы и воскресенья.

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

Функции системы

Составление накладной заказчиком.

Описание и приоритет

Клиент склада выбирает форму накладной и вносит необходимые данные в поля накладной . Приоритет - высокий.

Воздействие и реакция. Последовательность воздействий и реакций показана в таблице 3.3.1.2


Таблица 3.3.1.2 -- Последовательности "воздействие - реакция"

Воздействие:Клиент (заказчик) выбирает форму накладной.Реакция:Система предоставляет форму.Воздействие:Клиент (заказчик) вносит данные и принимает изменения нажав "распечатать".Реакция:Система регистрирует оформление о печатает накладную.

Функциональные требования. Требования приведены в таблице 3.3.1.3


Таблица 3.3.1.3 -- Функциональные требования

Заказ. Оформление накладной:Система должна позволять клиенту, распечатать накладную.Заказ. Оформление. Нехватка товараСистема должна оповестить сколько именно не хватает единиц товара.Заказ. Просмотр товаров:Клиент должен указать, какие товары и в каком количестве есть на складе.Запрос. Управление данными:Сотрудник может добавлять, удалять, редактировать данные о товаре, его типе, поставщиках, заказчиках и информацией склада.Запрос: Написание SQL-запроса.Пользователи и сотрудники с достаточными знаниями могут использовать запросы для работы с БД.

Требования к внешнему интерфейсу

Интерфейсы пользователя

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

Интерфейсы оборудования

Интерфейсы оборудования не выявлены.

Программные интерфейсы

Программные интерфейсы-1. Склад.

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

Программные интерфейсы-1.2. Система запрашивает информацию о товарах у склада;

Программные интерфейсы-1.3. Система позволяет добавить нового заказчика в БД;

Программные интерфейсы-1.4. Система позволяет оформить накладную(с обновлением соответствующих данных в хранилище).

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

Интерфейсы передачи информации-1. Система Склад должна выдавать окошко с подтверждением или отклонением проведенной процедуры.

Интерфейсы передачи информации-2. Система библиотеки должна выдавать окошко оповещающее об ошибке проведенной процедуры.

Другие нефункциональные требования

Требования к производительности

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

Требования к производительности-2. Загрузка ответов на запросы на экран должна занимать не более 3 секунд после того, как пользователь отослал запрос.

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

Требования к охране труда

Для избегания проблем с ПО все пользователи должны быть ознакомлены с работой в данной системе или иметь представление о ее работе.

Требования к безопасности

Требования к безопасности-1. Только сотрудники склада имеют право работать с данной системой.

Требования к безопасности-2.Каждий заказчик(его данные) вносится в БД.

Атрибуты качества ПО

Надежность-1. Если заказ подтвержден или отменен Система Склад не дает заказчику восстановить изменить заказ


. Моделирование данных


Уровни декомпозиции процессов.


Рисунок.4.1.1-Диаграмма потоков даннях(1й уровень декомпозиции).

Рисунок. 4.1.2-Диаграмма потоков данных.(2й уровень декомпозиции)


Рисунок. 4.1.3-Декомпозиция процесса "Добавление товара"(3й уровень декомпозиции).


Рисунок. 4.1.4-Декомпозиция процесса "Добавление поставщика"(3й урівень декомпозиции).

Схема данных


Рисунок.4.3 Диаграмма варианта использования


Схема варианта использования


Рисунок 4.4 -- схема вариантов использования


5. Проектирование базы данных


Сущности которые есть в системе:

-Zakazchik;

Postavshik;

Tovar;

Sklad;

Nakladnaya;

Функции, которые можно выполнить с помощью системы:

Просмотр информации;

Добавление информации;

Удаление информации;

Изменение информации;

Создание накладной;

Сохранение изменений;

Структура массивов


Табица.1- структуры масивов

Тип сущностиАтрибутыТип данныхTovarid_tovaraСчетчикName_tovaraТекстовыйCena_tovaraДенежныйId_type_tovaraЧисловойZakazchikId_zakazchikaСчетчикName_zakazchikaТекстовыйAddressТекстовыйPostavshikId_ postavshikaСчетчикName_ postavshikaТекстовыйAddressТекстовыйSkladid_tovaraЧисловойid_tovara_na_skladeСчетчикKolichestvoЧисловойId_ postavshikaЧисловойNakladnayaId_nakladnoyСчетчикKolichestvo_tovarovЧисловойDate_nakladnoyДата/времяid_tovara_na_skladeЧисловойId_zakazchikaЧисловой

Описание связей

Описание связей:


Таблица.2 -Описание связей.

Название связи Описание святиТип святиZakazchik- NakladnayaОформляет1:МNakladnaya- SkladВмещает информацию М:1Postavshik- SkladПоставляет на1:МTovar- SkladПоступает на1:МTovar- Type_tovaraИмеетМ:1

Описание нормализации.

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

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

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


Выводы

программный автоматизация аccess база данный

При выполнении курсовой работы была проанализирована предметная область "Склад строительных материалов". Были описаны документы о варианте использования, об образе и границах проекта, спецификация требований также были созданы диаграмма вариантов использования, диаграмма сущность-связь, диаграмма потоков данных и декомпозиция процесса.

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


Перечень ссылок


С# для начинающих -Мартынов Н.Н. КУДИЦ-ПРЕСС 2007

Базы данных. Язык SQL -Дунаев В.В. СПб.: БХВ-Петербург 2006

Анализ требований и проектирование систем с использованием UML- Лешек А. Мацяшек Вильямс 2002

C# в кратком изложении- Дж.Бишоп, Н. Хорспул БИНОМ. Лаборатория знаний 2005


Приложение А


Руководство пользователя

Документ "Руководство пользователя" предназначен для ознакомления пользователя с назначением и функциональными возможностями программного средства и правил его эксплуатации.

Также документ содержит рекомендации по освоению программы.

А.1 НАЗНАЧЕНИЕ И УСЛОВИЕ ПРИМЕНЕНИЯ

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

Программа должна выполнять следующие функции:

.-Просмотр информации;

.-Добавление информации;

.-Удаление информации;

.-Изменение информации;

.-Создание накладной;

.-Сохранение изменений;

Программа включает в себя базу данных и программу для работы с этой базой данных.Приложение разработано в среде MS Visual Studio 2010 и поддерживается для использования на ОС Windows XP/Seven/Vista.

A.2. ПОДГОТОВКА К РАБОТЕ

Для запуска программы следует открыть папку Sklad и запустить в папке Debug файл Sklad.После чего появится главное окно программы.


Рисунок А.2.1-главное окно пограммы

А.3 Описание операций

Выбор формы:

В главном окне выбираем пункт "Склад" после чего открывается новое окно(для заказчика).


Рисунок А.2.2 - окно пункта "склад"


Рисунок А.2.3-найденные и отсортированные данные


Рисунок А.2.4-оповищение об удалении выбранного элемента

Рисунок А.3.5-форма для заполнения накладной для заказчика


Рисунок А.3.6-форма редактирования товаров менеджером


Приложение В


Программный код и SQL запросы

System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;SKLAD

{partial class NakladForm : Form

{List<Naklad> m_nklList = new List<Naklad>();struct Naklad

{string insert;string update;string select;

// public string DELETE;

};string m_id_zak;int kol_vo_na_skl, kol_vo_razn, kol_vo_razn1;DataBase m_db = new DataBase();NakladForm(DataBase db)

{();_db = db;_Nakl.MinDate = DateTime.Now;

}void btnExit_Click(object sender, EventArgs e)

{();

}void NakladForm_Load(object sender, EventArgs e)

{.Items.Clear();.Text = "";.Text = "";.Text = "";.Text = "";_vo.Text = "";dgv = new DataGridView();_db.ReadDataBase(dgv, "Select name_zakazchika From zakazchik");.Items.Clear();(int i = 0; i < dgv.RowCount - 1; i++)

{(i < dgv.RowCount - 1).Items.Add(dgv.Rows[i].Cells[0].Value.ToString());

}_db.ReadDataBase(dgv, "Select id_tovara_na_sklade From Sklad ");.Items.Clear();(int i = 0; i < dgv.RowCount - 1; i++)

{(i < dgv.RowCount - 1).Items.Add(dgv.Rows[i].Cells[0].Value.ToString());

}

}void cmbIdTovNaSkl_SelectedIndexChanged(object sender, EventArgs e)

{(cmbIdTovNaSkl.Items.Contains(cmbIdTovNaSkl.Text))

{(txtTov.Text != "")

{.Text = "";

}(txtPost.Text != "")

{.Text = "";

}dgv = new DataGridView();_db.ReadDataBase(dgv, "Select Tovar.name_tovara From Tovar Where " +

"id_tovara in (Select id_tovara From Sklad Where id_tovara_na_sklade =" + cmbIdTovNaSkl.Text + ")");(int i = 0; i < dgv.RowCount - 1; i++)

{(i < dgv.RowCount - 1).Text = (dgv.Rows[i].Cells[0].Value.ToString());

}_db.ReadDataBase(dgv, "Select Postavshik.name_postavshika From Postavshik Where " +

"id_postavshika in (Select id_postavshika From Sklad Where id_tovara_na_sklade =" + cmbIdTovNaSkl.Text + ")");(int i = 0; i < dgv.RowCount - 1; i++)

{(i < dgv.RowCount - 1).Text = (dgv.Rows[i].Cells[0].Value.ToString());

}

}

}void btnAddNew_Click(object sender, EventArgs e)

{(txtKol_vo.Text != "" && cmbZak.Text != "" && cmbIdTovNaSkl.Text != "")

{dgv = new DataGridView();_db.ReadDataBase(dgv, "Select id_zakazchika From Zakazchik Where name_zakazchika='" + cmbZak.Text + "'");_id_zak = dgv.Rows[0].Cells[0].Value.ToString();_db.ReadDataBase(dgv, "Select kolichestvo From Sklad Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text));_vo_na_skl = (int)dgv.Rows[0].Cells[0].Value;tick = new Naklad();m_txtKol_vo = Convert.ToInt32(txtKol_vo.Text);

// если на складе не хватает(kol_vo_na_skl < m_txtKol_vo)

{_vo_razn = m_txtKol_vo - kol_vo_na_skl;(MessageBox.Show("На складе не достаточно этого товара. Не хватает " + kol_vo_razn, "Внимание!", MessageBoxButtons.OKCancel) == DialogResult.OK)

{_Load(0, null);

}

}

//else if (kol_vo_na_skl == m_txtKol_vo)

//{

// tick.DELETE = "Delete From Sklad Where id_tovara_na_sklade = " + cmbIdTovNaSkl.Text;

//}

{_vo_razn1 = kol_vo_na_skl - m_txtKol_vo;.update = "UPDATE Sklad SET kolichestvo = " + kol_vo_razn1 + " Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text);.insert = "Insert Into nakladnaya(id_zakazchika, id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov) Values(" + m_id_zak + ", " + cmbIdTovNaSkl.Text + ", DateValue('" +_Nakl.Value.Date.ToString() + "'), " + txtKol_vo.Text + ")";.select = "Select id_nakladnoy, id_zakazchika , id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov" +

" From nakladnaya Where id_zakazchika =" + m_id_zak + " And id_tovara_na_sklade =" + cmbIdTovNaSkl.Text +

" And DateValue(date_nakladnoy) = DateValue('" + dtpicDate_Nakl.Value.Date.ToString() + "')";_nklList.Add(tick);

}

}_Load(0, null);

}void btnPrint_Click(object sender, EventArgs e)

{(txtKol_vo.Text != "" && cmbZak.Text != "" && cmbIdTovNaSkl.Text != "")

{dgv = new DataGridView();_db.ReadDataBase(dgv, "Select id_zakazchika From Zakazchik Where name_zakazchika='" + cmbZak.Text + "'");_id_zak = dgv.Rows[0].Cells[0].Value.ToString();_db.ReadDataBase(dgv, "Select kolichestvo From Sklad Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text));_vo_na_skl = (int)dgv.Rows[0].Cells[0].Value;tick = new Naklad();m_txtKol_vo = Convert.ToInt32(txtKol_vo.Text);

// если на складе не хватает(kol_vo_na_skl < m_txtKol_vo)

{_vo_razn = m_txtKol_vo - kol_vo_na_skl;(MessageBox.Show("На складе не достаточно этого товара. Не хватает " + kol_vo_razn, "Внимание!", MessageBoxButtons.OKCancel) == DialogResult.OK)

{_Load(0, null);

}

}

//else if (kol_vo_na_skl == m_txtKol_vo)

//{

// tick.DELETE = "Delete From Sklad Where id_tovara_na_sklade = " + cmbIdTovNaSkl.Text;

//}

{_vo_razn1 = kol_vo_na_skl - m_txtKol_vo;.update = "UPDATE Sklad SET kolichestvo = " + kol_vo_razn1 + " Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text);.insert = "Insert Into nakladnaya(id_zakazchika, id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov) Values(" + m_id_zak + ", " + cmbIdTovNaSkl.Text + ", DateValue('" +_Nakl.Value.Date.ToString() + "'), " + txtKol_vo.Text + ")";.select = "Select id_nakladnoy, id_zakazchika , id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov" +

" From nakladnaya Where id_zakazchika =" + m_id_zak + " And id_tovara_na_sklade =" + cmbIdTovNaSkl.Text +

" And DateValue(date_nakladnoy) = DateValue('" + dtpicDate_Nakl.Value.Date.ToString() + "')";_nklList.Add(tick);

{query = "";(int i = 0; i < m_nklList.Count; i++)

{

// m_db.WriteDataBase(m_nklList[i].DELETE);_db.WriteDataBase(m_nklList[i].update);_db.WriteDataBase(m_nklList[i].insert);(i < m_nklList.Count - 1)+= m_nklList[i].select + " UNION ";+= m_nklList[i].select;

}ReportForm(m_db, query).ShowDialog();

}

{

}

}

}

{.Show("Заполнены не все поля!", "Внимание!");

}

}

}

}SKLAD

{partial class AdmSklForm : Form

{DataBase m_db;

// Количество данных на старте

// переменная которая хранит стартовое кол-во строк взятых из таблицыint m_AdmSklCountStart;

// конструктор формы постформ . передается аргумент db типа DataBaseAdmSklForm(DataBase db)

{();_db = db;

}void btnDel_Click(object sender, EventArgs e)

{

//условие проверяющее выделели мы хоть одну строку для удаления? если да...(dgvAdmSkl.SelectedRows[0].Index < m_AdmSklCountStart)

{

//вылазит прдупреждающее окошко name удаление . в нем вопрос вы уверены? и если нажата ок...(MessageBox.Show("Вы уверены?", "Удаление", MessageBoxButtons.OKCancel) == DialogResult.OK)

{_db.WriteDataBase("Delete From sklad Where sklad.[id_tovara_na_sklade]=" + dgvAdmSkl.SelectedRows[0].Cells[0].Value.ToString());_db.WriteDataBase("Delete From nakladnaya Where nakladnaya.[id_tovara_na_sklade]=" + dgvAdmSkl.SelectedRows[0].Cells[0].Value.ToString());

}

//загрузить форму без удаленной строчки_Load(0, null);

}

}void btnEdit_Click(object sender, EventArgs e)

{

// Все старые записи, которые изменили(int i = 0; i < m_AdmSklCountStart; i++)

{

//_db.WriteDataBase("Update sklad Set id_postavshika = '" + dgvAdmSkl.Rows[i].Cells[1].Value.ToString() + "', id_tovara ='" + dgvAdmSkl.Rows[i].Cells[2].Value.ToString() + "', kolichestvo = '" + dgvAdmSkl.Rows[i].Cells[3].Value.ToString() + "' Where id_tovara_na_sklade=" + dgvAdmSkl.Rows[i].Cells[0].Value.ToString());

}

// Всё, что добавили(m_AdmSklCountStart < dgvAdmSkl.RowCount - 1)

{(int i = m_AdmSklCountStart; i < dgvAdmSkl.RowCount - 1; i++)

{_db.WriteDataBase("Insert Into sklad(id_postavshika, id_tovara, kolichestvo) Values('" + dgvAdmSkl.Rows[i].Cells[1].Value.ToString() + "', '" + dgvAdmSkl.Rows[i].Cells[2].Value.ToString() +"','"+ dgvAdmSkl.Rows[i].Cells[3].Value.ToString() + "')");

}

}.Show("Изменено!", "Редактирование");_Load(0, null);

}void btnExit_Click(object sender, EventArgs e)

{();

}void AdmSklForm_Load(object sender, EventArgs e)

{_db.ReadDataBase(dgvAdmSkl, "Select * from sklad");.Columns[0].Visible = false;_AdmSklCountStart = dgvAdmSkl.RowCount - 1;

}

}

}SKLAD

{partial class TypeTovForm : Form

{DataBase m_db;

// переменная которая хранит стартовое кол-во строк взятых из бдint m_TTovCountStart;TypeTovForm(DataBase db)

{();_db = db;

}void TypeTovForm_Load(object sender, EventArgs e)

{_db.ReadDataBase(dgvTTov, "Select * from type_tovara");.Columns[0].ReadOnly = true;_TTovCountStart = dgvTTov.RowCount - 1;

}void btnEdit_Click(object sender, EventArgs e)

{

// Все старые записи, которые изменили(int i = 0; i < m_TTovCountStart; i++)

{

//_db.WriteDataBase("Update type_tovara Set opisanie = '" + dgvTTov.Rows[i].Cells[1].Value.ToString() + "', uslovia_hraneniya ='" + dgvTTov.Rows[i].Cells[2].Value.ToString() + "' Where id_type_tovara=" + dgvTTov.Rows[i].Cells[0].Value.ToString());

}

// Всё, что добавили(m_TTovCountStart < dgvTTov.RowCount - 1)

{(int i = m_TTovCountStart; i < dgvTTov.RowCount - 1; i++)

{_db.WriteDataBase("Insert Into type_tovara( opisanie, uslovia_hraneniya) Values('" + dgvTTov.Rows[i].Cells[1].Value.ToString() + "', '" + dgvTTov.Rows[i].Cells[2].Value.ToString() + "')");

}

}.Show("Изменено!", "Редактирование");_Load(0, null);

}void btnExit_Click(object sender, EventArgs e)

{();

}void btnDel_Click_1(object sender, EventArgs e)

{(dgvTTov.SelectedRows[0].Index < m_TTovCountStart)

{(MessageBox.Show("Вы уверены?", "Удаление", MessageBoxButtons.OKCancel) == DialogResult.OK)

{_db.WriteDataBase("Delete From type_tovara Where type_tovara.[id_type_tovara] = " + dgvTTov.SelectedRows[0].Cells[0].Value.ToString());_db.WriteDataBase("Delete From tovar Where tovar.[id_type_tovara] = " + dgvTTov.SelectedRows[0].Cells[0].Value.ToString());

}_Load(0, null);

}

}

}

}

Запросы

Select id_tovara_na_sklade From SkladFrom nakladnaya Where nakladnaya.[id_tovara_na_sklade]Distinct(Postavshik.name_postavshika) From Postavshik, Sklad Where Postavshik.id_postavshika=Sklad.id_postavshikaInto sklad(id_postavshika, id_tovara, kolichestvo) Values('" + dgvAdmSkl.Rows[i].Cells[1].Value.ToString() + "', '" + dgvAdmSkl.Rows[i].Cells[2].Value.ToString() +"','"+ dgvAdmSkl.Rows[i].Cells[3].Value.ToString() + "')");

"Select Tovar.name_tovara From Tovar Where " +

"id_tovara in (Select id_tovara From Sklad Where id_tovara_na_sklade =" + cmbIdTovNaSkl.Text + ")");

"Select kolichestvo From Sklad Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text));

"Select Tovar.cena_tovara From Tovar Where " +

"id_tovara in (Select id_tovara From Tovar Where name_tovara ='"id_type_tovara, opisanie as [Описание], uslovia_hraneniya as [Условия хранения]" +

"From type_tovara Where id_type_tovara in (Select id_type_tovara From Tovar Where name_tovara ='"

"UPDATE Sklad SET kolichestvo = " + kol_vo_razn1 + " Where id_tovara_na_sklade = "

"Select id_tovara_na_sklade as [Номер товара на складе], Postavshik.name_postavshika as [ФИО поставщика]," +

" Tovar.name_tovara as [Наименование товара],Sklad.kolichestvo as [Количество товара]" +

" FROM Postavshik, Sklad, Tovar WHERE Postavshik.id_postavshika= Sklad.id_postavshika " +

" And Tovar.id_tovara = Sklad.id_tovara ");


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ