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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.01.2013
Размер файла 601,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

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

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

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

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

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

Выводы

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

Приложение

Введение

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

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

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

Для создания программного средства были использованы средства: : 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. Вариант использования

Список вариантов использования. Все варианты использования указаны в таблице 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 г.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исключения:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исключения:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введение

Назначение

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

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

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

Ссылки

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

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. Моделирование данных

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

Рисунок.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- структуры масивов

Тип сущности

Атрибуты

Тип данных

Tovar

id_tovara

Счетчик

Name_tovara

Текстовый

Cena_tovara

Денежный

Id_type_tovara

Числовой

Zakazchik

Id_zakazchika

Счетчик

Name_zakazchika

Текстовый

Address

Текстовый

Postavshik

Id_ postavshika

Счетчик

Name_ postavshika

Текстовый

Address

Текстовый

Sklad

id_tovara

Числовой

id_tovara_na_sklade

Счетчик

Kolichestvo

Числовой

Id_ postavshika

Числовой

Nakladnaya

Id_nakladnoy

Счетчик

Kolichestvo_tovarov

Числовой

Date_nakladnoy

Дата/время

id_tovara_na_sklade

Числовой

Id_zakazchika

Числовой

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

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

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

Название связи

Описание святи

Тип святи

Zakazchik- Nakladnaya

Оформляет

1:М

Nakladnaya- Sklad

Вмещает информацию

М:1

Postavshik- Sklad

Поставляет на

1:М

Tovar- Sklad

Поступает на

1:М

Tovar- Type_tovara

Имеет

М:1

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

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

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

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

Выводы

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

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

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

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

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

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

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

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

Приложение А

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

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

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

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

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

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

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

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

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

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

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

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

Программа включает в себя базу данных и программу для работы с этой базой данных.Приложение разработано в среде 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 запросы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace SKLAD

{

public partial class NakladForm : Form

{

private List<Naklad> m_nklList = new List<Naklad>();

public struct Naklad

{

public string insert;

public string update;

public string select;

// public string DELETE;

};

private string m_id_zak;

private int kol_vo_na_skl, kol_vo_razn, kol_vo_razn1;

private DataBase m_db = new DataBase();

public NakladForm(DataBase db)

{

InitializeComponent();

m_db = db;

dtpicDate_Nakl.MinDate = DateTime.Now;

}

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

private void NakladForm_Load(object sender, EventArgs e)

{

cmbIdTovNaSkl.Items.Clear();

cmbIdTovNaSkl.Text = "";

cmbZak.Text = "";

txtTov.Text = "";

txtPost.Text = "";

txtKol_vo.Text = "";

DataGridView dgv = new DataGridView();

m_db.ReadDataBase(dgv, "Select name_zakazchika From zakazchik");

cmbZak.Items.Clear();

for (int i = 0; i < dgv.RowCount - 1; i++)

{

if (i < dgv.RowCount - 1)

cmbZak.Items.Add(dgv.Rows[i].Cells[0].Value.ToString());

}

m_db.ReadDataBase(dgv, "Select id_tovara_na_sklade From Sklad ");

cmbIdTovNaSkl.Items.Clear();

for (int i = 0; i < dgv.RowCount - 1; i++)

{

if (i < dgv.RowCount - 1)

cmbIdTovNaSkl.Items.Add(dgv.Rows[i].Cells[0].Value.ToString());

}

}

private void cmbIdTovNaSkl_SelectedIndexChanged(object sender, EventArgs e)

{

if (cmbIdTovNaSkl.Items.Contains(cmbIdTovNaSkl.Text))

{

if (txtTov.Text != "")

{

txtTov.Text = "";

}

if (txtPost.Text != "")

{

txtPost.Text = "";

}

DataGridView dgv = new DataGridView();

m_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 + ")");

for (int i = 0; i < dgv.RowCount - 1; i++)

{

if (i < dgv.RowCount - 1)

txtTov.Text = (dgv.Rows[i].Cells[0].Value.ToString());

}

m_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 + ")");

for (int i = 0; i < dgv.RowCount - 1; i++)

{

if (i < dgv.RowCount - 1)

txtPost.Text = (dgv.Rows[i].Cells[0].Value.ToString());

}

}

}

private void btnAddNew_Click(object sender, EventArgs e)

{

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

{

DataGridView dgv = new DataGridView();

m_db.ReadDataBase(dgv, "Select id_zakazchika From Zakazchik Where name_zakazchika='" + cmbZak.Text + "'");

m_id_zak = dgv.Rows[0].Cells[0].Value.ToString();

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

kol_vo_na_skl = (int)dgv.Rows[0].Cells[0].Value;

Naklad tick = new Naklad();

int m_txtKol_vo = Convert.ToInt32(txtKol_vo.Text);

// если на складе не хватает

if (kol_vo_na_skl < m_txtKol_vo)

{

kol_vo_razn = m_txtKol_vo - kol_vo_na_skl;

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

{

NakladForm_Load(0, null);

}

}

//else if (kol_vo_na_skl == m_txtKol_vo)

//{

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

//}

else

{

kol_vo_razn1 = kol_vo_na_skl - m_txtKol_vo;

tick.update = "UPDATE Sklad SET kolichestvo = " + kol_vo_razn1 + " Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text);

tick.insert = "Insert Into nakladnaya(id_zakazchika, id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov) Values(" + m_id_zak + ", " + cmbIdTovNaSkl.Text + ", DateValue('" +

dtpicDate_Nakl.Value.Date.ToString() + "'), " + txtKol_vo.Text + ")";

tick.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() + "')";

m_nklList.Add(tick);

}

}

NakladForm_Load(0, null);

}

private void btnPrint_Click(object sender, EventArgs e)

{

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

{

DataGridView dgv = new DataGridView();

m_db.ReadDataBase(dgv, "Select id_zakazchika From Zakazchik Where name_zakazchika='" + cmbZak.Text + "'");

m_id_zak = dgv.Rows[0].Cells[0].Value.ToString();

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

kol_vo_na_skl = (int)dgv.Rows[0].Cells[0].Value;

Naklad tick = new Naklad();

int m_txtKol_vo = Convert.ToInt32(txtKol_vo.Text);

// если на складе не хватает

if (kol_vo_na_skl < m_txtKol_vo)

{

kol_vo_razn = m_txtKol_vo - kol_vo_na_skl;

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

{

NakladForm_Load(0, null);

}

}

//else if (kol_vo_na_skl == m_txtKol_vo)

//{

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

//}

else

{

kol_vo_razn1 = kol_vo_na_skl - m_txtKol_vo;

tick.update = "UPDATE Sklad SET kolichestvo = " + kol_vo_razn1 + " Where id_tovara_na_sklade = " + Convert.ToInt32(cmbIdTovNaSkl.Text);

tick.insert = "Insert Into nakladnaya(id_zakazchika, id_tovara_na_sklade, date_nakladnoy, kolichestvo_tovarov) Values(" + m_id_zak + ", " + cmbIdTovNaSkl.Text + ", DateValue('" +

dtpicDate_Nakl.Value.Date.ToString() + "'), " + txtKol_vo.Text + ")";

tick.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() + "')";

m_nklList.Add(tick);

try

{

string query = "";

for (int i = 0; i < m_nklList.Count; i++)

{

// m_db.WriteDataBase(m_nklList[i].DELETE);

m_db.WriteDataBase(m_nklList[i].update);

m_db.WriteDataBase(m_nklList[i].insert);

if (i < m_nklList.Count - 1)

query += m_nklList[i].select + " UNION ";

else

query += m_nklList[i].select;

}

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

}

catch

{

}

}

}

else

{

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

}

}

}

}

namespace SKLAD

{

public partial class AdmSklForm : Form

{

private DataBase m_db;

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

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

private int m_AdmSklCountStart;

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

public AdmSklForm(DataBase db)

{

InitializeComponent();

m_db = db;

}

private void btnDel_Click(object sender, EventArgs e)

{

//условие проверяющее выделели мы хоть одну строку для удаления? если да...

if (dgvAdmSkl.SelectedRows[0].Index < m_AdmSklCountStart)

{

//вылазит прдупреждающее окошко name удаление . в нем вопрос вы уверены? и если нажата ок...

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

{

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

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

}

//загрузить форму без удаленной строчки

AdmSklForm_Load(0, null);

}

}

private void btnEdit_Click(object sender, EventArgs e)

{

// Все старые записи, которые изменили

for (int i = 0; i < m_AdmSklCountStart; i++)

{

//

m_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());

}

// Всё, что добавили

if (m_AdmSklCountStart < dgvAdmSkl.RowCount - 1)

{

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

{

m_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() + "')");

}

}

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

AdmSklForm_Load(0, null);

}

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

private void AdmSklForm_Load(object sender, EventArgs e)

{

m_db.ReadDataBase(dgvAdmSkl, "Select * from sklad");

dgvAdmSkl.Columns[0].Visible = false;

m_AdmSklCountStart = dgvAdmSkl.RowCount - 1;

}

}

}

namespace SKLAD

{

public partial class TypeTovForm : Form

{

private DataBase m_db;

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

private int m_TTovCountStart;

public TypeTovForm(DataBase db)

{

InitializeComponent();

m_db = db;

}

private void TypeTovForm_Load(object sender, EventArgs e)

{

m_db.ReadDataBase(dgvTTov, "Select * from type_tovara");

dgvTTov.Columns[0].ReadOnly = true;

m_TTovCountStart = dgvTTov.RowCount - 1;

}

private void btnEdit_Click(object sender, EventArgs e)

{

// Все старые записи, которые изменили

for (int i = 0; i < m_TTovCountStart; i++)

{

//

m_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());

}

// Всё, что добавили

if (m_TTovCountStart < dgvTTov.RowCount - 1)

{

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

{

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

}

}

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

TypeTovForm_Load(0, null);

}

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

private void btnDel_Click_1(object sender, EventArgs e)

{

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

{

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

{

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

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

}

TypeTovForm_Load(0, null);

}

}

}

}

Запросы

Select id_tovara_na_sklade From Sklad

Delete From nakladnaya Where nakladnaya.[id_tovara_na_sklade]

Select Distinct(Postavshik.name_postavshika) From Postavshik, Sklad Where Postavshik.id_postavshika=Sklad.id_postavshika

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() + "')");

"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 ='"

Select 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 ");

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.