Дипломная работа: Автоматизация договорных отношений мелкооптового склада магазина ИП Шевелевой Е.В. с поставщиками и оптовыми покупателями

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
62
Выходные данные
Выходными данными является, заполненный сведениями об оптовых
покупателях справочник (таблица №2 базы данных). Для каждой записи будет
формироваться уникальный код для идентификации покупателя и для
осуществления связей с другими данными (целое), например, при вводе
накладной на отпуск товаров.
Методы решения
Модуль «Покупатели» запускается выбором пункта меню «Справочники
| Покупатели».
В данном модуле обеспечен ввод сведений обо всех оптовых
покупателях товаров, находящихся на складе. Форма для ввода информации об
оптовых покупателях (рисунок №12) вызывается по событию AfterEdit при
редактировании и AfterInsert при добавлении информации о новом покупателе:
procedure TDM3.Table3.AfterInsert(DataSet: TDataSet);
begin
if frWFirm.ShowModal=mrOk then
Table3.Post
else
Table3.Cancel;
end;
Уникальный код покупателя формируется автоматически СУБД.
Работа модуля завершается средствами Windows для закрытия окна,
например Alt+F4.
Модуль «Накладная»
Входные данные
Входными данными модуля являются данные об принимаемых или
отпускаемых товарах, отраженных в приходной накладной или накладной на
отпуск:
- наименование поставщика или оптового покупателя (символьное);
- перечень товаров (символьное);
63
- единица измерения (символьное);
- количество (действительное);
- цена (действительное);
- сумма (действительное).
Выходные данные
Выходными данными является, заполненная на основании входных
данных накладная на отпуск или приходная накладная (таблицы №3 и №4 базы
данных). Для каждой накладной будет формироваться порядковый номер
накладной, в качестве даты поступления будет приниматься «текущая дата». Для
каждой записи о товарах будет формироваться уникальный код для
идентификации записи.
В соответствующей таблице для хранения сведений о наличии товаров
автоматически будет производиться увеличение значения полей «приход» или
«расход» на количество, определенное в накладной
Методы решения
Модуль «Накладная» запускается выбором пункта меню
«Редактирование | Добавить» модуля «Перечень накладных» рисунок №14.
64
Рисунок №14. Форма модуля «Накладная».
procedure TfrWNakl.FormShow(Sender: TObject);
begin
//SrokKredit.MinDate:=RabDate-1;
SrokKredit.DateTime:=RabDate+10;
DBText2.Field.AsDateTime:=RabDate;
if TipNakl=0 then
begin
Label8.Caption:='Приходная накладная № _________ от __________';
Label5.Caption:='Поставщик';
DBLookupComboBox2.Visible:=False;
DBLookupComboBox4.Visible:=True;
end
else
begin
Label8.Caption:='Накладная на отпуск № _________ от __________';
Label5.Caption:='Цех';
DBLookupComboBox2.Visible:=True;
65
DBLookupComboBox4.Visible:=False;
end;
end;
В данном модуле обеспечен ввод сведений поступивших товарах и
выбор поставщика или оптового покупателя. Определение товара происходит
выбором из возможных значений определенных в модуле «Прейскурант». Те
записи, которые не будут содержать информацию о товаре, его количестве или
цене, будут удаляться без предупреждения.
Для навигации по перечню товаров предназначена кнопочная панель,
при наведении на кнопку указателя «мыши» будет выдаваться подсказка о
назначении кнопки. На этой же панели будут расположены кнопки для
добавления, удаления и правки записей о поступающих материалах.
Общая сумма по накладной вычисляется по событию Enter, Exit и Change
поля «Цена»:
procedure TfrWNakl.DBEdit4Enter(Sender: TObject);
begin
Sum:=DBEdit4.Field.AsFloat;
end;
procedure TfrWNakl.DBEdit4Exit(Sender: TObject);
begin
if Sum<>DBEdit4.Field.AsFloat then
begin
Sum:=DBEdit1.Field.AsFloat;
DBEdit1.Field.AsFloat:=DBEdit2.Field.AsFloat*DBEdit4.Field.AsFloat;
end;
end;
procedure TfrWNakl.DBEdit1Change(Sender: TObject);
begin
if DM3.Table5.State in [dsInsert] then
if Sum<>DBEdit1.Field.AsFloat then
DBEdit6.Field.AsFloat:=DBEdit6.Field.AsFloat
66
-Sum+DBEdit1.Field.AsFloat;
//}
end;
Запись данных в базу данных будет производиться по нажатию кнопки
«Запись». Контроль ввода осуществляется по событию Enter кнопки «Запись»:
procedure TfrWNakl.Button1Enter(Sender: TObject);
begin
if DBEdit6.Field.AsFloat=0 then
begin
ShowMessage('Не определена сумма накладной');
DBEdit2.SetFocus;
end
else
if TipNakl=0 then
begin
if DBLookupComboBox4.Field.IsNull then
begin
ShowMessage('Не определен поставщик');
DBLookupComboBox4.SetFocus;
end
end
else
if DBLookupComboBox2.Field.IsNull then
begin
ShowMessage('Не определено подразделение');
DBLookupComboBox2.SetFocus;
end;
end;
По нажатию кнопки запись будет запущена подпрограмма регистрации
прихода/расхода каждого товара, отраженного в накладной затем, если будет
определена дата отсрочки платежа, будет запущена подпрограмма для
регистрации договора об отсрочке платежа.
Источник: https://baza.diplomsite.ru/previewfile/1703