Имя индекса
|
Поле
|
Опции
|
|
MatN
|
ixPrimary
|
idxSum
|
Sum
|
ixDescending
|
в) Установка индекса по ключевому
полю как текущего.
. Открытие временной таблицы.
. В цикле просматриваются строки
таблицы «Заявки».
а) По коду товара ищется запись в
таблице остатков. Если запись не найдена, то свободный остаток для материала
равен нулю.
б) Проверяем запись на соответствие
параметрам отчета: номер входит в диапазон, заявка испытывает нехватку
материалов.
в) Проверяем наличие во временной
таблице записи с номенклатурным номером в текущей строке.
г) Если такой записи нет, то
добавляем, если есть-то переводим временную таблицу в режим редактирования.
д) Корректируем значения полей
«Свободный остаток», «Заказано подразделениями», «Сумма недостачи».
. Заполняем заголовок отчета.
. Устанавливаем индекс idxsum как текущий.
. Выводим отчет в режиме Priview.
. Закрываем временную таблицу.
Блок-схема процедуры формирования
отчета представлена на рисунках 2-2б.
Рисунок 2 - Блок-схема
процедуры формирования отчета
Листинг процедуры
формирования отчета представлен в разделе 7, в исходном тексте модуля uWH.
4. Руководство
программиста
Для установки программы
необходимо разместить исполняемый файл Warhouse.exe данных в папке C:\Program Files\Warhouse.
Файлы базы данных
необходимо разместить в каталоге C:\Program Files\Warhouse\db. После этого необходимо в программе BDE Administrator создать псевдоним для обращения к
базе данных. Псевдоним должен иметь имя WarhouseDB
и в поле Path должен быть указан путь размещения файлов базы данных (C:\Program
Files\Warhouse\db). Также, драйвер работы с файлами Paradox,
должен быть сконфигурирован для работы с кириллицей.
Ярлык приложения
необходимо разместить в удобном для пользователя месте (например на рабочем
столе), в качестве объекта указать путь к исполняемому файлу (C:\Program
Files\Warhouse\Warhouse.exe), именем ярлыка установить «Склад материальных ценностей».
5. Руководство
пользователя
Запуск программы
осуществляется с рабочего стола, путем двойного клика по ярылку с именем «Склад
материальных ценностей». После запуска программы открывается основная форма.
Вид основной формы представлен на рисунке 3.
Рисунок 3 - Вид основной
формы программы
Основная форма имеет три
основных элемента: строка меню, элемент отображения данных с навигацией и
панель управления данными. В строке меню расположены элементы управления для
доступа к справочникам и книге остатков, форме формирования отчета, а также
находится кнопка выхода из приложения. Элемент отображения данных служит для
отображения данных по заявкам, их добавления и редактирования, а также для навигации
в пределах набора данных.
Для добавления записи
необходимо кликнуть по кнопке «+» на панели навигации. При добавлении новой
записи, а также редактировании, необходимо чтобы все поля были заполнены. Код
подразделения, а также номенклатурный номер материала можно ввести с
клавиатуры, но также имеется возможность выбрать значение из выпадающего списка
справа. При этом в незаполненном поле автоматически появится значение: при
вводе с клавиатуры в поле выпадающего списка, при выборе пункта выпадающего списка
- в поле ввода. Пример представлен на рисунке 4.
Рисунок 4 - Выбор
значения из выпадающего списка
После заполнения всех
полей необходимо кликнуть по кнопке с изображением галочки в панели навигации
для сохранения изменений.
В панели управления
данными имеется три вкладки: поиск, фильтрация и групповое изменение. На
вкладке «Поиск» осуществляется поиск по заявкам. Внешний вид вкладки
представлен на рисунке 5.
Рисунок 5 - Вкладка
«Поиск»
При поиске по номеру
заявки набор данных автоматически перейдет на указанную запись, если таковая
имеется в нем. При отсутствии такой заявки будет выведено сообщение о том, что
заявка не найдена.
При поиске по дате
заявки необходимо выбрать дату составления заявки, набор данных перейдет на ту
заявку, дата составления которой либо соответствует выбранной, либо находится
ближе всех.
Поиск по количеству
аналогичен поиску по номеру заявки.
На вкладке «Фильтрация»
можно указать условия отображения заявок для удобного редактирования, а также
для осуществления поиска какой либо заявки. Внешний вид вкладки представлен на
рисунке 6.
Рисунок 6 - Вкладка
«Фильтрация»
Для фильтрации по
подразделению необходимо выбрать из выпадающего списка подразделение, заявки от
которого должны быть отображены и кликнуть по кнопке «Выбрать». При этом кнопка
примет вдавленный вид.
Для фильтрации по
материалам необходимо ввести номенклатурный номер материала, заявки по которому
должны быть отображены и кликнуть по кнопке «Выбрать». При этом кнопка примет
вдавленный вид.
При фильтрации за период
указываются даты периода фильтрации. Если не указана дата начала периода то
фильтрация осуществляется до даты, указанной в качестве конца периода, если не
указана дата конца периода - фильтрация осуществляется с даты начала периода.
При указании обоих дат, в поле вывода будут отображены заявки, составленные за
указанный период.
Фильтрация может
осуществляться по всем параметрам одновременно.
На вкладке «Групповое
изменение» представлена возможность удаления заявок из базы данных, а также
группового изменения объема заявки, в зависимости от стоимости. Внешний вид
вкладки представлен на рисунке 7.
Рисунок 7 - Вкладка «Групповое
изменение»
Для снижения объема
заявки в зависимости от суммы необходимо ввести сумму и количество единиц, на
которое будут уменьшены заявки. Если стоимость заявки выше введенной суммы, то
ее объем будет уменьшен на введенное количество.
При удалении заявок
необходимо указать либо № начальной заявки, либо конечной, либо и начальной и
конечной. В зависимости от введенных значений будет выбран диапазон, и все
заявки находящиеся в этом диапазоне будут удалены.
Для просмотра и
редактирования справочников необходимо открыть форму справочника, обратившись к
нему через пункт «Справочники» основного меню, и выбрать интересующий
справочник. После выбора откроется основная форма справочника (представлена на
рисунке 8).
По справочникам можно
осуществлять поиск по наименованию материала. Если отмечен пункт «Учитывать
регистр» то поиск будет осуществляться с учетом регистра. Если отмечен пункт
«Приближенно» то будет найден тот материал, в наименовании которого встречается
поисковой запрос.
Добавление новых записей
осуществляется кнопкой «Добавить». Редактирование текущей записи осуществляется
кнопкой «Редактировать». Для навигации по справочнику используется панель
навигации в верхней части формы. Удаление текущей записи осуществляется кнопкой
«-» в панели навигации.
Рисунок 8 - Форма
справочника «Материалы»
При добавлении /
редактировании записи в справочнике открывается форма изменения записи. Все
поля в ней должны быть заполнены, для сохранения целостности в базе данных. Номенклатурный
(код подразделения) должен быть уникальным. Форма изменения приведена на
рисунке 9.
Рисунок 8 - Форма
изменения справочника «Материалы»
Для формирования отчета
о потребностях необходимо на главной форме в основном меню выбрать пункт
«Отчеты», из подчиненного меню выбрать отчет о потребностях. На экране появится
форма для ввода параметров отчета. Форма приведена на рисунке 9.
Рисунок 9 - Форма
«Параметры отчета»
В форме указывается
диапазон заявок, по которым будет сформирован отчет. Начальное значение должно
быть меньше конечного, оба значения должны быть заполнены. При нажатии кнопки
«Сформировать» будет сформирован отчет, при нажатии кнопки «Отмена» или
закрытии формы отчет выводиться не будет. Пример формирования отчета приведен в
разделе 6.
Для демонстрации работы
программы таблицы были заполнены данными контрольного примера. Содержание
таблиц базы данных приведены в таблицах 10-13.
Таблица 10 - Содержание таблицы Unit
Unit_ID
|
UnitName
|
1
|
Отдел ИКТ
|
2
|
Цех №1
|
3
|
Цех №2
|
4
|
Бухгалтерия
|
5
|
Отдел охраны
|
6
|
ОТК
|
7
|
Отдел продаж
|
8
|
Цех №3
|
Таблица 11 - Содержание таблицы Materials
Mat_N
|
Mat_Name
|
Mat_Price
|
1
|
Цемент
|
250,00 р.
|
2
|
Витая пара
|
780,00 р.
|
3
|
Сетевой фильтр
|
120,00 р.
|
4
|
Шихта
|
298,00 р.
|
5
|
Гарнитура
|
150,00 р.
|
Таблица 12 - Содержание таблицы Ostatok
Ost_Nmat
|
Ost_Count
|
Ost_reserv
|
1
|
10,00
|
2,00
|
2
|
8,00
|
6,00
|
3
|
11,00
|
9,00
|
4
|
40,00
|
12,00
|
5
|
3,00
|
0,00
|
Таблица 13 - Содержание таблицы Request
Req_ID
|
Req_N
|
ReqDat
|
Req_UnitID
|
Req_Nmat
|
Req_Count
|
1
|
25678
|
21.12.2012
|
1
|
3
|
3
|
25679
|
22.12.2012
|
3
|
4
|
149,00
|
4
|
25680
|
23.12.2012
|
2
|
2
|
5,00
|
5
|
25681
|
24.12.2012
|
4
|
3
|
12,00
|
6
|
25682
|
25.12.2012
|
5
|
5
|
2,00
|
При формировании отчета в качестве
параметров программа запрашивает диапазон номеров заявок. В данном контрольном
примере был взят диапазон от 25678 до 25682.
7. Текст программы
Исходный текст модуля uDM:
unit uDM;, Classes, DB,
DBTables;= class(TDataModule): TDatabase;: TTable;: TTable;: TTable;: TTable;:
TDataSource;: TDataSource;: TDataSource;: TDataSource;_ID: TIntegerField;_Name:
TStringField;_N: TIntegerField;_Name: TStringField;_Price:
TCurrencyField;_Nmat: TIntegerField;_ID: TAutoIncField;_N: TIntegerField;_Dat:
TDateField;_UnitID: TIntegerField;_Nmat: TIntegerField;_Count: TFloatField;:
TStringField;: TStringField;: TFloatField;: TStringField;: TTable;_reserv:
TFloatField;_Count: TFloatField;tblRequestCalcFields (DataSet:
TDataSet);tblRequestFilterRecord (DataSet: TDataSet;Accept: Boolean);tblOstatokOst_reservValidate
(Sender: TField);
{Private declarations}
{Public declarations};:
TDM; Filt: String;
{$R
*.dfm}TDM.tblRequestCalcFields (DataSet: TDataSet);. FindKey([tblRequest.
FieldByName ('Req_Nmat')]);.asFloat:=tblRequestReq_Count.asFloat*tblMaterials.
FieldByName ('Mat_Price').AsFloat;;TDM.tblRequestFilterRecord (DataSet:
TDataSet;Accept: Boolean);(uDM. Filt='') then exit else:= (tblRequest
['Req_Nmat']=uDM. Filt);;TDM.tblOstatokOst_reservValidate (Sender:
TField);((Sender as TField).Value >tblOstatok. FieldByName
('Ost_Count').Value) then raise. Create ('Резерв не может быть
больше количества!');
end;
end.
Исходный текст модуля uEdMat:
unit uEdMat;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Mask,
DBCtrls;= class(TForm): TDBEdit;: TDBEdit;: TButton;: TButton;: TLabel;:
TLabel;: TLabel;: TDBEdit;
{Private declarations}
{Public declarations};:
TfrmEdMat;uDM;
{$R *.dfm}.
Исходный текст модуля uEdUnit:
unit uEdUnit;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Mask,
DBCtrls;= class(TForm): TDBEdit;: TDBEdit;: TButton;: TButton;: TLabel;:
TLabel;
{Private declarations}
{Public declarations};:
TfrmEdUnit;uDM;
{$R *.dfm}
end.
Исходный текст модуля uMat:
unit uMat;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids,
StdCtrls, DBCtrls, ExtCtrls;= class(TForm): TPanel;: TDBNavigator;: TButton;:
TButton;: TPanel;: TDBGrid;: TPanel;: TEdit;: TCheckBox;: TCheckBox;: TButton;:
TLabel;FormShow (Sender: TObject);btnAddClick (Sender: TObject);btnEditClick
(Sender: TObject);btnLocateClick (Sender: TObject);
{Private declarations}
{Public declarations};
: TfrmMat;uDM, uEdMat,
DB;
{$R *.dfm}TfrmMat.
FormShow (Sender: TObject);not dm.tblMaterials. Active then dm.tblMaterials.
Open;;TfrmMat.btnAddClick (Sender: TObject);
Выводы
программный автоматизированный
складской база
В ходе выполнения курсовой работы
разработан и отлажен программный проект для осуществления автоматизированного
складского учета материальных ценностей. В его рамках была спроектирована база
данных, включающая в себя информацию о подразделениях, материалах и их
остатках, а также информацию о заявках подразделений на получение материальных
ценностей со склада.
Разработанная программа позволяет
вести учет об остатках материалов на складе в количественном выражении и их
резерве, вести учет входящих заявок от подразделений на получение материалов,
осуществлять их удобный просмотр и редактирование, а также позволяет получить
отчет о нехватке материальных ценностей для удовлетворения потребностей
подразделений.
Список источников
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 с.
Похожие работы на - База данных склада