Помощь в написании студенческих работ
Антистрессовый сервис

База данных склада

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Основная форма имеет три основных элемента: строка меню, элемент отображения данных с навигацией и панель управления данными. В строке меню расположены элементы управления для доступа к справочникам и книге остатков, форме формирования отчета, а также находится кнопка выхода из приложения. Элемент отображения данных служит для отображения данных по заявкам, их добавления и редактирования, а также… Читать ещё >

База данных склада (реферат, курсовая, диплом, контрольная)

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

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

Схема данных приведена на рисунке 1.

Справочник материалов

Справочник подразделений

Номенклатурный номер (PK)

Код подразделения (PK)

Наименование

Наименование подразделения

Цена

Заявки

Остатки материалов

Уникальный идентификатор (PK)

Номенклатурный номер (PK/FK)

Номер заявки

Дата

Количество

Код подразделения (FK)

Зарезервированно

Номенклатурный номер (FK)

Количество

Рисунок 1 — Схема базы данных Описание сущностей представленный в таблицах 1−4.

Таблица 1 — Сущность Справочник подразделений (Unit)

Наименование атрибута

Имя поля БД

Тип поля

Дополнительные характеристики

Код подразделения

Unit_ID

I

PK

Наименование подразделения

Unit_Name

A (50)

Таблица 2 — Сущность Справочник материалов (Materials)

Наименование атрибута

Имя поля БД

Тип поля

Дополнительные характеристики

Номенклатурный номер

Mat_N

I

PK

Наименование материала

Mat_Name

A (50)

Цена за единицу

Mat_Price

$

Таблица 3 — Сущность Остатки материалов (Ostastok)

Наименование атрибута

Имя поля БД

Тип поля

Дополнительные характеристики

Номенклатурный номер

Ost_Nmat

I

PK

Количество

Ost_Count

I

Резерв

Ost_reserv

I

Таблица 4 — Сущность Заявки (Request)

Наименование атрибута

Имя поля БД

Тип поля

Дополнительные характеристики

Уникальный идентификатор

Req_ID

PK

Номер заявки

Req_N

I

Дата

Req_D

D

Код подразделения

Req_UnitID

I

Номенклатурный №

Req_Nmat

I

Количество

Req_Count

N

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

Таблица 5 — Описание индексов

Таблица

Имя индекса

Поля

Unit

idxUnit_ID

Unit_ID

Materials

idxMat_N

Mat_N

idxMat_Name

Mat_Name

Ostatok

idxOst_Nmat

Ost_Nmat

Request

idxReq_ID

Req_ID

idxReq_N

Req_N

idxReq_Dat

Req_Dat

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

Таблица 6 — Правила контроля полей

Таблица

Поле

Правило контроля

Unit

Unit_ID

Minimum value=1

Materials

Mat_N

Minimum value=1

Mat_Price

Minimum value=0

Ostatok

Ost_Count

Minimum value=0

Ost_Reserv

Minimum value=0, Value< Ost_Count. Value

Request

Req_N

Minimum value=1

Req_Count

Minimum value=0

2. Описание программного проекта

Программный проект Warhouse включает в себя следующие файлы:

1. Файл проекта: Warhouse. dpr

2. Файлы форм: uDM. dfm, uMat. dfm, uEdMat. dfm, uUnit. dfm, uEdUnit. dfm, uOstatok. dfm, uRptConf. dfm, uRpt. dfm, uWH. dfm

3. Файлы программных подулей: uDM. pas, uMat. pas, uEdMat. pas, uUnit. pas, uEdUnit. pas, uOstatok. pas, uRptConf. pas, uRpt. pas, uWH. pas

Формы предназначены для вывода графических элементов интерфейса для взаимодействия с пользователем. Их назначения описаны в таблице 6.

Таблица 6 — Описания файлов форм проекта

Имя файла формы

Назначение

uDM

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

uMat

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

uEdMat

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

uUnit

Предназначена для работы со справочником подразделений

uEdUnit

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

uOstatok

Предназначена для работы с информацией по остаткам

uRptConf

Предназначена для указания параметров формирования отчета

uRpt

Макет отчета

uWH

Предназначена для работы с информацией по заявкам, а также является главной формой, реализует доступ ко всем функциям проекта.

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

Таблица 6 — Описания файлов форм проекта

Имя модуля

Назначение

uDM

Модуль данных

uMat

Хранит алгоритм работы со справочником материалов

uEdMat

Хранит алгоритм редактирования справочника материалов и добавления в него новых записей

uUnit

Хранит алгоритм работы со справочником подразделений

uEdUnit

Хранит алгоритм редактирования справочника подразделений и добавления в него новых записей

uOstatok

Хранит алгоритм работы с информацией по остаткам

uRptConf

Хранит алгоритм указания параметров формирования отчета

uRpt

Хранит алгоритм построения макета отчета

uWH

Хранит алгоритм работы с информацией по заявкам, а также алгоритм построения отчета

3. Описание алгоритма формирования отчета

Алгоритм формирования отчета имеет следующий вид:

1. Вывод окна для задания параметров отчета. Если нажата кнопка «Отмена» — выход из процедуры. Если номер начала диапазона заявок больше номера конца диапазона то вывод сообщения об ошибке и выход из процедуры.

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

а) Создание полей временной таблицы. Описания полей приведены в таблице 8.

Таблица 8 — Поля временной таблицы

Имя поля

Описание

Тип

MatN

Номенклатурный номер

I

MatName

Наименование материала

A (50)

SvOst

Свободный остаток

N

Zak

Заказано подразделениями

N

Sum

Сумма недостачи

N

б) Создание индексов временной таблицы. Описания индексов приведены в таблице 9.

Таблица 9 — Индексы временной таблицы

Имя индекса

Поле

Опции

MatN

ixPrimary

idxSum

Sum

ixDescending

в) Установка индекса по ключевому полю как текущего.

3. Открытие временной таблицы.

4. В цикле просматриваются строки таблицы «Заявки».

а) По коду товара ищется запись в таблице остатков. Если запись не найдена, то свободный остаток для материала равен нулю.

б) Проверяем запись на соответствие параметрам отчета: номер входит в диапазон, заявка испытывает нехватку материалов.

в) Проверяем наличие во временной таблице записи с номенклатурным номером в текущей строке.

г) Если такой записи нет, то добавляем, если есть-то переводим временную таблицу в режим редактирования.

д) Корректируем значения полей «Свободный остаток», «Заказано подразделениями», «Сумма недостачи».

5. Заполняем заголовок отчета.

6. Устанавливаем индекс idxsum как текущий.

7. Выводим отчет в режиме Priview.

8. Закрываем временную таблицу.

Блок-схема процедуры формирования отчета представлена на рисунках 2−2б.

Рисунок 2 — Блок-схема процедуры формирования отчета Листинг процедуры формирования отчета представлен в разделе 7, в исходном тексте модуля uWH.

4. Руководство программиста

Для установки программы необходимо разместить исполняемый файл Warhouse. exe данных в папке C: Program FilesWarhouse.

Файлы базы данных необходимо разместить в каталоге C: Program FilesWarhousedb. После этого необходимо в программе BDE Administrator создать псевдоним для обращения к базе данных. Псевдоним должен иметь имя WarhouseDB и в поле Path должен быть указан путь размещения файлов базы данных (C:Program FilesWarhousedb). Также, драйвер работы с файлами Paradox, должен быть сконфигурирован для работы с кириллицей.

Ярлык приложения необходимо разместить в удобном для пользователя месте (например на рабочем столе), в качестве объекта указать путь к исполняемому файлу (C:Program FilesWarhouseWarhouse. exe), именем ярлыка установить «Склад материальных ценностей».

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

Запуск программы осуществляется с рабочего стола, путем двойного клика по ярылку с именем «Склад материальных ценностей». После запуска программы открывается основная форма. Вид основной формы представлен на рисунке 3.

Рисунок 3 — Вид основной формы программы

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

Для добавления записи необходимо кликнуть по кнопке «+» на панели навигации. При добавлении новой записи, а также редактировании, необходимо чтобы все поля были заполнены. Код подразделения, а также номенклатурный номер материала можно ввести с клавиатуры, но также имеется возможность выбрать значение из выпадающего списка справа. При этом в незаполненном поле автоматически появится значение: при вводе с клавиатуры в поле выпадающего списка, при выборе пункта выпадающего списка — в поле ввода. Пример представлен на рисунке 4.

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

В панели управления данными имеется три вкладки: поиск, фильтрация и групповое изменение. На вкладке «Поиск» осуществляется поиск по заявкам. Внешний вид вкладки представлен на рисунке 5.

Рисунок 5 — Вкладка «Поиск»

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

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

Поиск по количеству аналогичен поиску по номеру заявки.

На вкладке «Фильтрация» можно указать условия отображения заявок для удобного редактирования, а также для осуществления поиска какой либо заявки. Внешний вид вкладки представлен на рисунке 6.

Рисунок 6 — Вкладка «Фильтрация»

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

Для фильтрации по материалам необходимо ввести номенклатурный номер материала, заявки по которому должны быть отображены и кликнуть по кнопке «Выбрать». При этом кнопка примет вдавленный вид.

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

Фильтрация может осуществляться по всем параметрам одновременно.

На вкладке «Групповое изменение» представлена возможность удаления заявок из базы данных, а также группового изменения объема заявки, в зависимости от стоимости. Внешний вид вкладки представлен на рисунке 7.

Рисунок 7 — Вкладка «Групповое изменение»

Для снижения объема заявки в зависимости от суммы необходимо ввести сумму и количество единиц, на которое будут уменьшены заявки. Если стоимость заявки выше введенной суммы, то ее объем будет уменьшен на введенное количество.

При удалении заявок необходимо указать либо № начальной заявки, либо конечной, либо и начальной и конечной. В зависимости от введенных значений будет выбран диапазон, и все заявки находящиеся в этом диапазоне будут удалены.

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

По справочникам можно осуществлять поиск по наименованию материала. Если отмечен пункт «Учитывать регистр» то поиск будет осуществляться с учетом регистра. Если отмечен пункт «Приближенно» то будет найден тот материал, в наименовании которого встречается поисковой запрос.

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

Рисунок 8 — Форма справочника «Материалы»

При добавлении / редактировании записи в справочнике открывается форма изменения записи. Все поля в ней должны быть заполнены, для сохранения целостности в базе данных. Номенклатурный (код подразделения) должен быть уникальным. Форма изменения приведена на рисунке 9.

Рисунок 8 — Форма изменения справочника «Материалы»

Для формирования отчета о потребностях необходимо на главной форме в основном меню выбрать пункт «Отчеты», из подчиненного меню выбрать отчет о потребностях. На экране появится форма для ввода параметров отчета. Форма приведена на рисунке 9.

Рисунок 9 — Форма «Параметры отчета»

В форме указывается диапазон заявок, по которым будет сформирован отчет. Начальное значение должно быть меньше конечного, оба значения должны быть заполнены. При нажатии кнопки «Сформировать» будет сформирован отчет, при нажатии кнопки «Отмена» или закрытии формы отчет выводиться не будет. Пример формирования отчета приведен в разделе 6.

6. Описание контрольного примера

Для демонстрации работы программы таблицы были заполнены данными контрольного примера. Содержание таблиц базы данных приведены в таблицах 10−13.

Таблица 10 — Содержание таблицы Unit

Unit_ID

UnitName

Отдел ИКТ

Цех № 1

Цех № 2

Бухгалтерия

Отдел охраны

ОТК

Отдел продаж

Цех № 3

Таблица 11 — Содержание таблицы Materials

Mat_N

Mat_Name

Mat_Price

Цемент

250,00 р.

Витая пара

780,00 р.

Сетевой фильтр

120,00 р.

Шихта

298,00 р.

Гарнитура

150,00 р.

Таблица 12 — Содержание таблицы Ostatok

Ost_Nmat

Ost_Count

Ost_reserv

10,00

2,00

8,00

6,00

11,00

9,00

40,00

12,00

3,00

0,00

Таблица 13 — Содержание таблицы Request

Req_ID

Req_N

ReqDat

Req_UnitID

Req_Nmat

Req_Count

21.12.2012

159,00

22.12.2012

149,00

23.12.2012

5,00

24.12.2012

12,00

25.12.2012

2,00

При формировании отчета в качестве параметров программа запрашивает диапазон номеров заявок. В данном контрольном примере был взят диапазон от 25 678 до 25 682.

7. Текст программы

Исходный текст модуля uDM:

unit uDM;

interface

uses

SysUtils, Classes, DB, DBTables;

type

TDM = class (TDataModule)

warhouseDB: TDatabase;

tblUnit: TTable;

tblMaterials: TTable;

tblOstatok: TTable;

tblRequest: TTable;

dsUnit: TDataSource;

dsMaterials: TDataSource;

dsOstatok: TDataSource;

dsRequest: TDataSource;

tblUnitUnit_ID: TIntegerField;

tblUnitUnit_Name: TStringField;

tblMaterialsMat_N: TIntegerField;

tblMaterialsMat_Name: TStringField;

tblMaterialsMat_Price: TCurrencyField;

tblOstatokOst_Nmat: TIntegerField;

tblRequestReq_ID: TAutoIncField;

tblRequestReq_N: TIntegerField;

tblRequestReq_Dat: TDateField;

tblRequestReq_UnitID: TIntegerField;

tblRequestReq_Nmat: TIntegerField;

tblRequestReq_Count: TFloatField;

tblRequestlkpUnitName: TStringField;

tblRequestlkpMatName: TStringField;

tblRequestcalStoim: TFloatField;

tblOstatoklkpNmat: TStringField;

tblRpt: TTable;

tblOstatokOst_reserv: TFloatField;

tblOstatokOst_Count: TFloatField;

procedure tblRequestCalcFields (DataSet: TDataSet);

procedure tblRequestFilterRecord (DataSet: TDataSet;

var Accept: Boolean);

procedure tblOstatokOst_reservValidate (Sender: TField);

private

{Private declarations}

public

{Public declarations}

end;

var

DM: TDM; Filt: String;

implementation

{$R *.dfm}

procedure TDM. tblRequestCalcFields (DataSet: TDataSet);

begin

tblMaterials. FindKey ([tblRequest. FieldByName ('Req_Nmat')]);

tblRequestcalStoim.asFloat:=tblRequestReq_Count.asFloat*tblMaterials. FieldByName ('Mat_Price').AsFloat;

end;

procedure TDM. tblRequestFilterRecord (DataSet: TDataSet;

var Accept: Boolean);

begin

if (uDM. Filt='') then exit else

Accept:= (tblRequest ['Req_Nmat']=uDM. Filt);

end;

procedure TDM. tblOstatokOst_reservValidate (Sender: TField);

begin

if ((Sender as TField).Value >tblOstatok. FieldByName ('Ost_Count').Value) then raise

exception. Create ('Резерв не может быть больше количества!');

end;

end.

Исходный текст модуля uEdMat:

unit uEdMat;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TfrmEdMat = class (TForm)

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

btnOK: TButton;

btnCancel: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBEdit3: TDBEdit;

private

{Private declarations}

public

{Public declarations}

end;

var

frmEdMat: TfrmEdMat;

implementation

uses uDM;

{$R *.dfm}

end.

Исходный текст модуля uEdUnit:

unit uEdUnit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TfrmEdUnit = class (TForm)

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

btnOK: TButton;

btnCancel: TButton;

Label1: TLabel;

Label2: TLabel;

private

{Private declarations}

public

{Public declarations}

end;

var

frmEdUnit: TfrmEdUnit;

implementation

uses uDM;

{$R *.dfm}

end.

Исходный текст модуля uMat:

unit uMat;

interface

uses

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

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

type

TfrmMat = class (TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

btnAdd: TButton;

btnEdit: TButton;

Panel2: TPanel;

DBGrid1: TDBGrid;

Panel3: TPanel;

edLocate: TEdit;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

btnLocate: TButton;

Label1: TLabel;

procedure FormShow (Sender: TObject);

procedure btnAddClick (Sender: TObject);

procedure btnEditClick (Sender: TObject);

procedure btnLocateClick (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

frmMat: TfrmMat;

implementation

uses uDM, uEdMat, DB;

{$R *.dfm}

procedure TfrmMat. FormShow (Sender: TObject);

begin

if not dm.tblMaterials. Active then dm.tblMaterials. Open;

end;

procedure TfrmMat. btnAddClick (Sender: TObject);

begin

Выводы

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

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

Список источников

1. Карпова Т. С. Базы данных: модели, разработка. — СПб.: Питер, 2001, 304 с.

2. Фаронов В. В. Программирование баз данных в Delphi 7: Учебный курс. — СПб.: Питер, 2004 — 464 с.

3. Кренке Д. Теория и практика построения баз данных: [пер. с англ] / Д. Кренке. — 9 — е изд. — СПб.: Питер, 2005. — 858 с.

4. Delphi 2006 на примерах (+ CD-ROM): Владимир Шупрута — Москва, БХВ-Петербург, 2006 г. — 528 с.

5. Delphi 7. Основы программирования. Решение типовых задач. Самоучитель: Л. М. Климова — Санкт-Петербург, КУДИЦ-Образ, 2006 г. — 480 с.

6. Delphi в задачах и примерах (+ CD-ROM): Никита Культин — Москва, БХВ-Петербург, 2008 г. — 288 с.

7. Delphi. Профессиональное программирование: Дмитрий Осипов — Москва, Символ-Плюс, 2006 г. — 1056 с.

8. Turbo Delphi для новичков и не только: С. А. Любавин — Санкт-Петербург, НТ Пресс, 2008 г. — 320 с.

9. Основы программирования в интегрированной среде DELPHI: А. Желонкин — Москва, Бином. Лаборатория знаний, 2004 г. — 240 с.

10. Основы программирования в интегрированной среде Delphi. Практикум: А. Желонкин — Санкт-Петербург, Бином. Лаборатория знаний, 2006 г. — 240 с.

11. Программирование в Turbo Pascal. Переход к Delphi (+ CD-ROM): Ю. А. Шпак — Санкт-Петербург, МК-Пресс, 2006 г. — 416 с.

12. Программируем в Turbo Delphi: С. А. Любавин — Москва, НТ Пресс, 2008 г. — 320 с.

Показать весь текст
Заполнить форму текущей работой