Uploaded by Матвей Алексенко

SQL БД

advertisement
Размещено на http://www.allbest.ru/
Курсовой проект по дисциплине
“Средства проектирования клиент – серверных приложений”
Автоматизированная система обработки информации
Разработка информационной системы учета товаров на оптовом складе
2009
Размещено на http://www.allbest.ru/
Кафедра:
Специальность:
«Автоматизированные
системы
обработки
информации и управления»
Дисциплина: Средства проектирования клиент-серверных приложений
Тема: Разработка информационной системы учета товаров на оптовом
складе
ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ
Оптовый склад принимает партии товаров от поставщиков и отпускает
его клиентам мелкими партиями. Требуется вести (количественный и
стоимостной) учет поступающих и отпускаемых товаров, поставщиков и
клиентов, формировать приходные и расходные накладные. В системе
формируются отчеты о поступлении и отпуске товаров на складе за
произвольный период.
Спроектировать информационную систему учета товаров на оптовом
складе в среде СУБД MS SQL Server.
Исходные данные к проекту:
1.
Список атрибутов поставщиков товаров (адрес, фамилия, имя и
отчество предпринимателя, наименование фирмы, ИНН, КПП, ОКПО, БИК).
2.
Список товаров.
3.
Список атрибутов покупателей товаров (адрес, фамилия, имя и
отчество предпринимателя, наименование фирмы, ИНН, КПП, ОКПО, БИК)..
Выходные данные к проекту:
-Приходная и товарно-транспортная (расходная) накладные.
-Отчет о поступлении и отпуске товаров на складе за произвольный
период.
Исполнитель: студент гр. strangera@mail.ru ________________
(подпись)
Руководитель: _________________
(подпись)
Размещено на http://www.allbest.ru/
Содержание
Реферат
1. Описание предметной области
2. Обзор аналогов
3. Техническое задание
4. Проектирование базы данных
4.1 Нормализация отношений
4.1.1 Ненормализованная форма
4.1.2 Вторая нормальная форма
4.2 Структура таблиц
4.3 Диаграмма сущность связь (ER – диаграмма)
4.4 Создание БД и таблиц
4.5 Заполнение таблиц
4.6. Тексты запросов SQL
5. Клиентская часть
5.1 Общие сведения о работе системы
5.2 Функциональное назначение
5.3 Инсталляция и выполнение программного продукта
5.4 Руководство пользователя
6. Заключение
Приложение 1. Текст команд на языке SQL
Приложение 2. Экранные формы (результаты выполнения запросов).
Приложение 3. Структуры баз данных аналогичных программ из раздела 2
Приложение 4. Шаблон приходной накладной
Приложение 5. Шаблон товарно-транспортной накладной
Размещено на http://www.allbest.ru/
Реферат
Пояснительная записка 46 с., 11 рис., 9 табл., 4 источника, 5 прил.
КУРСОВОЙ ПРОЕКТ, ОПТОВЫЙ СКЛАД, БАЗА ДАННЫХ (БД),
СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД), MICROSOFT
SERVER 2000, НОРМАЛЬНАЯ ФОРМА, ИНФОЛОГИЧЕСКАЯ МОДЕЛЬ,
ПРОЕКТИРОВАНИЕ, ЯЗЫК СТРУКТУРИРОВАННЫХ ЗАПРОСОВ SQL.
Объектом исследования является оптовый склад.
Цель работы – проектирование базы данных для информационной
системы учёта на оптовом складе. В процессе работы изучена предметная
область и получены практические навыки в работе с СУБД MS SQL Server
2000, разработаны структуры таблиц, проведена нормализация отношений до
2-й формы включительно. В результате работы созданы база данных
warehouse и таблиц, произведено заполнение таблиц, разработано строк кода
SQL.
Разработанная база данных может быть применена при автоматизации
ведения учёта на оптовом складе. Логическая структура базы данных может
применяться для других информационных систем с аналогичной предметной
областью.
Размещено на http://www.allbest.ru/
1. Описание предметной области
Оптовый склад принимает партии товаров от поставщиков и отпускает
его клиентам мелкими партиями. Требуется вести (количественный и
стоимостной) учет поступающих и отпускаемых товаров, поставщиков и
клиентов, формировать приходные и расходные накладные.
Также необходимо формировать отчеты о поступлении и отпуске
товаров на складе за произвольный период.
На складе происходит движение материальных и информационных
потоков. Первые представлены движением товара от поставщиков на склад
или со склада к покупателям, а информационные потоки представлены
документацией, необходимой для этих операций.
Склад принимает и складирует готовую продукцию, эта операция
сопровождается формированием приходной накладной. Она состоит из двух
частей: общей (в которую входят номер накладной, наименование
поставщика и дата сдачи продукции на склад) и спецификации (в нее входят
наименования и количество передаваемой продукции).
Продукция со складов направляется заказчикам в соответствии с
заключенными договорами. Отправляется продукция на основании товарнотранспортной накладной. Товарно-транспортная накладная состоит из общей
части (номер накладной, реквизиты грузоотправителя, грузополучателя и
грузоперевозчика, дата отгрузки) и спецификации (вид и количество
отгружаемой продукции).
После получения продукции заказчик должен произвести оплату,
которая оформляется платежным поручением, выписанным на основании
товарно-транспортной накладной. Общая часть платежного поручения
включает номера товарно-транспортной накладной и платежного поручения,
и дату оплаты. Спецификация включает вид и количество оплачиваемой
продукции.
Размещено на http://www.allbest.ru/
Счет-фактура – это документ, выдаваемый поставщиком покупателю
или предоставляемые поставщиком банку для подтверждения платежа
покупателя. Общая часть включает реквизиты поставщика и покупателя, а в
спецификации указываются наименование товара, единицы измерения, цена
и сумма.
Размещено на http://www.allbest.ru/
2. Обзор аналогов
Аналогичные программы:
1. Учет и движение товара на складе 3.8.1.
Наименование: Учет и движение товара на складе 3.8.1.
Фирма разработчик (автор): V-A-V.
Функции системы:
- Прием и отпуск товара как в основных единицах измерения, так и в
различных упаковках с авто пересчетом в основные единиц измерения.
- Расценка товара на складе по неограниченному количеству цен, а
также его отпуск со склада по одной из выбранных цен.
- Гибкая система учета скидок и накруток на товар для покупателя.
- Ведение кассовых операций по приходу и расходу товара, как в
автоматическом, так и в ручном режиме.
- Ведение заказов на товар для своих потребителей. Отслеживание
состояний заказов с последующим помещением заказа в журнал расхода.
- Возможность просмотра кассы, как общей, так и по отдельно взятому
поставщику / потребителю.
- Возможность быстрого получения информации по выбранному
товару на любую дату.
- Печать накладных на отпуск товара – Отчет о прибыли по
потребителям.
- Печать прайс-листов.
- Отчет по остаткам на складе.
- Отчет по поставщику товара.
Используемая СУБД: MS Access 2000
Структура базы данных приведена в приложении 3.
Количественные характеристики БД:
Количество таблиц: 28.
Количество запросов MS Access: 20
Размещено на http://www.allbest.ru/
2. Система учета ‘СКЛАД’ 1.0.
Наименование: Ст – Система учета ‘СКЛАД’ 1.0.
Фирма – разработчик St&Soft.
Функции системы:
- вести неограниченное количество информационных баз данных
- вести весь документооборот, касающийся складского учета
- вести ведомость задолженностей (по клиентам)
- получать печатные отчеты
- просматривать динамику посредством анализа в графическом
представлении
- вести прайс-листы, печатать ценники
-
поддержка
неограниченного
количества
пользователей
возможностью назначения прав доступа к разделам системы и фирмам
- вести систему напоминаний (памяток пользователям)
- копировать данные
Используемая СУБД: MS Access 2002.
Структура базы данных приведена в приложении 3.
Количественные характеристики БД:
Количество таблиц: 42
с
Размещено на http://www.allbest.ru/
3. Техническое задание
3.1 Общие сведения
3.1.1 Полное наименование системы и её условное обозначение
Полное наименование: Автоматизированная система учёта товара на
оптовом складе.
Сокращённое наименование: АСУТ «Склад».
3.1.2 Заказчик, разработчик и пользователь системы.
Заказчик: Торговая сеть «Мастер+».
Разработчик: Научно–производственная фирма «Компьютер»
Пользователь: Оптовый торговый склад.
3.2 Назначение системы
Разрабатываемая автоматизированная система обработки информации
решает задачу автоматизации процессов работы оптового склада.
3.3 Цель системы
Задачу автоматизации склада можно разбить на подзадачи:
1)
Учет приходящих товаров.
2)
Учет количества товара на складе.
3)
Учёт отравленных товаров.
4)
Формирование товарно-транспортной и приходной накладных, а
также счёта, предоставляемого покупателю для оплаты.
Разрабатываемая автоматизированная система должна предоставлять
удобные средства для решения перечисленных задач.
Размещено на http://www.allbest.ru/
3.4 Требования к системе
3.4.1 Требования к функциям системы
Архитектура системы: клиент-серверная. Основные функции: ввод и
корректировка данных (поставщики, покупатели, товары) получение отчетов
по запросам к базе данных.
3.4.2 Требования к видам обеспечения
3.4.2.1 Программное обеспечение
Базовые операционные системы для серверной части – лицензионная
версия Windows NT 4.* /2000 и выше, для клиентской части – лицензионная
версия Window 2000 и выше.
Система управления базами данных Microsoft SQL Server 2000.
Средства защиты информации от несанкционированного доступа
класса «3А».
Средства защиты от компьютерных вирусов.
3.4.2.2 Техническое обеспечение
Минимальная
конфигурация
технических
средств
должна
соответствовать стандарту, принятому в торговой сети «Мастер+» и
обеспечить нормальную работу СУБД MS SQL Server 2000.
Размещено на http://www.allbest.ru/
4. Проектирование базы данных
4.1 Нормализация отношений
4.1.1 Ненормализованная форма
Таблица 4.1.
Однотабличная база данных «Оптовый склад»
Номер пришедшей на склад партии товара
Номер проданной партии товара
Стоимость партии товара
Стоимость единицы товара
Единица товара (тонна, ящик, мешок и т п)
Масса единицы товара
Дата поступления партии товара
Дата продажи партии товара
Состав партии товара (перечень товаров)
Количество каждого товара в партии
Наименование поставщика партии товара
Адрес поставщика
Телефон поставщика
ИНН поставщика
КПП поставщика
ОКПО поставщика
БИК поставщика
Банк поставщика
Счёт поставщика
Корреспондентский счёт поставщика
Руководитель поставщика
Главный бухгалтер поставщика
Наименование покупателя партии товара
Адрес покупателя
Телефон покупателя
ИНН покупателя
КПП покупателя
ОКПО покупателя
БИК покупателя
Размещено на http://www.allbest.ru/
Банк покупателя
Счёт покупателя
Корреспондентский счёт покупателя
Руководитель покупателя
Главный бухгалтер покупателя
Количество товара на складе
Наименование склада
Адрес склада
Телефон склада
ИНН склада
КПП склада
ОКПО склада
БИК склада
Банк склада
Счёт склада
Корреспондентский счёт склада
Руководитель склада
Главный бухгалтер склада
4.1.2 Первая нормальная форма
Размещено на http://www.allbest.ru/
В полученной первой нормальной форме каждый не входящий в
первичный ключ атрибут функционально зависит от первичного ключа,
следовательно, это вторая нормальная форма.
4.2 Структура таблиц
Справочник «Поставщики».
Информации о поставщиках хранится в таблице «Supplier».
Структура и правила поддержки целостности данных приводятся в
табл. 4.2.1
Размещено на http://www.allbest.ru/
Таблица 4.2.1
Структура таблицы Supplier
№
Название поля
Тип поля
Длина
Null
Назначение
1
Supplier_id
Числовой
4
Not
Первичный ключ
2
Supplier_name
Текстовый
100
Not
Название фирмы
3
Supplier_address
Текстовый
255
Not
Адрес фирмы
4
Supplier_INN
Числовой
4
Not
ИНН
5
Supplier_account
Текстовый
25
Not
Номер счёта поставщика
6
Supplier_KPP
Числовой
4
Not
КПП поставщика
7
Supplier_phone
Текстовый
20
Not
Телефон(ы) поставщика
8
Supplier_bank
Текстовый
255
Not
Банк поставщика
9
Address_bank
Текстовый
255
Not
Адрес банка
10
Supplier_bik
Текстовый
255
Not
БИК поставщика
11
Corr_account
Текстовый
25
Not
Корреспондентский счёт поставщика
12
Okpo
Числовой
4
Not
ОКПО поставщика
13
Director
Текстовый
255
Not
Директор предприятия
14
Chief_accountant
Текстовый
255
Not
Главный бухгалтер предприятия
Справочник «Товары»
В справочнике «goods» хранится информация о наименовании товара.
Она связана с таблицами, в которых находятся параметры для каждого
товара. Структура данных приведена в табл. 4.2.2.
Таблица 4.2.2 программный обеспечение автоматизация
Структура таблицы Goods
№
Название поля
Тип поля
Длина
Null
Назначение
1
Goods_id
Числовой
4
Not
Первичный ключ
2
Goods_name
Текстовый
50
Not
Название типа
3
Quantity
Числовой
4
Not
Количество данного товара
4
Price
Денежный
8
Not
Цена единицы товара
5
Manufacturer
Текстовый
255
Not
Производитель
6
Unit
Текстовый
4
Not
Единица измерения товара (тонна, ящик, мешок и т п)
7
Massa
Числовой
4
Not
Масса единицы товара
Размещено на http://www.allbest.ru/
Справочник «Заказчики»
Справочник «customer» содержит информацию о заказчиках. Структура
данных приведена в табл. 4.2.3.
Таблица 4.2.3
Структура таблицы Customer
№
Название поля
Тип поля
Длина
Null
Назначение
1
Customer_id
Числовой
4
Not
Первичный ключ
2
Customer_name
Текстовый
50
Not
Название фирмы
3
Customer_address
Текстовый
255
Not
Адрес фирмы
4
Customer _INN
Числовой
4
Not
ИНН
5
Customer_account
Текстовый
25
Not
Номер счёта заказчика
6
Customer_KPP
Числовой
4
Not
КПП покупателя
7
Customer _phone
Текстовый
255
Not
Телефон(ы) покупателя
8
Customer _bank
Текстовый
255
Not
Банк покупателя
9
Address_bank
Текстовый
255
Not
Адрес банка
№
Название поля
Тип поля
Длина
Null
Назначение
10
Customer _bik
Текстовый
255
Not
БИК покупателя
11
Corr_account
Текстовый
25
12
Okpo
Числовой
4
Not
13
Director
Текстовый
255
Not
Директор предприятия
14
Chief_accountant
Текстовый
255
Not
Главный бухгалтер предприятия
Корреспондентский счёт покупателя
Справочник «Закупаемая партия товара»
В
таблице
«Party_delivered»
содержится
стоимость
партии
поставленного на склад товара, дата поставки и номер поставщика.
Структура данных приведена в табл. 4.2.4.
Размещено на http://www.allbest.ru/
Таблица 4.2.4
Структура таблицы Party_delivered
№
Название поля
Тип поля
Размер
Null
Назначение
1
Party id
Числовой
4
Not
Идентификатор партии товара (номер приходной
накладной)
2
Supplier_id
Числовой
4
Not
Идентификатор поставщика из таблицы 4.2.1
3
Price
Денежный
Х
Not
Стоимость партии товара
4
_Date
Дата
Y
Not
Дата поставки
Справочник «Доставленный товар»
В таблице «Delivered_goods» содержится номер партии товара,
количество товара в партии, стоимость единицы товара в партии. В
различных партиях стоимость одного и того же товара за единицу может
быть различна. Структура данных приведена в табл. 4.2.5.
Таблица 4.2.5
Структура таблицы Delivered_goods
№
Название поля
Тип поля
Размер
Null
Назначение
1
Id
Числовой
4
Not
Идентификатор записи
2
Goods_id
Числовой
4
Not
Идентификатор товара из таблицы 4.2.2
3
Party_id
Числовой
4
Not
Идентификатор партии товара из таблицы 4.2.4
4
Quantity
Числовой
4
Null
Количество товара в партии
5
Price
Денежный
8
Not
Стоимость единицы товара
Справочник «Проданная партия товара»
В таблице «Party_sold» содержатся сведения о проданном товаре.
Структура данных приведена в табл. 4.2.6.
Размещено на http://www.allbest.ru/
Таблица 4.2.6
Структура таблицы Party_sold
№
Название поля
Тип поля
Размер
Null
Назначение
1
Party_id
Числовой
4
Not
Номер партии (товарно-транспортной
накладной
2
_Date
Дата
8
Not
Дата продажи
3
Price
Денежный
8
Not
Стоимость партии товара
4
Customer_id
Числовой
4
Not
Идентификатор покупателя из таблицы 4.2.3
5
Seria
Текстовый
10
Not
Серия товарно-транспортной накладной
Справочник «Проданный товар»
В таблице «Sent_goods» содержится информация о стоимости и составе
продаваемой партии товара. Структура данных приведена в табл. 4.2.7.
Таблица 4.2.7
Структура таблицы Sent_goods
№ Название поля
Тип поля
Размер
Null
Назначение
1
Goods_id
Числовой
4
Not
Идентификатор товара из таблицы 4.2
2
Party_id
Числовой
4
Not
ID партии из таблицы 4.6
3
Quantity
Числовой
4
Not
Количество товара в данной партии
4
Price
Денежный
Y
Not
Стоимость единицы товара
Справочник «Данные склада»
В таблице «Warehouse» содержатся реквизиты склада . Структура
данных приведена в табл. 4.2.8.
Таблица 4.2.8
Структура таблицы Warehouse
№
Название поля
Тип поля
Размер
Null
Назначение
1
Name
Текстовый
100
Not
Наименование склада
2
Address
Текстовый
255
Not
Адрес склада.
3
INN
Числовой
4
Not
ИНН склада
4
KPP
Числовой
4
Not
КПП склада
5
Phone
Текстовый
20
Not
Телефон
Размещено на http://www.allbest.ru/
6
Account
Текстовый
25
Not
Счёт
7
Bank
Текстовый
255
Not
Банк
8
Address_bank
Текстовый
255
Not
Адрес банка
9
BIK
Числовой
4
Not
БИК
10
Okpo
Числовой
4
Not
ОКПО склада
11
Corr_account
Текстовый
25
Not
Корреспондентский счёт
12
Director
Текстовый
255
Not
Директор
13
Chief_accountant
Текстовый
255
Not
Главный бухгалтер
4.3. Диаграмма «Сущность-связь» (ER-диаграмма)
Диаграмма “Сущность-связь” (ER-диаграмма) разработана на основе
анализа предметной области и представлена на рис. 4, выполненная с
помощью CASE-средств MS SQL Server 2000.
Сущность «Поставщик» (Suppliers служит для учета поставщиков
партий на склад.
Сущность «Поставщик» связана с сущностью «Поставленная партия
товара».
Атрибуты сущности «Поставщик»:
Supplier_id – Идентификатор поставщика, первичный ключ.
Supplier_name – Наименование поставщика.
Supplier_address – Адрес поставщика
Supplier_account – Расчетный счёт поставщика
Supplier_inn – ИНН поставщика
Supplier_kpp – КПП поставщика
Supplier_phone – телефон поставщика
Supplier_bank – банк поставщика
Address_bank – адрес банка поставщика
Supplier_bik – БИК банка поставщика
Corr_account – Корреспондентский счёт поставщика
Okpo – код ОКПО
Director – Руководитель предприятия поставщика
Размещено на http://www.allbest.ru/
Chief_accountant – Главный бухгалтер поставщика
Сущность «Покупатель» (Customer) служит для учета юридических и
физических лиц, cделавшие приобретение партий товара.
Сущность «Покупатель» связана с сущностью «Проданная партия
товара».
Атрибуты сущности «Покупатель»:
Customer_id – Идентификатор покупателя, первичный ключ.
Customer_name – Наименование покупателя.
Customer_address – Адрес покупателя
Customer_account – Расчетный счёт покупателя
Customer_inn – ИНН покупателя
Customer_kpp – КПП покупателя
Customer_phone – телефон покупателя
Customer_bank – банк покупателя
Address_bank – адрес банка покупателя
Customer_bik – БИК банка покупателя
Corr_account – Корреспондентский счёт покупателя
Okpo – код ОКПО
Director – Руководитель предприятия покупателя
Chief_accountant – Главный бухгалтер покупателя
Сущность «Товар» (GOODS) служит для учета товаров находящихся в
данное время на складе.
Сущность «Товар» связана с сущностями «Поставленные товары» и
«Проданные товары».
Атрибуты сущности «Товар»:
Goods_id - Номер_товара, первичный ключ.
Goods_name – Наименование_товара.
Price – Цена.
Manufacturer - Фирма – производитель товара.
Quantity – Количество
Размещено на http://www.allbest.ru/
Unit – Единица товара (тонна, ящик, мешок, и т п)
Massa – Масса единицы товара
Сущность «Закупаемая партия товара» служит для учёта даты поставки
партии товара на склад, поставщика и стоимости партии.
Сущность «Закупаемая партия товара» связана с сущностями «Товар»,
«Закупленные товары».
Атрибуты сущности «Закупаемая партия товара»:
Party_id – номер партии товара, первичный ключ.
Date – дата поступления партии товара на склад.
Supplier_id – идентификатор поставщика.
Price – стоимость партии.
Сущность «Проданная партия товара» служит для учёта даты продажи
партии товара со склада, покупателя и стоимости партии.
Сущность «Проданная партия товара» связана с сущностями «Товар»,
«Проданные товары».
Атрибуты сущности «Проданная партия товара»:
Party_id – номер партии товара, первичный ключ.
Date – дата поступления партии товара на склад.
Customer_id – идентификатор покупателя.
Price – стоимость партии
Seria – серия товарно–транспортной накладной.
Сущность «Проданный товар» служит для учёта состава проданной
партии товара.
Сущность связана с сущностями «Товар» и «Проданная партия
товара».
Атрибуты сущности «Проданный товар»:
ID – идентификатор записи таблицы, первичный ключ
Goods_id – идентификатор товара.
Party_id – идентификатор партии товара.
Quantity – количество.
Размещено на http://www.allbest.ru/
Price – стоимость единицы товаров.
Сущность «Закупленный товар» служит для учёта состава проданной
партии товара.
Сущность связана с сущностями «Товар» и «Закупленная партия
товара».
Атрибуты сущности «Закупленный товар»:
ID – идентификатор записи таблицы, первичный ключ
Goods_id – идентификатор товара.
Party_id – идентификатор партии товара.
Quantity – количество.
Price – стоимость единицы товаров.
Сущность «Склад» служит для хранения данных склада.
Сущность не связана с прочими сущностями, но необходима при
формировании выходных документов.
Атрибуты сущности «Склад»:
Name -Наименование склада.
Address – Адрес склада.
INN – ИНН склада.
KPP – КПП склада.
Phone – Телефон склада.
Account – Расчетный счёт склада.
Bank – Банк склада.
Address_bank – Адрес банка склада.
BIK – БИК банка склада.
OKPO – ОКПО склада.
Corr_account – Корреспондентский счёт.
Director – Руководитель.
Chief_accountant – Главный бухгалтер склада.
Размещено на http://www.allbest.ru/
Рис. 4.3.1. Диаграмма «Сущность – связь»
4.4 Создание базы данных и таблиц
CREATE DATABASE warehouse;
USE warehouse;
CREATE TABLE supplier
(supplier_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
supplier_name VARCHAR(100),
supplier_address VARCHAR(255),
supplier_account VARCHAR(25),
supplier_inn INTEGER,
suppier_kpp INTEGER,
supplier_phone VARCHAR (20),
supplier_bank VARCHAR (255),
address_bank VARCHAR(255),
Размещено на http://www.allbest.ru/
supplier_bik INTEGER,
cor_account VARCHAR(25),
okpo INTEGER,
director VARCHAR(255),
chief_accountant VARCHAR(255));
CREATE TABLE customer
(customer_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
customer_name VARCHAR(100),
customer_address VARCHAR(255),
customer_account VARCHAR(25),
customer_inn INTEGER,
suppier_kpp INTEGER,
customer_phone VARCHAR (20),
customer_bank VARCHAR (255),
address_bank VARCHAR (255),
customer_bik INTEGER,
cor_account VARCHAR(25),
okpo INTEGER,
director VARCHAR(255),
chief_accountant VARCHAR(255));
CREATE TABLE goods
(goods_id INTEGER PRIMARY KEY IDENTITY(1,1),
goods_name VARCHAR(100),
price MONEY,
manufacturer VARCHAR(300),
quantity INTEGER,
unit VARCHAR (50),
massa INTEGER);
CREATE TABLE party_delivered
(party_id INTEGER PRIMARY KEY IDENTITY(1,1),
Размещено на http://www.allbest.ru/
_date DATETIME,
supplier_id INTEGER,
price MONEY);
CREATE TABLE party_sold
(party_id INTEGER PRIMARY KEY IDENTITY(1,1),
_date DATETIME,
customer_id INTEGER,
price MONEY,
seria VARCHAR(10));
CREATE TABLE sent_goods
(ID INTEGER PRIMARY KEY IDENTITY(1,1),
goods_id INTEGER,
party_id INTEGER,
quantity INTEGER,
price MONEY);
CREATE TABLE delivered_goods
(ID INTEGER PRIMARY KEY IDENTITY(1,1),
goods_id INTEGER,
party_id INTEGER,
quantity INTEGER,
price MONEY);
CREATE TABLE warehouse_data
(name VARCHAR(100),
address VARCHAR(255),
inn
INTEGER,
kpp
INTEGER,
phone VARCHAR(20),
account VARCHAR(25),
bank VARCHAR(255),
address_bank VARCHAR(255),
Размещено на http://www.allbest.ru/
bik
INTEGER,
okpo INTEGER,
cor_account VARCHAR(25),
director VARCHAR(255),
Chief_accountant VARCHAR(255));
4.5 Заполнение таблиц
INSERT INTO supplier VALUES
(‘Поставщик №1’,
‘г. Астрахань, ул Третья, д 47’,
‘45654233334789d48’,
‘456789123’,
‘159987456’,
‘(8512) 12-58-95’,
‘Первый строительный’,
‘г Астрахань, ул Бабушкина, д 57’,
‘465466545’,
‘45965456854sd987g89’,
‘15987456’,
‘Романов Н.Г.’,
‘Рыбнкова Г.П’);
INSERT INTO customer VALUES
(‘Покупатель № 1’,
‘г. Нижневартовск, ул Седьмая, д 14’,
‘45654233334789d48’,
‘456789123’,
‘159987456’,
‘(8512) 12-58-95’,
‘Банк Москвы’,
Размещено на http://www.allbest.ru/
‘г Москва, ул Степашина, д 57’,
‘465466545’,
‘45965456854sd987g89’,
‘15987456’,
‘Смирнов К.С.’,
‘Иванова Г.П’);
INSERT INTO goods VALUES
(‘Товар 1’,
‘521.50’,
‘Производитель 1’,
‘5000’,
‘ящик’,
’20’);
INSERT INTO party_delivered VALUES
(’13.03.2009 15:35:01’,
‘1’,
‘456.25’);
INSERT INTO party_delivered VALUES
(’14.03.2009 12:00:41’,
‘1’,
‘456.25’);
INSERT INTO sent_goods VALUES
(‘1’,
‘4’,
‘998’,
‘500’);
INSERT INTO delivered_goods VALUES
(‘1’,
‘4’,
‘365’,
Размещено на http://www.allbest.ru/
‘456.25’);
INSERT INTO warehouse_data VALUES
(‘Центральный Астраханский склад торговой сети «Мастер+»’,
‘г. Астрахань, ул Перевозная, строение 77’,
‘15123456798’,
‘123456789’,
‘8512 65-98-41’,
‘d4fgd6g4fs5g65456’,
‘Первый строительный банк’,
‘г Астрахань, ул Лесная, Д 45’,
‘546542364556’,
‘12345678’,
‘fds4f56df4s5gf646’,
‘Степанов Н. К’,
‘Гиреева С.Т.’).
4.6 Тексты запросов SQL
SQL запросы используемые при оформлении приходной накладной:
/*Получение реквизитов склада */
SELECT * FROM warehouse_data;
/*Выборка данных о товарах, прибывших в составе партии товара*/
SELECT
goods.goods_name,
delivered_goods.quantity,
goods.unit,
delivered_goods.price,
(delivered_goods.quantity*delivered_goods.price)
FROM goods, delivered_goods WHERE (delivered_goods.party_id=' 1') AND
(delivered_goods.goods_id = goods.goods_id);
В запросе происходит выборка количества и стоимости товаров, из
таблицы «закупленные товары» (delivered_goods) для всех записей, где поле
party_id равно идентификатору пришедшей партии (в примере номер партии
товара равен 1); к тому же для каждой записи происходит выборка
Размещено на http://www.allbest.ru/
наименований товаров и единицы их измерения из таблицы «товары»
(goods).
Выражение
(delivered_goods.quantity
*
delivered_goods.price)
вычисляет сумму для каждого товара.
SQL запросы используемые при оформлении товарно-транспортной
накладной:
/*Получение реквизитов склада */
SELECT * FROM warehouse_data;
/*Выборка данных о товарах, вошедших в состав проданной партии
товара*/
SELECT
goods.goods_name,
sent_goods.quantity,
goods.unit,
sent_goods.price,
(sent_goods.quantity*sent_goods.price)
FROM
goods,
sent_goods WHERE (sent_goods.party_id=' 1') AND (sent_goods.goods_id =
goods.goods_id);
Здесь происходит выборка данных о товаре, вошедшем в проданную
партию, аналогично запросу выборки данных о товарах, прибывших в
составе партии товара, описанному выше.
/*Получение реквизитов покупателя*/
SELECT
customer.customer_name,
customer.customer_account,
customer.customer_address,
customer.customer_INN,
customer.customer_phone,
customer.customer_kpp,
customer.customer_bank,
customer.customer_address_bank, customer.customer_bik, customer.cor_account,
customer.okpo, customer.mainbuh, customer.director, party_sold.customer_id
FROM
customer,
party_sold
WHERE
(party_sold.customer_id
=
customer.customer_id) AND (party_sold.party_id =126);
Здесь происходит выборка реквизитов покупателя партии товара.
/*Получение количества и стоимости товара с идентификатором 3,
прибывшего на склад после 22.03.2009 (подобные запросы используются при
построении отчёта)*/
SELECT
sum(delivered_goods.quantity
,sum(delivered_goods.quantity)FROM
*
delivered_goods.price)
delivered_goods,
party_delivered
Размещено на http://www.allbest.ru/
WHERE(delivered_goods.party_id
=party_delivered.party_id)AND(datepart(day,party_delivered._date)
AND(datepart(month,
party_delivered._date)>=
3
)
>
22
)
AND(datepart(year,
party_delivered._date) = 2009 ) AND (delivered_goods.goods_id = 3);
Размещено на http://www.allbest.ru/
5. Клиентская часть
5.1 Общие сведения о работе системы
Клиентская часть программы разработана посредством QT 4.3.3 для
Windows XP и выше. Запускающим модулем является Client.exe.
Для организации доступа к базе данных используется драйвер ODBC
для SQL-сервера Microsoft, версия 03.81.9030.
5.2 Функциональное назначение
Программный продукт «Автоматизированная система учёта товаров на
оптовом складе (клиент)» предназначен для доступа к базе данных, хранящей
сведения о поступлении и продаже товаров на складе, а также для
оформления и печати складских документов: приходных и товарнотранспортных накладных, отчетов по поступившим и проданным товарам.
Поддерживается целостность данных, определяемая типом, размером и
диапазоном допустимых значений данных. Получить исходные тексты
проекта Вы можете, связавшись с автором по адресу strangera@mail.ru.
5.3 Инсталляция и выполнение программного продукта
Перед
началом
эксплуатации
программного
продукта
«Автоматизированная система учёта товаров на оптовом складе» необходимо
добавить базу данных warehouse на сервер и проверить подключение рабочих
станций к серверу
Далее необходимо с помощью утилиты Windows «Источники данных
ODBC» создать пользовательский источник данных warehouse
Затем следует запустить файл «Установка программы (клиент).exe» и
следовать инструкциям программы – инсталлятора.
Размещено на http://www.allbest.ru/
5.4 Руководство пользователя
Для работы с программным продуктом используется простой,
интуитивно понятный интерфейс. Последовательность работы с объектами
формы определяется доступностью командных кнопок, целостность данных
определяется набором используемых в программе проверок.
Переход от одного объекта формы к другому осуществляется при
нажатии клавиши Tab или щелчком мыши по соответствующему объекту.
После запуска программы пользователь видит на экране главную
форму.
5.4.1 Описание главного окна программы
Рис 6.1 Главное окно приложения
Главное окно программы содержит меню для открытия диалоговых
окон приложения.
Меню «Операции» содержит команды:
- Добавить партию
- Отправить партию
- Редактировать список товаров
- Редактировать список поставщиков
- Редактировать список покупателей
Меню «Отчёты» содержит команду:
- Отчёт о поступлении товаров за период
Меню «Настройки» содержит команды:
- Данные фирмы
Размещено на http://www.allbest.ru/
- Соединение с базой
Меню «Справка» предназначено для вызова руководства пользователя.
5.4.2 Форма оформления добавления партии товара
Рис 6.2 Форма для оформления добавления партии товара
На форме находятся элементы ввода для выбора поставщика, товара,
его стоимости и количества. Если усановленя опция «Распечатать отчёт», то
после нажатия кнопки «Сохранить» открывается форма предварительного
просмотра и приходной накладной, с возможностью последующей печати. В
группах «Поставщики» и «Товары» присутствуют кнопки «Новый» при
нажатии
на
поставщиков.
которые
открываются
диалоги
для
добавления
новых
Размещено на http://www.allbest.ru/
5.4.3 Форма оформления отправки партии товара
Рис 6.3 Форма для оформления продажи партии товара
На форме находятся элементы ввода для выбора покупателя товара,
количества товара, его стоимости. Если установлена опция «Распечатать
отчёт», то после нажатия кнопки «Сохранить» открывается форма
предварительного
просмотра
товарно-транспортной
накладной,
с
возможностью последующей печати. В группе «Покупатель» присутствует
кнопка «Новый» при нажатии на которую открывается диалог для
добавления новых покупателей. Значения счётчиков «Количество» и «Цена
единицы товара» устанавливаются автоматически в максимальное значение
для выбранного товара. Также есть возможность указать наценку в
процентах и складские или транспортные расходы. При выборе опции
«Распечатать отчёт» открывается диалоговое окно для предварительного
просмотра товарно-транспортной накладной с возможностью последующей
распечатки.
Имеется
возможность
накладную в формате .pdf.
сохранить
товарно-транспортную
Размещено на http://www.allbest.ru/
5.4.4
Форма
для
предварительного
просмотра
товарно
транспортной накладной
Рис
6.4
Форма
для
предварительного
просмотра
товарно
—
транспортной накладной
Товарно транспортная накладная печатается на бланке типовой
межотраслевой формы №1-Т, утвержденной постановлением Госкомстата
России от 28.11.97 №78. Кнопка «Печатать» служит для распечатки
накладной, кнопка «PDF» служит для экспорта в формат pdf.
Размещено на http://www.allbest.ru/
5.4.5 Форма ввода параметров отчёта
Форма предназначена для ввода параметров отчёта о количестве и
стоимости товаров, поступивших и выбывших со склада за период с
начальной даты по конечную дату. После нажатия на кнопку «Показать
отчёт» открывается диалоговое окно просмотра отчёта с возможностью
последующей распечатки.
Размещено на http://www.allbest.ru/
6. Заключение
В результате работы создано программное обеспечение, позволяющее
автоматизировать рутинные операции торгового склада по оформлению
приходных и товарно-транспортных накладных. Также разработанная
автоматизированная система обеспечивает простой и удобный доступ к
информации о имеющихся на складе товарах, к данным поставщиков и
покупателей.
В ходе выполнения курсовой работы были получены навыки
составления SQL запросов, изучены основные приёмы работы с средством
проектирования баз данных MS SQL Server Enterprise Manager.
Получить исходные тексты проекта Вы можете, связавшись с автором
по адресу strangera@mail.ru.
Размещено на http://www.allbest.ru/
Приложение 1
Текст команд на языке SQL.
/*Создание базы данных и таблиц*/
CREATE DATABASE warehouse;
USE warehouse;
CREATE TABLE supplier
(supplier_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
supplier_name VARCHAR(100),
supplier_address VARCHAR(255),
supplier_account VARCHAR(25),
supplier_inn INTEGER,
suppier_kpp INTEGER,
supplier_phone VARCHAR (20),
supplier_bank VARCHAR (255),
address_bank VARCHAR(255),
supplier_bik INTEGER,
cor_account VARCHAR(25),
okpo INTEGER,
director VARCHAR(255),
chief_accountant VARCHAR(255));
CREATE TABLE customer
(customer_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
customer_name VARCHAR(100),
customer_address VARCHAR(255),
customer_account VARCHAR(25),
customer_inn INTEGER,
suppier_kpp INTEGER,
customer_phone VARCHAR (20),
customer_bank VARCHAR (255),
Размещено на http://www.allbest.ru/
address_bank VARCHAR (255),
customer_bik INTEGER,
cor_account VARCHAR(25),
okpo INTEGER,
director VARCHAR(255),
chief_accountant VARCHAR(255));
CREATE TABLE goods
(goods_id INTEGER PRIMARY KEY IDENTITY(1,1),
goods_name VARCHAR(100),
price MONEY,
manufacturer VARCHAR(300),
quantity INTEGER,
unit VARCHAR (50),
massa INTEGER);
CREATE TABLE party_delivered
(party_id INTEGER PRIMARY KEY IDENTITY(1,1),
_date DATETIME,
supplier_id INTEGER,
price MONEY);
CREATE TABLE party_sold
(party_id INTEGER PRIMARY KEY IDENTITY(1,1),
_date DATETIME,
customer_id INTEGER,
price MONEY,
seria VARCHAR(10));
CREATE TABLE sent_goods
(ID INTEGER PRIMARY KEY IDENTITY(1,1),
goods_id INTEGER,
party_id INTEGER,
quantity INTEGER,
Размещено на http://www.allbest.ru/
price MONEY);
CREATE TABLE delivered_goods
(ID INTEGER PRIMARY KEY IDENTITY(1,1),
goods_id INTEGER,
party_id INTEGER,
quantity INTEGER,
price MONEY);
CREATE TABLE warehouse_data
(name VARCHAR(100),
address VARCHAR(255),
inn
INTEGER,
kpp
INTEGER,
phone VARCHAR(20),
account VARCHAR(25),
bank VARCHAR(255),
address_bank VARCHAR(255),
bik
INTEGER,
okpo INTEGER,
cor_account VARCHAR(25),
director VARCHAR(255),
Chief_accountant VARCHAR(255));
/*Заполнение таблиц*/
INSERT INTO supplier VALUES
(‘Поставщик №1’,
‘г. Астрахань, ул Третья, д 47’,
‘45654233334789d48’,
‘456789123’,
‘159987456’,
‘(8512) 12-58-95’,
‘Первый строительный’,
Размещено на http://www.allbest.ru/
‘г Астрахань, ул Бабушкина, д 57’,
‘465466545’,
‘45965456854sd987g89’,
‘15987456’,
‘Романов Н.Г.’,
‘Рыбнкова Г.П’);
INSERT INTO customer VALUES
(‘Покупатель № 1’,
‘г. Нижневартовск, ул Седьмая, д 14’,
‘45654233334789d48’,
‘456789123’,
‘159987456’,
‘(8512) 12-58-95’,
‘Банк Москвы’,
‘г Москва, ул Степашина, д 57’,
‘465466545’,
‘45965456854sd987g89’,
‘15987456’,
‘Смирнов К.С.’,
‘Иванова Г.П’);
INSERT INTO goods VALUES
(‘Товар 1’,
‘521.50’,
‘Производитель 1’,
‘5000’,
‘ящик’,
’20’);
INSERT INTO party_delivered VALUES
(’13.03.2009 15:35:01’,
‘1’,
Размещено на http://www.allbest.ru/
‘456.25’);
INSERT INTO party_delivered VALUES
(’14.03.2009 12:00:41’,
‘1’,
‘456.25’);
INSERT INTO sent_goods VALUES
(‘1’,
‘4’,
‘998’,
‘500’);
INSERT INTO delivered_goods VALUES
(‘1’,
‘4’,
‘365’,
‘456.25’);
INSERT INTO warehouse_data VALUES
(‘Центральный Астраханский склад торговой сети «Мастер+»’,
‘г. Астрахань, ул Перевозная, строение 77’,
‘15123456798’,
‘123456789’,
‘8512 65-98-41’,
‘d4fgd6g4fs5g65456’,
‘Первый строительный банк’,
‘г Астрахань, ул Лесная, Д 45’,
‘546542364556’,
‘12345678’,
‘fds4f56df4s5gf646’,
‘Степанов Н. К’,
‘Гиреева С.Т.’);
/*Запросы на выборку данных*/
Размещено на http://www.allbest.ru/
SQL запросы используемые при оформлении приходной накладной:
/*Получение реквизитов склада */
SELECT * FROM warehouse_data;
/*Выборка данных о товарах, прибывших в составе партии товара*/
SELECT
goods.goods_name,
delivered_goods.quantity,
goods.unit,
delivered_goods.price,
(delivered_goods.quantity*delivered_goods.price)
FROM goods, delivered_goods WHERE (delivered_goods.party_id='1') AND
(delivered_goods.goods_id = goods.goods_id);
В запросе происходит выборка количества и стоимости товаров, из
таблицы «закупленные товары» (delivered_goods) для всех записей, где поле
party_id равно идентификатору пришедшей партии (в примере номер партии
товара равен 1); к тому же для каждой записи происходит выборка
наименований товаров и единицы их измерения из таблицы «товары»
(goods).
Выражение
(delivered_goods.quantity
*
delivered_goods.price)
вычисляет сумму для каждого товара.
SQL запросы используемые при оформлении товарно-транспортной
накладной:
/*Получение реквизитов склада */
SELECT * FROM warehouse_data;
/*Выборка данных о товарах, вошедших в состав проданной партии
товара*/
SELECT
sent_goods.quantity,
goods.goods_name,
goods.unit,
(sent_goods.quantity*sent_goods.price)
sent_goods.price,
FROM
goods,
sent_goods WHERE (sent_goods.party_id= '1') AND (sent_goods.goods_id =
goods.goods_id);
Здесь происходит выборка данных о товаре, вошедшем в проданную
партию, аналогично запросу выборки данных о товарах, прибывших в
составе партии товара, описанному выше.
/*Получение реквизитов покупателя*/
Размещено на http://www.allbest.ru/
SELECT
customer.customer_name,
customer.customer_account,
customer.customer_phone,
customer.customer_address,
customer.customer_INN,
customer.customer_kpp,
customer.customer_bank,
customer.address_bank,
customer.customer_bik,
customer.cor_account,
customer.okpo,
customer.chief_accountant, customer.director, party_sold.customer_id FROM
customer, party_sold WHERE (party_sold.customer_id = customer.customer_id)
AND (party_sold.party_id =126);
Здесь происходит выборка реквизитов покупателя партии товара.
/*Получение количества и стоимости товара с идентификатором 3,
прибывшего на склад после 22.03.2009 (подобные запросы используются при
построении отчёта)*/
SELECT
sum(delivered_goods.quantity
,sum(delivered_goods.quantity)FROM
*
delivered_goods.price)
delivered_goods,
party_delivered
WHERE(delivered_goods.party_id
=party_delivered.party_id)AND(datepart(day,party_delivered._date)
AND(datepart(month,
party_delivered._date)>=
3
)
>
22
)
AND(datepart(year,
party_delivered._date) = 2009 ) AND (delivered_goods.goods_id = 3);
Размещено на http://www.allbest.ru/
Приложение 2
Экранные формы (результаты выполнения запросов)
Размещено на Allbest.ru
Download