Учет хранения и движения продукции фирмы

Минский Государственный профессионально-технический колледж электроники















КУРСОВАЯ РАБОТА



ТЕМА: Учет хранения и движения продукции фирмы













Выполнила Фарзалиева Л.

Проверил Шавейко А. А.

















Минск 2006


СОДЕРЖАНИЕ



Введение

1. Анализ задачи

1.1 Описание предметной области 	

1.2 Модель данных

1.3 Среда разработки

1.4 Требования к программе

2. Проектирование задачи

2.1 Организация данных

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

2.3 Алгоритм работы

2.4 Выходные документы

3. Применение

3.1 Назначение программы

3.2 Инструкции пользователю

Заключение

Список используемой литературы

Приложение 1

ПРиложение 2


Введение



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

		
Анализ задачи



1.1 Описание предметной области



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

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



1.2 Модель данных



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

В конце 60-х годов появились работы, в которых обсуждались возможности применения различных табличных даталогических моделей данных, т.е. возможности использования привычных и естественных способов представления данных. Наиболее значительной из них была статья сотрудника фирмы IBM д-ра Э.Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), где, вероятно, впервые был применен термин "реляционная модель данных". 

Будучи математиком по образованию Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение – relation (англ.). 

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

Доменом называется множество атомарных значений одного и того же типа. Смысл доменов состоит в следующем. Если значения двух атрибутов берутся из одного и того же домена, то, вероятно, имеют смысл сравнения, использующие эти два атрибута (например, для организации транзитного рейса можно дать запрос "Выдать рейсы, в которых время вылета из Москвы в Сочи больше времени прибытия из Архангельска в Москву"). Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?

Степень отношения – это число его атрибутов. Отношение степени один называют унарным, степени два – бинарным, степени три – тернарным, а степени n – n-арным. 

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

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

Отношение – Таблица (иногда Файл),

Кортеж – Строка (иногда Запись),

Атрибут – Столбец, Поле. 

При этом принимается, что "запись" означает "экземпляр записи", а "поле" означает "имя и тип поля".



1.3 Среда разработки



Курсовой проект был выполнен на языке программирования Borland Delphi 7.0. Таблицы разрабатывались в приложении Database Desktop. Для более понятного и удобного интерфейса использовались такие компоненты как DBGrid, DBNavigator. Запросы создавались с помощью компонента Query. А отчёты на основе запросов с помощью компонентов RvQueryConnection и RvProject в приложении Rave Designer. 



1.4 Требования к программе



Программа совместима с операционными системами Windows 95/98/ME/ /2000/XP. Для работы данной программы необходим ПК, имеющий следующие характеристики: 

Операционная система Windows 95 и выше;

Процессор не ниже Pentium 100;

Емкость ОЗУ не ниже 32 Мб;

Диск 3,5” или CD-ROM 4-x;

16 Мбайт свободного места на жестком диске;


2. Проектирование задачи



2.1 Организация данных



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

- “Product” – перечень ассортимента продукции фирмы

- “Distributions” – информация о сотрудниках фирмы

- “Sclad” – сведения о наличии товара на складе

- “Tovar_dvijenie” – сведения об отгрузке товара

Структуры таблиц приведены в таблицах 1.1, 1.2, 1.3, 1.4 





Таблица 1.1 - «Product»



PKod – код продукта

PNaimenovanie – название продукта

POb’em – объем продукта

PCena – цена продукта в рублях




Таблица 1.3 - «Sclad»



SKod – код продукта

SNaimenovanie – название продукта

SDataPolych – дата получения продукта на склад

SGoden_do – срок истечения годности продукта

SKolichestvo – количество единиц прибывшего продукта

SCena – цена продукта в рублях

SSymma – общая сумма по данному продукту





Таблица 1.2 - «Distributions»



DID – личный номер сотрудника

DFamiliya – фамилия

DImya - имя

DOtchestvo - отчество

DDataRojd – дата рождения

DStrana - страна

DIndex - индекс

DGorod = город

DAdres - адрес

DDomTel домашний телефон

DRabTel – рабочий телефон

DE-mail – электронная почта

DDataDog – дата подписания договора с компанией





Таблица 1.4 - «Tovar_dvijenie»



Kod – номер п/п

TID - личный номер сотрудника

TDataOtgr – дата отгрузки продукта

TKod - код продукта

TNaimenovanie - название продукта

TKolichestvo - количество

TCena – цена в рублях


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



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

1) Учет информации об ассортименте продукции

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

			Учет сведений о дистебьютерах фирмы

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

			Учет принятых товаров

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

			Учет хранения товаров и его движения

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


2.3 Алгоритм работы



Вывод данных.

Редактирование данных.



 База данных.



Ввод данных.























	2.4 Выходные документы

	

Выходными документами в данной программе являются отчёты, построенные на основе SQL запросов. Предусмотренные в программе отчёты приведены в приложении 2.


3 Применение



			Назначение программы



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



				Инструкция пользователю

	

	Для того чтобы начать работу с программой, необходимо запустить файл Baza.exe. После этого запуститься главная форма. Для того, чтобы начать работу с данными таблиц, необходимо нажать на кнопку «Таблицы» и на появившемся окне выбрать нужную таблицу. Далее таблицы можно редактировать, вносить изменения, качающиеся только входной и выходной информации. Для удобного изменения и обновления данных таблиц на нижней панели форм расположен навигатор (рис. 1).

	

	

	Рис. 1 - Навигатор

	

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

	



 

Кнопка

Обозначение

Действие







К первой

nbFirst

Указатель текущей записи перемещается к первой записи файла данных







К предыдущей

nbPrior

Указатель текущей записи перемещается к предыдущей записи файла данных







К следующей

nbNext

Указатель текущей записи перемещается к следующей записи файла данных







К последней

nbLast

Указатель текущей записи перемещается к последней записи файла данных







Добавить

nblnsert

В файл данных добавляется новая запись







Удалить

nbDelete

Удаляется текущая запись файла данных







Редактирование

nbEdit

Устанавливает режим редактирования текущей записи







Сохранить

nbPost

Изменения, внесенные в текущую запись, записываются в файл данных







Отменить

Cancel

Отменяет внесенные в текущую запись изменения







Обновить

nbRefresh

Записывает внесенные изменения в файл



	

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

	Чтобы узнать о наличии данного продукта на складе, необходимо воспользоваться отчетом. Рядом с надписью «Поиск товара» нажмите на кнопку «ОК». Выскочит диалоговое окно, где нужно ввести название интересующего товара. После чего появится форма с отчетом о наличии товара на складе. 

	Для выхода из программы нажмите кнопку «Close».


Заключение



В ходе выполнения работы были закреплены знания по созданию и проектированию баз данных в среде Borland Delphi 7, а также приобретены практические навыки в создании программных приложений на данном языке программирования.

Результатом проделанной работы является база данных «Baza» выполняющая все необходимые задачи данного курсового проекта.

	
Список используемой литературы

	

	В.В. Фараонов Delphi. Программирование на языке высокого уровня. – СПб: Питер, 2004.

	ERwin — современное средство проектирования баз данных - http://www.interface.ru

	Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. –СПб.: Питер, 1997.

	Шкрыль А.А. Разработка клиент-серверных приложений в Delphi. – СПб.: БХВ-Петербург, 2006.


Приложение 1



	unit Glavnaya;

	interface

	uses

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

	Dialogs, Buttons, StdCtrls, jpeg, ExtCtrls;

	type

	TForm1 = class(TForm)

	Button1: TButton;

	BitBtn1: TBitBtn;

	Image1: TImage;

	Image2: TImage;

	Image3: TImage;

	procedure Button1Click(Sender: TObject);

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	Form1: TForm1;

	implementation

	uses Product, Vibor_tabl;

	{$R *.dfm}

	procedure TForm1.Button1Click(Sender: TObject);

	begin

	Form4.show;

	end;

	end.

	unit Product;

	interface

	uses

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

	Dialogs, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, DB,

	DBTables;

	type

	TForm2 = class(TForm)

	Panel1: TPanel;

	Panel2: TPanel;

	Panel3: TPanel;

	DBGrid1: TDBGrid;

	DBGrid2: TDBGrid;

	DBNavigator1: TDBNavigator;

	BitBtn1: TBitBtn;

	Label1: TLabel;

	Button1: TButton;

	Button2: TButton;

	procedure Button1Click(Sender: TObject);

	procedure Button2Click(Sender: TObject);

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	Form2: TForm2;

	implementation

	uses DM1, Zapros_tovar;

	{$R *.dfm}

	procedure TForm2.Button1Click(Sender: TObject);

	begin

	Form3.Query1.Close;

	Form3.Query1.Params[0].AsString:=InputBox('Zapros', 'Введите название товара','0');

	Form3.Query1.Open;

	Form3.Show;

	end;

	procedure TForm2.Button2Click(Sender: TObject);

	begin

	RvProject1.Execute

	end;

	end.

	unit Vibor_tabl;

	interface

	uses

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

	Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;

	type

	TForm4 = class(TForm)

	Button1: TButton;

	Button2: TButton;

	BitBtn1: TBitBtn;

	Image1: TImage;

	Image2: TImage;

	Image3: TImage;

	procedure Button1Click(Sender: TObject);

	procedure Button2Click(Sender: TObject);

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	Form4: TForm4;

	implementation

	uses Product, Distributions;

	{$R *.dfm}

	procedure TForm4.Button1Click(Sender: TObject);

	begin

	Form2.show;

	end;

	procedure TForm4.Button2Click(Sender: TObject);

	begin

	Form5.show;

	end;

	end.

	unit Zapros_tovar;

	interface

	uses

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

	Dialogs, DB, DBTables, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;

	type

	TForm3 = class(TForm)

	Panel1: TPanel;

	Panel2: TPanel;

	DBGrid1: TDBGrid;

	Query1: TQuery;

	DataSource1: TDataSource;

	BitBtn1: TBitBtn;

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	Form3: TForm3;

	implementation

	{$R *.dfm}

	end.

	unit Distributions;

	interface

	uses

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

	Dialogs, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls;

	type

	TForm5 = class(TForm)

	Panel1: TPanel;

	Panel2: TPanel;

	Panel3: TPanel;

	DBGrid1: TDBGrid;

	DBGrid2: TDBGrid;

	DBNavigator1: TDBNavigator;

	BitBtn1: TBitBtn;

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	Form5: TForm5;

	implementation

	{$R *.dfm}

	end.

	unit DM1;

	interface

	uses

	SysUtils, Classes, DB, DBTables, RpCon, RpConDS, RpConBDE, RpBase,

	RpSystem, RpDefine, RpRave;

	type

	TD1 = class(TDataModule)

	Database1: TDatabase;

	Product: TTable;

	Sclad: TTable;

	DataSource1: TDataSource;

	DataSource2: TDataSource;

	ProductPKod: TAutoIncField;

	ProductPNaimenovanie: TStringField;

	ProductPObem: TStringField;

	ProductPCena: TCurrencyField;

	ScladSKod: TIntegerField;

	ScladSNaimenovanie: TStringField;

	ScladSDataPolych: TDateField;

	ScladSGoden_do: TDateField;

	ScladSKolichestvo: TSmallintField;

	ScladSCena: TCurrencyField;

	ScladSSymma: TCurrencyField;

	RvProject1: TRvProject;

	RvSystem1: TRvSystem;

	RvTableConnection1: TRvTableConnection;

	private

	Private declarations }

	public

	{ Public declarations }

	end;

	var

	D1: TD1;

	implementation

	{$R *.dfm}

	end.

	unit DM2;

	interface

	uses

	SysUtils, Classes, DB, DBTables;

	type

	TD2 = class(TDataModule)

	Database1: TDatabase;

	Distributions: TTable;

	Tovar_dvijenie: TTable;

	DataSource1: TDataSource;

	DataSource2: TDataSource;

	DistributionsDID: TAutoIncField;

	DistributionsDFamiliya: TStringField;

	DistributionsDImya: TStringField;

	DistributionsDOtchestvo: TStringField;

	DistributionsDDataRojd: TDateField;

	DistributionsDStrana: TStringField;

	DistributionsDIndex: TStringField;

	DistributionsDGorod: TStringField;

	DistributionsDAdres: TStringField;

	DistributionsDDomTel: TStringField;

	DistributionsDRabTel: TStringField;

	DistributionsDEmail: TStringField;

	DistributionsDDataDog: TDateField;

	Tovar_dvijenieKod: TIntegerField;

	Tovar_dvijenieTKod: TIntegerField;

	Tovar_dvijenieTID: TIntegerField;

	Tovar_dvijenieTDataOtgr: TDateField;

	Tovar_dvijenieTNaimeovanie: TStringField;

	Tovar_dvijenieTKolichestvo: TSmallintField;

	Tovar_dvijenieTCena: TCurrencyField;

	private

	{ Private declarations }

	public

	{ Public declarations }

	end;

	var

	D2: TD2;

	implementation

	{$R *.dfm}

	end.

	
Приложение 2