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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
57
Рисунок №9. Форма для ввода товара
Для обеспечения надежности функционирования модуля применяется
принцип «защитного программирования», когда пользователь вводит все, что
хочет, а программа принимает только правильные данные. Этот принцип будет
обеспечен применением компонентов для обеспечения ввода выбором
следующих значений:
- единицы измерения (рисунок №10).
Рисунок №10. Ввод выбором единицы измерения.
По событию нажатия кнопки «Запись» осуществляется контроль ввода
заполнения полей:
procedure TfrWTov.Button2Click(Sender: TObject);
begin
//контроль ввода
if trim(DBEdit1.Text)='' then
begin
showmessage('Не определено наименование товара');
DBEdit1.SetFocus;
exit;
end
58
else
if trim(DBComboBox1.Text)='' then
begin
showmessage('Не определена ед.измерения товара');
DBComboBox1.SetFocus;
exit;
end
else
if trim(DBEdit3.Text)='' then
begin
showmessage('Не определена опт.цена товара');
DBEdit3.SetFocus;
exit;
end
else
if trim(DBEdit4.Text)='' then
begin
showmessage('Не определена розн.цена товара');
DBEdit4.SetFocus;
exit;
end
else
ModalResult:=mrOk;
end;
Уникальный код товара формируется автоматически СУБД.
Работа модуля завершается средствами Windows для закрытия окна,
например Alt+F4.
Модуль «Поставщики»
Входные данные
Входными данными модуля являются данные о поставщиках товаров:
- наименование поставщика (символьное);
- ключевое слово для поиска (символьное);
59
- почтовый адрес (символьное);
- телефон для связи (символьное);
- расчетный счет (числовое);
- корреспондирующий счет (числовое);
- обслуживающий банк (символьное).
Выходные данные
Выходными данными является, заполненный сведениями о поставщиках
справочник поставщиков (таблица №2 базы данных). Для каждой записи будет
формироваться уникальный код для идентификации поставщика и для
осуществления связей с другими данными (целое), например, вводе приходной
накладной.
Методы решения
Модуль «Поставщики» запускается выбором пункта меню «Справочники
| Поставщики».
В данном модуле обеспечен ввод сведений обо всех поставщиках
компонентов (рисунок №11.). Форма для ввода информации о поставщике
вызывается по событию AfterEdit при редактировании и AfterInsert при
добавлении информации о новом поставщике:
procedure TDM3.Table3.AfterInsert(DataSet: TDataSet);
begin
if frWFirm.ShowModal=mrOk then
Table3.Post
else
Table3.Cancel;
end;
60
Рисунок №11. Форма модуля «Поставщики».
Рисунок №12. Форма для ввода поставщика
Для обеспечения надежности функционирования модуля применяется
принцип «защитного программирования», когда пользователь вводит все, что
хочет, а программа принимает только правильные данные. По событию нажатия
кнопки «Запись» осуществляется контроль ввода заполнения полей (рисунок
№13):
procedure TfrWFirm.Button2Click(Sender: TObject);
61
begin
//контроль ввода
if trim(DBEdit1.Text)='' then
begin
showmessage('Не определено наименование партнера');
DBEdit1.SetFocus;
exit;
end
else
ModalResult:=mrOk;
end;
Рисунок №13. Контроль ввода информации о партнерах.
Уникальный код поставщика формируется автоматически СУБД.
Работа модуля завершается средствами Windows для закрытия окна,
например Alt+F4.
Модуль «Оптовые покупатели»
Входные данные
Входными данными модуля являются данные об оптовых покупателях
товаров со склада:
- наименование заказчика (символьное);
- ключевое слово для поиска (символьное);
- почтовый адрес (символьное);
- руководитель (символьное);
- телефон для связи (символьное);
- расчетный счет (числовое);
- корреспондирующий счет (числовое);
- обслуживающий банк (символьное).
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;
По нажатию кнопки запись будет запущена подпрограмма регистрации
прихода/расхода каждого товара, отраженного в накладной затем, если будет
определена дата отсрочки платежа, будет запущена подпрограмма для
регистрации договора об отсрочке платежа.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)