Форма предназначена для ввода параметров отчёта о количестве и стоимости товаров, поступивших и выбывших со склада за период с начальной даты по конечную дату. После нажатия на кнопку «Показать отчёт» открывается диалоговое окно просмотра отчёта с возможностью последующей распечатки.
Заключение
В результате работы создано программное обеспечение, позволяющее автоматизировать рутинные операции торгового склада по оформлению приходных и товарно-транспортных накладных. Также разработанная автоматизированная система обеспечивает простой и удобный доступ к информации о имеющихся на складе товарах, к данным поставщиков и покупателей.
В ходе выполнения курсовой работы были получены навыки составления SQL запросов, изучены основные приёмы работы с средством проектирования баз данных MS SQL Server Enterprise Manager.
Получить исходные тексты проекта Вы можете, связавшись с автором по адресу strangera@mail.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),
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,
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’,
‘Первый строительный’,
‘г Астрахань, ул Бабушкина, д 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’,
‘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’,
‘Степанов Н. К’,
‘Гиреева С.Т.’
);
/*Запросы на выборку данных*/
SQL запросы используемые при оформлении приходной накладной:
/*Получение реквизитов склада */
SELECT * FROM warehouse_data;
/*Выборка данных о товарах, прибывших в составе партии товара*/
SELECT goods.goods_name, goods.unit, delivered_goods.price, delivered_goods.quantity, (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 goods.goods_name, goods.unit, sent_goods.price, sent_goods.quantity, (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_address, customer.customer_account, customer.customer_INN, customer.customer_kpp, customer.customer_phone, 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 * delivered_goods.price) ,sum(delivered_goods.quantity)FROM delivered_goods, party_delivered WHERE(delivered_goods.party_id =party_delivered.party_id)AND(datepart(day,party_delivered._date) > 22 ) AND(datepart(month, party_delivered._date)>= 3 ) AND(datepart(year, party_delivered._date) = 2009 ) AND (delivered_goods.goods_id = 3);
Приложение 2
Экранные формы (результаты выполнения запросов)
Дата: 2019-12-22, просмотров: 222.