Вы находитесь на странице: 1из 97

НОУ ВПО ТУЛЬСКИЙ ИНСТИТУТ УПРАВЛЕНИ И БИЗНЕСА

Кафедра “Прикладной информатики и математики”

“Допущен к защите”
Зав. каф “Прикладной информатики
и математики”
_______________________Обрубов Ю.В.

Кулаков Александр А.

ДИПЛОМНЫЙ ПРОЕКТ

Тема: СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ

Научный руководитель:
докт. техн. наук

__________ А.А. Ильин

Автор работы:

__________ А.А. Кулаков

Калуга - 2010
РЕФЕРАТ
Пояснительная записка (ПЗ) дипломного проекта (ДП) содержит
ВВЕДЕНИЕ, три раздела, ЗАКЛЮЧЕНИЕ, 21 использованный источник, 30
рисунков 17 таблиц, 5 приложений и выполнена на 95 с. текста.
Ключевые слова: Информационная система (ИС), база данных (БД),
система управления базами данных (СУБД), программное обеспечение (ПО).
Объект проектирования: ИС склада продовольственных товаров.
Цель ДП: сокращение времени формирования выходных документов
(квитанция получения товаров на склад (Отчет 1); квитанция выдачи товаров со
склада (Отчет 2); отчет о наличии товаров на складе и их количестве на
текущую дату (Отчет 3); отчет об ущербе от просроченного товара (Отчет 4);
акт списания просроченного товара (Отчет 5)) на основе использования
разработанной ИС.
Метод проектирования: проектирование ИС.
Результаты работы: разработана ИС склада продовольственных товаров,
позволяющая в автоматизированном режиме формировать пять документов.
Основные характеристики ИС: операционная система – MS Windows
XP и выше; СУБД – MS Access 2003 и выше; поддержка технологии
клиент/сервер в локальной вычислительной сети (ЛВС).
Область применения: автоматизация документооборота в складском
хозяйстве.
Экономическая эффективность и значимость проекта: индексы
изменения трудовых (IT) и стоимостных (IС) затрат составляют 5,35; внедрение
проекта позволяет сократить трудовые и cтоймостные затраты на 81,32%;
прямой эффект от внедряемого проекта при грубых расчетах составит около
7400 рублей в год.
Предположения о развитии объекта исследования: разработать ИС
склада продовольственных товаров для глобальной вычислительной сети,
поддерживающей семейство протоколов TCP/IP.
ЗАДАНИЕ К ДИПЛОМНОМУ ПРОЕКТУ:
ИНФОРМАЦИОННАЯ СИСТЕМА “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”
Информационная система создается для объекта склад.
Периодически по запросу должны выдаваться данные о названии товаров,
единиц хранения и их количестве на складе. При получении товара на склад
должна формироваться квитанция получения.
Оператор ЭВМ должен иметь возможность проделывать следующие
операции обработки данных:
- получение нового товара с включением в перечень товаров на складе;
- автоматическое изменение количества товаров при их получении на
склад и выдачи со склада;
- формирование данных для выходных документов в виде отчетов;
а также выдачу пяти документов: квитанцию получения товаров на склад
(Отчет 1); квитанцию выдачи товаров со склада (Отчет 2); отчет о наличии
товаров на складе и их количестве на текущую дату (Отчет 3); отчет об ущербе
от просроченного товара (Отчет 4); акт списания просроченного товара (Отчет
5).

3
СОДЕРЖАНИЕ

Р Е Ф Е Р А Т ................................................................................................................2
ЗАДАНИЕ К ДИПЛОМНОМУ ПРОЕКТУ: ИНФОРМАЦИОННАЯ
СИСТЕМА “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”.......................3
ВВЕДЕНИЕ.................................................................................................................6
1. ОБЗОР И АНАЛИЗ МЕТОДОВ РЕАЛИЗАЦИИ ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”...............................................................8
1.1. Технико-экономическая характеристика предметной области.....................8
1.1.1.Общая характеристика предприятия “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”.............................................................8
1.1.2.Характеристика деятельности предприятия “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”.............................................................9
1.2. Экономическая сущность задачи...................................................................11
1.3. Обоснование необходимости и цели использования вычислительной
техники для решения задачи.................................................................................11
1.4. Выбор системы управления базами данных для реализации ИС...............12
1.5. Постановка задачи проектирования..............................................................13
2. ПРОЕКТИРОВАНИЕ ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”...............................................................................................................15
2.1. Информационное обеспечение задачи..........................................................15
2.1.1. Информационная модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”...........................................................................................................15
2.1.2. Инфологическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”...........................................................................................................18
2.1.3. Даталогическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”...........................................................................................................21
2.1.4. Характеристика нормативно-справочной, входной и результатной
информации..........................................................................................................26
2.2. Программное обеспечение ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”..............................................................................................................28

4
2.2.1. Проектирование сценария диалога..........................................................28
2.2.2. Описание программных модулей.............................................................31
2.3. Технологическое обеспечение ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”..............................................................................................................60
2.4. Руководство пользователя ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”..............................................................................................................61
3. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ
ПРОЕКТА.................................................................................................................63
3.1. Выбор и обоснование методики расчета экономической эффективности.63
3.2 Расчет показателей экономической эффективности проекта.......................70
ЗАКЛЮЧЕНИЕ.......................................................................................................75
СПИСОК ЛИТЕРАТУРЫ.....................................................................................77
ПРИЛОЖЕНИЕ А. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ
ВЕДЕНИЯ ТАБЛИЦЫ “ИНФОРМАЦИЯ О КВИТАНЦИЯХ НА
ПОЛУЧЕНИЕ ТОВАРА” (Kvit_In)......................................................................80
ПРИЛОЖЕНИЕ Б. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ
ВЕДЕНИЯ ТАБЛИЦЫ “ИНФОРМАЦИЯ О КВИТАНЦИЯХ НА ВЫДАЧУ
ТОВАРА” (Kvit_Out)..............................................................................................82
ПРИЛОЖЕНИЕ В. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ
ФОРМИРОВАНИЯ КВИТАНЦИИ ПОЛУЧЕНИЯ ТОВАРА” (Kvit_In_F) 84
ПРИЛОЖЕНИЕ Г. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ
ФОРМИРОВАНИЯ КВИТАНЦИИ ВЫДАЧИ ТОВАРА” (Kvit_Out /
Kvit_Out_F)...............................................................................................................88
ПРИЛОЖЕНИЕ Д. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ
ФОРМИРОВАНИЯ КВИТАНЦИИ ВЫДАЧИ ТОВАРА” (Kvit_Out /
Kvit_Out_F)................................................................................................................92

5
ВВЕДЕНИЕ
Резкий рост объемов перерабатываемой информации, революционные
достижения в технологии производства аппаратных средств вычислительной
техники обусловили коренные преобразования в технологии обработки и
хранения информации, нашедшие яркое выражение в концепциях построения
БАЗ ДАННЫХ (БД) и способах управления ими. Революционные достижения в
построении БД и систем управления базами данных (СУБД) стали
определяющим фактором создания эффективных систем автоматизированной
обработки информации.
К настоящему времени сформировалось многообразное программное
обеспечение ПЭВМ, позволяющее создавать и эксплуатировать базы данных
(БД) в различных операционных системах и персональных ЭВМ. Спектр
средств управления данными довольно широк - от программных продуктов с
методами доступа к данным во внешней памяти до развитых СУБД. Сами
СУБД отличаются как функциональным разнообразием - от простейших
однофайловых систем с элементарными средствами манипулирования данными
до функционально полных СУБД, так и средствами их окружения - генераторы
и преобразователи программного кода, средства для разработки меню и
экранных форм ввода-вывода данных, генераторы отчетов, интерфейсные
средства для доступа к БД, интерактивные средства обучения пользователей и
др.
В соответствии с заданием в дипломном проекте (ДП) необходимо
разработать информационную систему "СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ" (см. задание на с. 2).
Цель КР заключается в сокращение времени формирования выходных
документов (квитанция получения товаров на склад (Отчет 1); квитанция

6
выдачи товаров со склада (Отчет 2); отчет о наличии товаров на складе и их
количестве на текущую дату (Отчет 3); отчет об ущербе от просроченного
товара (Отчет 4); акт списания просроченного товара (Отчет 5)) на основе
использования разработанной ИС.
Достижение цели обеспечивает решение следующих задач:
 проведение обзора и анализа методов решения поставленной в задании
задачи. Выбор СУБД;
 построение концептуальной модели предметной области;
 построение логической модели БД;
 разработка физической организации БД: создание таблиц базы данных
и форм просмотра данных;
 разработка физической организации БД. Формирование запросов;
 разработка физической организации БД. Формирование отчетов.

7
1. ОБЗОР И АНАЛИЗ МЕТОДОВ РЕАЛИЗАЦИИ ИС
“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”

1.1. Технико-экономическая характеристика предметной области

1.1.1.Общая характеристика предприятия “СКЛАД


ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”

При проведении обзора и анализа методов реализации ИС “Склад


продовольственных товаров” проанализированы следующие источники [3 – 5,
13, 15, 17, 18], посвященные автоматизации складского хозяйства.
Предприятие “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”,
основанное в 2005г., занимается хранением и реализацией продовольственных
товаров. С 2008 г. предприятие является открытым акционерным обществом с
численностью 16 человек.
Предприятие “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” имеет ряд
площадей, оборудованных для хранения продовольственных товаров, включая
холодильные камеры.
Предприятие “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” как
самостоятельное подразделение предприятия, участвующее в системе
общественного разделения труда, характеризуется структурой распределения
ресурсов, составом элементов материально-технического оснащения,
технологией оказания услуг, размером финансовых средств и составом кадров.
В штатный состав предприятия входят работники трех направлений –
руководство, обслуживающий персонал (холодильные камеры, весовые
механизмы, оргтехника и компьютеры) и материально ответственный персонал,
осуществляющий учет, хранение , прием и выдачу товаров.

8
В процессе своей деятельности работники выполняют следующие
функции:
руководящие работники, - осуществляют общее руководство предприятия
и подразделений, планирование работ, организацию и управление ремонтными
работами, прием и оформление сопроводительных документов;
обслуживающий персонал - осуществляет ремонтные работы
поступающего автотранспорта и оказание других услуг, включая сопровождения
процессов своей деятельности соответствующими документами;
материально ответственный персонал – осуществляет учет, хранение ,
прием и выдачу товаров.
В процессе своей деятельности работники предприятия “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” руководствуются руководящими,
научно-методическими и нормативными документами, в частности:
Конституцией РФ;
системой стандартов по хранению, учету и распространению
продовольственных товаров;
методическими рекомендациями производителей по эксплуатации и
устранению неисправностей средств хранения, учета и распространения
продовольственных товаров;
должностными инструкциями;
приказами и распоряжениями руководства предприятия.

1.1.2.Характеристика деятельности предприятия “СКЛАД


ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”

Управление деятельностью предприятия “СКЛАД


ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” преследует цели наиболее
качественного выполнения процессов и операций по обслуживанию средств
отечественного и зарубежного автотранспорта (труда персонала, затрат
рабочего времени, финансовых и материально-технических средств т.п.),

9
поиска инновационных подходов и приемов их выполнения и направлено на
решение двух классов задач:
1) экономических (повышение эффективности труда персонала;
рациональное использование ресурсов предприятия, повышение качества
оказываемых услуг);
социальных (развитие творческой инициативы и профессионализма
персонала, создание благоприятных условий труда, уменьшение объема
трудоемких и монотонных рутинных процессов).
Основное назначение предприятия – предоставление услуг по
эффективной эксплуатации средств отечественного и зарубежного
автотранспорта, включая выполнения плановых и неплановых ремонтных
работ, а также продажу запасных частей.
Совокупность средств и процессов, используемых при поиске
неисправностей в средствах отечественного и зарубежного автотранспорта,
требует высоко квалифицированного персонала и современных
диагностических приборов и технологий, включая информационные
технологии. Современные средства отечественного и зарубежного
автотранспорта изготовляются с высокими требованиями к комфорту, экологии
и т.п. на основе самых современных технологий. Помимо средств обеспечения
движения и безопасности отечественного и зарубежного автотранспорта
современный автотранспорт включает средства комфорта – кондиционер,
воздухоочиститель и .т.п., а также эффективные средства управления как
устройствами, обеспечивающими комфорт, так и автотранспортом, в целом, –
компьютер, интеллектуальные датчики для сбора информации, контроллеры
для управления устройствами автотранспорта.
В рамках дипломного проекта рассмотрены вопросы реализации
информационных систем и информационных технологий на предприятии
“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”.

10
1.2. Экономическая сущность задачи

Работа персонала на предприятии “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ” всесторонне влияет на рентабельность данного предприятия. От
качества работы персонала, а именно скорости обработки информации и
скорости обслуживания клиента, конечно, качественного обслуживания
клиента зависит доходность данного предприятия.
Сокращение времени на обслуживание одного клиента, существенно
увеличит количество клиентов обслуженных за день. Что повлияет на
увеличение доходов предприятия.
Исходные показатели, необходимые для расчетов результатных
экономических показателей, берутся из справочной и оперативной
информации. В роли справочной информации используются данные из
справочников абонентов, в данном случае из паспортов. Носителями
оперативной информации служат, приложения обслуживания.
Результатными экономическими показателями обслуживания и текущего
обслуживания являются:
 существенное сокращение времени обслуживания одного клиента;
 улучшения качества обслуживания клиентов;
 коэффициент прироста клиентов. Показывает прирост клиентов
предприятия за определенный период времени.

1.3. Обоснование необходимости и цели использования вычислительной


техники для решения задачи

Фактически все действия совершаемые персоналом на предприятии


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

11
данном рынке предоставления услуг СКЛАДа. У данной системы недостатков
гораздо больше, чем может показаться на первый взгляд, а именно:
 большие затраты времени и труда на поиск информации;
 большие затраты времени и труда на обслуживание клиентов,
связанные с невысокой степенью внедрения информационных технологий в
процесс обслуживания клиентов;
 не надежный способ хранения информации;
 трудности при обработке информации;
 не всегда оперативно удается уследить за оборотом продуктов;
 трудности при прослеживании просрочки работ по устранению
неисправностей оборудования;
 данная система обслуживания портит авторитет предприятия и
подрывает доверие клиентов к организации и т.д, что влияет практически на все
технико-экономические показатели предприятия.
Все перечисленные недостатки существующей системы служат
предпосылками автоматизации данного комплекса задач, а именно - создания
базы данных для работы с клиентами, ассортиментом и с заказами. Целью
использования вычислительной техники является устранение всех
вышеперечисленных недостатков, автоматизация ввода и обработки
первичных, промежуточных и вывода или передачи результатных данных.

1.4. Выбор системы управления базами данных для реализации ИС

ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” возможно


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

12
реализовывать гибкий и удобный интерфейс пользователя, но отличаются
значительной стоимостью – десятки – сотни тысяч долларов [12 и др.].
Ряд разработчиков и сейчас пытаются при создании БД использовать
СУБД, поддерживающие форматы БД, которые широко использовались в
операционной системе MS DOS. Формат DBF, используемый в СУБД DB2,
FOXPRO, CLIPPER; формат DB, используемый в СУБД PARADOX и т.п.
отличаются меньшей стоимостью, по сравнению с СУБД первой группы и
меньшими функциональными возможностями.
Одной из самых дешевых СУБД, обладающей возможностью
многопользовательской поддержки БД на основе локальных вычислительных
сетей (ЛВС) и позволяющей реализовывать достаточно удобный графический
интерфейс пользователя является СУБД MS Access, входящая в состав
интегрированного пакета прикладных программ Microsoft Office [1, 2, 8 – 10,
12, 14, 16, 19 – 21]. Еще одно свойство СУБД MS Access заключается в том, что
вся БД, включая таблицы, запросы, отчеты БД, программный код и визуальные
формы приложения содержатся в одном файле с расширением mdb.
Поскольку ИС "СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ" не
ориентирована на эксплуатацию в глобальных вычислительных сетях, в
качестве СУБД следует выбрать MS Access.

1.5. Постановка задачи проектирования

Как показано выше ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”


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

13
 построение инфологической модели БД;
 построение даталогической модели БД;
 разработка физической организации БД: создание таблиц базы
данных;
 разработка экранных форм работы с ИС;
 формирование запросов;
 формирование отчетов (квитанции получения товаров на склад (Отчет
1); квитанции выдачи товаров со склада (Отчет 2); отчета о наличии товаров на
складе и их количестве на текущую дату (Отчет 3); отчета о просроченном
товаре (Отчет 4); акта списания просроченного товара (Отчет 5)).
При задании необходимых параметров (в режиме диалога с пользователем)
для операций получения товаров на склад, отпуска товаров со склада, списания
просроченных товаров, ИС должна автоматически выполнять вычисления и
корректировать содержимое таблиц БД, изменяя значения полей, отражающих
количества товаров в местах хранения и на складе в целом, формировать и
заносить в БД итоговые стоимости товаров.

14
2. ПРОЕКТИРОВАНИЕ ИС
“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”

2.1. Информационное обеспечение задачи

В рамках разработки информационного обеспечения сформулированы


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

2.1.1. Информационная модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ”

Согласно заданию ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”


должна формировать следующие пять выходных документа:
- квитанция получения товаров на склад (Отчет 1), включающая
 номер квитанции;
 дату и время выдачи квитанции;
 индекс кладовщика;
 Ф.И.О. кладовщика;
 общую сумму оплаты за полученный товар;
и для каждой единицы полученного товара
 наименование товара;
 цена получения товара;
 единица хранения товара на складе;
 количество единиц хранения полученного товара;
 стоимость полученных единиц хранения товара;

15
 место хранения полученных единиц хранения товара.
- квитанция выдачи товаров со склада (Отчет 2), включающая
 номер квитанции;
 дату и время выдачи квитанции;
 индекс кладовщика;
 Ф.И.О. кладовщика;
 общую сумму оплаты за выданный товар;
и для каждой единицы выданного товара
 наименование товара;
 цена отпуска товара;
 единица хранения товара на складе;
 количество единиц хранения полученного товара;
 стоимость выданных единиц хранения товара;
 место хранения выданных единиц хранения товара.
- отчет о наличии товаров на складе и их количестве на текущую дату
(Отчет 3), включающий
 текущие дату и время;
и для каждой единицы товара, имеющейся на складе
 наименование товара;
 единица хранения товара на складе;
 цена получения товара;
 цена отпуска товара;
 количество единиц хранения полученного товара.
- отчет об ущербе от просроченного товара (Отчет 4), включающий
 контрольную дату;
 оценку ущерба по цене получения товара;
 оценку ущерба по цене отпуска товара;
 Ф.И.О. кладовщика, оформляющего акт списания
и для каждой единицы выданного товара

16
 наименование товара;
 индекс товара;
 единица хранения товара;
 цена получения товара;
 цена отпуска товара;
 количество просроченного товара;
 оценка ущерба по цене получения конкретного товара;
 оценка ущерба по цене отпуска конкретного товара;
- акт списания просроченного товара (Отчет 5), включающий
 Ф.И.О. кладовщика, оформляющего акт списания
и для каждой единицы выданного товара
 индекс просроченного товара;
 наименование просроченного товара;
 срок хранения просроченного товара в сутках;
 индекс записи в таблице получения товара;
 дата производства товара;
 количество просроченного товара;
 место хранения товара.
На основании задания с целью нормализации проектируемой БД
предлагается информационную суть объекта проектирования представить
девятью сущностями:
информация о товаре (справочник товара);
информация о получении товара;
информация о выдачи товара;
информация о квитанциях на получение товара;
информация о квитанциях на выдачу товара;
информация о кладовщиках;
информация о месте хранения товара;
информация о просроченных товарах;

17
информация об актах списания.
На рисунке 2.1 представлена концептуальная модель предметной области.

Запросы на выда-
Информация о чу выходных до- Информация
товаре кументов об актах
списания

Информация о
получении товара

БД ИС Выходные
“СКЛАД” про-
Информация о документы
довольствен-
выдачи товара ных товаров

Информация о
квитанциях на по- Информация о
лучение товара кладовщиках

Информация о кви- Информация о Информация


танциях на выдачу месте хранения о просрочен-
товара товара ных товарах

Рисунок 2.1 - Концептуальная модель предметной области


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

2.1.2. Инфологическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ”

Для обеспечения целостности данных информационную суть ИС


“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” целесообразно представить
семью сущностями, связи между которыми представлены на рисунке 2.2.

18
Первое поле каждой сущности является главным ключом, который является
длинным целым типа счетчик и занимает четыре байта памяти.
Девять сущностей, представленных на рисунке 2.2 имеют следующие
имена:
информация о товаре (справочник товара) – Tovar;
информация о получении товара – Input;
информация о выдачи товара – Output;
информация о квитанциях на получение товара – Kvit_In;
информация о квитанциях на выдачу товара – Kvit_Out;
информация о кладовщиках – Kladov;
информация о месте хранения товара – Mesto_Chran;
информация о просроченных товарах – Prosrotch;
информация об актах списания – Akt_Spis.
Инфологическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ” отличается небольшой избыточностью. Количество товара на
складе хранится в двух сущностях (Tovar и Mesto_Chran). Очевидно, что
n
Tovar.Kol_ Tov_Skl   Mesto_Chran.Kol_Tov i ,
i 1

где n – количество товара, хранимого на складе, с одинаковым индексом


(ind_Tov). Из чего следует, что поле Kol_Tov_Skl избыточно в сущности Tovar.
Однако современные ИС не столь критичны к требованиям памяти, и эта
избыточность окупается более быстрым формированием отчетов, в которых
необходимо подсчитывать количество товара на складе определенного вида.

19
Mesto_Chran Output
ind_Chran ind_Out Kvit_Out
Mesto_Chran ind_Kvit_Out ind_Kvit_Out
V_Cran ind_Tov Date_Out
Rem Kol_Tov ind_Kladov
Input Kol_Tov Stoim Itogo
Kvit_In ind_In ind_Chran
ind_Kvit_In ind_Kvit_In Tovar ind_In
Date_In ind_Tov ind_Tov
ind_Kladov Kol_Tov Tovar Prosrotch
Itogo Date_Proizv Ed_Chran Akt_Spis
ind_Prosr
Stoim Cena_In ind_Akt
ind_Akt
ind_Chran Cena_Out Date_Out
ind_Tov
Ost_Tov Kol_Tov_Skl ind_Kladov
Ost_Tov
Srok_Chran
ind_Chran
Kladov ind_In
ind_Kladov
FIO
Rem

КИУБиТ.080801.727 КР
Лит. Масса Масштаб
Изм. Лист № докум. Подп. Дата ИС “СКЛАД”
Р азраб. Кулаков А. продовольственных товаров.
Пров. Ильин А.
Т. контр. Инфологическая модель Лист 1 Листов 1
Конс.
Н. к онтр.
Кафедра ПИиМ
Старожилов
Утв. Обрубов Ю.
Группа ЕПИ-04
Рисунок 2.2 - ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”. Инфологическая модель

21
Типы атрибутов (полей) сущностей раскрыты далее в даталогической
модели БД.

2.1.3. Даталогическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ”

Даталогическая модель ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ” представлена таблицами табл. 2.1 – 2.9.
Таблица 2.1 - Сущность “Информация о товаре (справочник товара)” (Tovar)

Имя поля Тип данных Описание
п/п
1. ind_Tov Счетчик (Длинное Первичный ключ
целое)
2. Tovar Текстовый (50) Наименование товара
3. Ed_Chran Текстовый (16) Единица хранения
4. Cena_In Денежный Цена получения товара
5. Cena_Out Денежный Цена продажи товара
6. Kol_Tov_Skl Числовой Количество товара на складе в
(Двойное с единицах хранения
плавающей
точкой)
7. Srok_Chran Числовой Срок хранения в сутках
(Длинное целое)

Таблица 2.2 - Сущность “Информация о получении товара” (Input)



Имя поля Тип данных Описание
п/п
1. ind_In Счетчик (Длинное Первичный индекс приема товара
целое)
2. ind_Kvit_In Числовой Индекс квитанции получения
(Длинное целое) товара (вторичный индекс)
3. ind_Tov Числовой Индекс товара (вторичный
(Длинное целое) индекс)
4. Kol_Tov Числовой Количество принятого товара

Имя поля Тип данных Описание
п/п
(Двойное с
плавающей
точкой)
5. Date_Proizv Дата/время Дата изготовления товара
6. Stoim Денежный Стоимость товара
7. ind_Chran Числовой Индекс места хранения
(Длинное целое) (вторичный индекс)
8. Ost_tov Числовой Остаток этого товара на складе
(Двойное с
плавающей
точкой)

Таблица 2.3 - Сущность “Информация о выдачи товара” (Output)



Имя поля Тип данных Описание
п/п
1. ind_Out Счетчик (Длинное Первичный индекс продажи
целое) товара
2. ind_Kvit_Out Числовой Индекс квитанции продажи
(Длинное целое) товара (вторичный индекс)
3. ind_Tov Числовой Индекс товара (вторичный
(Длинное целое) индекс)
4. Kol_Tov Числовой Количество проданного товара
(Двойное с
плавающей
точкой)
5. Stoim Денежный Стоимость проданного товара
6. ind_Chran Числовой Индекс места хранения
(Длинное целое) (вторичный индекс)
7. ind_In Числовой Вторичный индекс записи
(Длинное целое) таблицы получения товара

23
Таблица 2.4 – Сущность
“Информация о квитанциях на получение товара” (Kvit_In)

№ Описание
Имя поля Тип данных
п/п
1. ind_Kvit_In Счетчик (Длинное Первичный индекс квитанции
целое) получения товара
2. Date_In Дата/время Дата получения товара
3. ind_Kladov Числовой Индекс кладовщика (вторичный
(Длинное целое) индекс)
4. Itogo Денежный Общая сумма по квитанции

Таблица 2.5 – Сущность


“Информация о квитанциях на выдачу товара” (Kvit_Out)

Имя поля Тип данных Описание
п/п
1. ind_Kvit_Out Счетчик (Длинное Первичный индекс квитанции
целое) продажи товара
2. Date_Out Дата/время Дата продажи товара
3. ind_Kladov Числовой Индекс кладовщика (вторичный
(Длинное целое) индекс)
4. Itogo Денежный Общая сумма по квитанции

Таблица 2.6 - Сущность “Информация о кладовщиках” (Kladov)



Имя поля Тип данных Описание
п/п
1. ind_Kladov Счетчик (Длинное Первичный индекс кладовщика
целое)
2. FIO Текстовый (60) Ф.И.О. кладовщика
3. Rem Текстовый (50) Ремарка

Таблица 2.7 - Сущность “Информация о месте хранения товара” (Mesto_Chran)



Имя поля Тип данных Описание
п/п
1. ind_Chran Счетчик (Длинное Первичный индекс места
целое) хранения
2. Mesto_Chran Текстовый (20) Место хранения
24

Имя поля Тип данных Описание
п/п
3. V_Chran Числовой Объем места хранения в ед.
(Двойное с хранения
плавающей
точкой)
4. Rem Текстовый (40) Описание места хранения
5. Kol_Tov Числовой Количество товара в ед. хранения
(Двойное с
плавающей
точкой)

Таблица 2.8 - Сущность “Информация о просроченных товарах” (Prosrotch)



Имя поля Тип данных Описание
п/п
1. ind_Posr Счетчик (Длинное Первичный индекс проcроченного
целое) товара
2. ind_Akt Числовой Индекс акта списания
(Длинное целое) проcроченного товара
3. ind_Tov Числовой Индекс товара
(Длинное целое)
4. Ost_Tov Числовой Количество проcроченного товара
(Двойное с
плавающей
точкой)
5. ind_Chran Числовой Вторичный индекс места
(Длинное целое) хранения
6. ind_In Числовой Вторичный индекс индекс
(Длинное целое) таблицы получения товара

Таблица 2.9 – Сущность


“Информация об актах списания просроченных товаров” (Akt_Spis)

Имя поля Тип данных Описание
п/п
1. ind_Akt Счетчик (Длинное Первичный индекс акта списания

25

Имя поля Тип данных Описание
п/п
целое) товара
2. Date_Akt Дата/время Дата формирования акта списания
3. ind_Kladov Числовой Индекс кладовщика
(Длинное целое)
В таблицах 2.1 – 2.9 представлены все атрибуты сущностей БД.
Даталогическая модель в полно смысле представляется объединением
инфологической модели (см. рисунок 2.2) с учетом типов атрибутов сущностей,
представленных в таблицах 2.1 – 2.9, т.е. в прямоугольниках, отражающих
сущности должна включаться информация из таблиц 2.1 – 2.9. С учетом
отмеченного, выполнять даталогическую модель разрабатываемой ИС в виде
отдельного чертежа не имеет смысла.

2.1.4. Характеристика нормативно-справочной, входной


и результатной информации

Нормативно-справочная и входная информация ИС “СКЛАД


ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” представлена таблицами 2.1 – 2.9
(даталогической моделью).
Результатная информация представляется пятью выходными
документами:
- квитанция получения товаров на склад (Отчет 1), включающая
 номер квитанции;
 дату и время выдачи квитанции;
 индекс кладовщика;
 Ф.И.О. кладовщика;
 общую сумму оплаты за полученный товар;
и для каждой единицы полученного товара
 наименование товара;
 цена получения товара;

26
 единица хранения товара на складе;
 количество единиц хранения полученного товара;
 стоимость полученных единиц хранения товара;
 место хранения полученных единиц хранения товара.
- квитанция выдачи товаров со склада (Отчет 2), включающая
 номер квитанции;
 дату и время выдачи квитанции;
 индекс кладовщика;
 Ф.И.О. кладовщика;
 общую сумму оплаты за выданный товар;
и для каждой единицы выданного товара
 наименование товара;
 цена отпуска товара;
 единица хранения товара на складе;
 количество единиц хранения полученного товара;
 стоимость выданных единиц хранения товара;
 место хранения выданных единиц хранения товара.
- отчет о наличии товаров на складе и их количестве на текущую дату
(Отчет 3), включающий
 текущие дату и время;
и для каждой единицы товара, имеющейся на складе
 наименование товара;
 единица хранения товара на складе;
 цена получения товара;
 цена отпуска товара;
 количество единиц хранения полученного товара.
- отчет об ущербе от просроченного товара (Отчет 4), включающий
 контрольную дату;
 оценку ущерба по цене получения товара;
27
 оценку ущерба по цене отпуска товара;
 Ф.И.О. кладовщика, оформляющего акт списания
и для каждой единицы выданного товара
 наименование товара;
 индекс товара;
 единица хранения товара;
 цена получения товара;
 цена отпуска товара;
 количество просроченного товара;
 оценка ущерба по цене получения конкретного товара;
 оценка ущерба по цене отпуска конкретного товара;
- акт списания просроченного товара (Отчет 5), включающий
 Ф.И.О. кладовщика, оформляющего акт списания
и для каждой единицы выданного товара
 индекс просроченного товара;
 наименование просроченного товара;
 срок хранения просроченного товара в сутках;
 индекс записи в таблице получения товара;
 дата производства товара;
 количество просроченного товара;
 место хранения товара.
Разработанные концептуальная модель предметной области,
инфологическая и даталогическая модели ИС позволяют приступить к
разработке программного обеспечения ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”.

28
2.2. Программное обеспечение ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”

Программное обеспечение (ПО) ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ” предназначено для ведения БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” и автоматического формирования в
режиме диалога выходных (результатных) документов.
Поскольку важным требованием разработки ИС является организация
режима диалога, разработку ПО начнем с проектирования сценария диалога, а,
за тем рассмотрим разработку ПО поддержки экранных форм,
предназначенных для ведения таблиц БД и формирования выходных
документов (результатной информации).
Для сокращения времени выполнения и затрат на рассматриваемый
проект решено ПО разрабатывать на языке программирования VBA.

2.2.1. Проектирование сценария диалога

Сценарий диалога представлен на рисунке 2.3. Прямоугольниками на


рисунке представлены экранные формы диалога, связанные с таблицами
(сущностями), которые с помощью форм можно редактировать, и выходными
документами (отчетами), получаемыми на основе выбранных на формах
параметров.
К чертежу, отображенному на рисунке 2.3 следует сделать следующие
пять пояснений:
1) квитанцию получения товара в виде отчета можно получить с двух
форм диалога – “Формирование квитанции получения товара” (Kvit_In_F) и
“Квитанции получения товара” (Kvit_In). Квитанция получения товара – Отчет
1;
2) квитанцию выдачи товара в виде отчета можно получить с двух форм
диалога – “Формирование квитанции выдачи товара” (Kvit_Out_F) и
“Квитанции выдачи товара” (Kvit_Out). Квитанция выдачи товара – Отчет 2;

29
3) Отчет “Наличие товара на складе” (Tov_Nal) можно получить с формы
диалога – “Главная кнопочная форма” (Main_F нажатием кнопки “Наличие
товара на текущие дату и время” (B_Nal_Tov). Отчет “Наличие товара на
складе” – Отчет 3;
4) отчет о просроченном товаре можно получить с формы диалога –
“Списание просроченного товара” (Spis_Tov) нажатием кнопки “Отчет о
просроченном товаре” (B_Prosr_Tov). Отчет о просроченном товаре – Отчет 4;
5) акт списания просроченного товара в виде отчета можно получить с
формы диалога – “Списание просроченного товара” (Spis_Tov) нажатием
кнопки “Акт списания” (B_Akt_Spis). Акт списания просроченного товара –
Отчет 5.

30
Главная кнопочная форма

Справочник Получение Выдача Квитанции Квитанции Списание


Кладовщики получения товара выдачи товара просроченного товара
товара товара товара

Tovar Input Kladov Output Kvit_In Kvit_Out Prosrotch Akt_Spis


ind_Tov ind_In ind_Kladov ind_Out ind_Kvit_In ind_Kvit_Out ind_Prosr ind_Akt
Tovar ind_Kvit_In FIO ind_Kvit_Out Date_In Date_Out ind_Akt Date_Out
Ed_Chran ind_Tov Rem ind_Tov ind_Kladov ind_Kladov ind_Tov ind_Kladov
Cena_In Kol_Tov Kol_Tov Itogo Itogo Ost_Tov
Cena_Out Date_Proizv Stoim ind_Chran
Kol_Tov_Skl Stoim ind_Chran Формирование акта ind_In
ind_Chran Ind_In списания
Ost_Tov
Формирование отчета о Отчет
Отчет
просроченном товаре 4
5

Места Формирование квитанции Формирование квитанции Наличие товара на текущие


получения товара Отчет
хранения выдачи товара дату и время 3

Mesto_Chran
КИУБиТ.080801.727 КР
ind_Chran
Лит. Масса Масштаб
Mesto_Chran Отчет Отчет ИС “СКЛАД”
Изм. Лист № докум. Подп. Дата
V_Chran 1 2 Р азраб. Кулаков А. продовольственных товаров.
Rem Пров. Ильин А. Схема диалога
Kol_Tov Т. контр. Лист 1 Листов 1
Конс.
Н. к онтр.
Кафедра ПИиМ
Ильин А.
Утв. Обрубов Ю.
Группа ЕПИ-04
Рисунок 2.3 - ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”. Схема диалога

32
Описание форм диалога и формирование рассмотрено ниже.

2.2.2. Описание программных модулей

Рассмотрим разработку ПО поддержки экранных форм, предназначенных


для ведения таблиц БД и формирования выходных документов (результатной
информации).

2.2.2.1. ЭКРАННЫЕ ФОРМЫ ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ


ТОВАРОВ”

Экранные формы ИС “Склад продовольственных товаров” для работы с


таблицами БД, формирования запросов и выходных документов представлены
на рисунках 2.4 – 2.27.
На рисунке 2.4 представлена главная кнопочная форма, которая
открывается при запуске приложения.

1 6 2 3 7 4 5

8 10 11 12 9

Рисунок 2.4 - Главная кнопочная форма


С помощью главной кнопочной формы (см. рисунок 2.4) можно
открывать формы для ведения и редактирования таблиц БД: 1 - “Информация о
товаре (справочник товара)” (Tovar), 2 - “Информация о получении товара”
(Input), 3 - “Информация о выдаче товара” (Output), 4 - “Информация о
кладовщиках” (Kladov), 5 - “Информация о месте хранения товара”
(Mesto_Chran), 6 - “Информация о квитанциях на получение товара” (Kvit_In), 8
- “Информация о квитанциях на выдачу товара” (Kvit_Out), 12 - “Информация о
просроченном товаре” (Prosrotch), а также формировать выходные документы в
виде квитанций на получение (выноска 7) и выдачу (выноска 9) товара.
Непосредственно с главной кнопочной формы можно инициировать просмотр
отчета о наличии товара на момент текущих даты и времени (выноска 10) и
печать этого отчета (выноска 11).
На рисунке 2.5 приведена экранная форма для ведения и редактирования
таблицы “Информация о товаре (справочник товара)” (Tovar).

Рисунок 2.5 - Ведение таблицы “Информация о товаре


(справочник товара)” (Tovar)

При редактировании таблицы “Информация о товаре (справочник


товара)” (Tovar) в поля соответствующей записи таблицы необходимо вводить
конкретные значения полей. Форма позволяет добавлять и удалять записи
таблицы “Информация о товаре (справочник товара)” (Tovar).
На рисунках 2.6 а и б приведена экранная форма для ведения и
редактирования таблицы “Информация о получении товара” (Input).

34
3 1 4 2 12

5 7 10 6 8 9 11

Рисунок 2.6а - Ведение таблицы “Информация о получении товара” (Input)


При редактировании таблицы “Информация о получении товара” (Input) в
поля соответствующей записи таблицы нет необходимости вводить конкретные
значения полей.
Индекс таблицы “Информация о получении товара” (Input) при
добавлении записи формируется автоматически (выноска 1). Поле индекса
квитанции получения товара (ind_Kvit_In) необходимо вводить в ручную (хотя
с формы формирования квитанции получения товара он формируется
автоматически) (см. выноску 2). Индекс получаемого товара (ind_Tov) (выноска
3) редактируется на основе визуального компонента список товаров (выноска
4), что позволяет не запоминать индексы, а выбирать их по названиям товаров
из таблицы “Информация о товаре (справочник товара)” (Tovar). Источником
строк записей списка товаров является запрос, который на языке SQL
представлен ниже

SELECT Tovar.ind_Tov, Tovar.Tovar FROM Tovar ORDER BY [Tovar];

Количество товара (выноска 5) и остаток товара (выноска 10) отображают


количество принятого товара в единицах хранения и остаток товара на складе
после его выдачи и/или списания, соответственно.
Единица хранения товара (выноска 6) не редактируется. На основе
визуального компонента список в ней отражаются единицы хранения товаров

35
из таблицы “Информация о товаре (справочник товара)” (Tovar). Источником
строк записей списка товаров является запрос, который на языке SQL
представлен ниже
SELECT Tovar.ind_Tov, Tovar.Ed_Chran FROM Tovar;
Индекс хранения товара (ind_Chran) (выноска 7) редактируется на основе
визуального компонента список мест хранения товаров (выноска 8), что
позволяет не запоминать индексы, а выбирать их по названиям мест хранения и
другой информации из таблицы “Информация о месте хранения товара”
(Mesto_Chran). Источником строк записей списка мет хранения товаров
является запрос, который на языке SQL представлен ниже (разработан автором)

SELECT DISTINCT Mesto_Chran.ind_Chran, Mesto_Chran.Mesto_Chran, Mesto_Chran.Rem,


Tovar.Tovar, Mesto_Chran.Kol_Tov
FROM Mesto_Chran, Tovar
WHERE INT(Mesto_Chran.Rem)=Tovar.ind_Tov ORDER BY [Rem];

Самостоятельно разрабатывать запрос пришлось из-за того, что в


результате подстановки в таблице Mesto_Chran вместо поля Rem отражается
индекс товара из таблицы Tovar.
Поле стоимости полученного товара (выноска 9) формируется
полуавтоматически. Щелчком по кнопке запускается запрос на обновление
(выноска 11), который разработан на основе конструктора запросов и на языке
SQL представлен ниже.

UPDATE Tovar INNER JOIN [Input] ON Tovar.ind_Tov = Input.ind_Tov


SET [Input].Stoim = Input!Kol_Tov*Tovar!Cena_In
WHERE (((Tovar.ind_Tov)=[Forms]![Input_Tov]![ind_Tov]));

Форма позволяет добавлять и удалять записи (выноска 12) таблицы


“Информация о получении товара” (Input).
На рисунок 2.6б - представлен раскрытый список мест хранения товаров.

36
Рисунок 2.6б - Ведение таблицы “Информация о получении товара” (Input)
В запросе формирования строк записей списка мет хранения товаров
(оператор SELECT) присутствуют 5 полей, а на рисунке 2.6б – только три поля.
Из-за малой информативности полей Mesto_Chran.ind_Chran и
Mesto_Chran.Rem их ширина задана – 0 см. Первое поле – место хранения
товара, второе - наименование товара, а третье – количество единиц хранения
товара.
Форма Ведение таблицы “Информация о получении товара” (Input) (см.
рисунки 2.6а и 2.6б) нужна лишь для редактирования таблицы БД
“Информация о получении товара” (Input). При формировании квитанции
получения товара необходимые поля таблицы Input заполняются
автоматизированно в результате диалога на основе формы 'Ведение таблицы
“Информация о квитанциях на выдачу товара” (Kvit_Out)', рассмотренной
ниже.
На рисунке 2.7 приведена экранная форма для ведения таблицы БД ИС
“Информация о выдаче товара” (Output).

37
Рисунок 2.7 - Ведение таблицы “Информация о выдаче товара” (Output)
Ведение таблицы “Информация о выдаче товара” (Output) мало по
функциональным возможностям отличается от ведения таблицы “Информация
о получении товара” (Input) (см. рисунки 2.6 а и б). Только обновление
стоимости реализуется не на основе цены получения товара, а на основе цены
отпуска. Щелчком по кнопке “Обновить стоимость” запускается запрос на
обновление, который разработан на основе конструктора запросов и на языке
SQL представлен ниже.

UPDATE Tovar INNER JOIN [Input] ON Tovar.ind_Tov = Input.ind_Tov


SET [Input].Stoim = Input!Kol_Tov*Tovar!Cena_Out
WHERE (((Tovar.ind_Tov)=[Forms]![Out_Tov]![ind_Tov]));

Форма позволяет добавлять и удалять записи (выноска 11) таблицы


“Информация о выдаче товара” (Output).
На рисунке 2.8 приведена экранная форма для ведения таблицы БД ИС
“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” “Информация о кладовщиках”
(Kladov).

38
Рисунок 2.8 - Ведение таблицы “Информация о кладовщиках” (Kladov)

При редактировании таблицы “Информация о кладовщиках” (Kladov) в


поля соответствующей записи таблицы необходимо вводить конкретные
значения полей. Только поле индекса ind_Kladov формируется автоматически
при добавлении новых записей.
Форма позволяет добавлять и удалять записи таблицы “Информация о
кладовщиках” (Kladov).
На рисунке 2.9 приведена экранная форма для ведения таблицы БД ИС
“СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ” “Информация о месте
хранения товара” (Mesto_Chran).

1 7
4
2

3 5 6

Рисунок 2.9 - Ведение таблицы “Информация о месте хранения товара”


(Mesto_Chran)

Основные визуальные компоненты формы обозначены выносками:


1–поле индекса места хранения (ind_Chran) – формируется
автоматически при добавлении записей в таблицу;

39
2–поле обозначения места хранения (Mesto_Chran) – ручной ввод при
редактировании и добавлении записей;
3–поле вместимости места хранения (V_Chran) в единицах хранения
товара;
4–поле количества товара (Kol_Tov) на текущее время в месте хранения
в единицах хранения товара;
5–поле описания места хранения (Rem). Как уже отмечалось выше, в
результате подстановки в таблице Mesto_Chran вместо поля Rem отражается
индекс товара из таблицы Tovar в символьном виде;
6–поле со списком описания места хранения товара – позволяет на
основе списка редактировать поле описания места хранения (Rem).
Источником строк записей списка описания мет хранения товаров
является запрос, который на языке SQL представлен ниже.

SELECT Tovar.ind_Tov, Tovar.Tovar FROM Tovar, Mesto_Chran


WHERE Tovar.ind_Tov=INT(Mesto_Chran.Rem) ORDER BY [Tovar];

Форма позволяет добавлять и удалять (кнопка обозначена выноской 7)


записи таблицы “Информация о месте хранения товара” (Mesto_Chran).
На рисунке 2.10 приведена экранная форма для ведения таблицы БД ИС
“Информация о квитанциях на получение товара” (Kvit_In).

40
1 6 4 2 7 5 8 3

Рисунок 2.10 - Ведение таблицы


“Информация о квитанциях на получение товара” (Kvit_In)

Сформированные квитанции на получение товара можно просматривать и


редактировать (редактирование в некоторых случаях можно запрещать) с
помощью экранной формы, представленной на рисунке 2.10. Выносками 1 – 4
обозначены поля таблицы БД “Информация о квитанциях на получение товара”
(Kvit_In). Названия полей представлены на рисунке. Выноской 5 обозначен
визуальный компонент типа поле со списком, хранящий Ф.И.О. всех
кладовщиков из таблицы “Информация о кладовщиках” (Kladov). Источником
строк записей списка Ф.И.О. всех кладовщиков является запрос, который на
языке SQL представлен ниже.

SELECT Kladov.ind_Kladov, Kladov.FIO FROM Kladov ORDER BY [FIO];

Поле Kladov.ind_Kladov в списке не отображается, так как его ширина


задана 0 см.
Выносками 6 – 8 обозначены визуальные компоненты кнопок “Просмотр
отчета по квитанции”, “Печать отчета по квитанции” и “Удалить текущую
запись”, соответственно. Программная реализация обработчиков событий

41
нажатия на кнопки “Просмотр отчета по квитанции” и “Печать отчета по
квитанции” рассмотрена ниже и в приложении А.
Следует отметить, что формирование одинаковых по форме и
содержанию отчетов по квитанциям получения/выдачи товаров возможно с
двух форм:
 Ведение таблицы “Информация о квитанциях на получение/выдача
товара” (Kvit_In, Kvit_Out) (две формы – одна на получение и другая – на
выдачу товаров) и
 Формирования квитанции получения/выдачи товаров (Kvit_In_F,
Kvit_Out_F) (две формы – одна на получение и другая – на выдачу товаров).
Учитывая это, подробно отчеты формирования соответствующих квитанций
будут рассмотрены лишь для форм формирования квитанции
получения/выдачи товаров (Kvit_In_F, Kvit_Out_F).
Выноской 9 обозначена подчиненная форма/отчет для отображения
информации о товарах, входящих в конкретную квитанцию. Источником
записей подчиненной формы/отчета является запрос Kvit_In_, который на языке
SQL представлен ниже.

SELECT Tovar.Tovar, Tovar.Cena_In, Tovar.Ed_Chran, Input.Kol_Tov, Input.Stoim,


Mesto_Chran.Mesto_Chran
FROM Tovar INNER JOIN (Mesto_Chran INNER JOIN [Input]
ON Mesto_Chran.ind_Chran = Input.ind_Chran) ON Tovar.ind_Tov = Input.ind_Tov
WHERE (((Input.ind_Kvit_In)=[Forms]![Kvit_In]![ind_Kvit_In]));

Форма позволяет добавлять и удалять (выноска 8) записи таблицы


“Информация о квитанциях на получение товара” (Kvit_In).
На рисунке 2.11 приведена экранная форма для ведения таблицы
“Информация о квитанциях на выдачу товара” (Kvit_Out).

42
Рисунок 2.11 - Ведение таблицы
“Информация о квитанциях на выдачу товара” (Kvit_Out)

Ведение таблицы “Информация о квитанциях на выдачу товара”


(Kvit_Out) мало по функциональным возможностям отличается от ведения
таблицы “Информация о квитанциях на получение товара” (Kvit_In) (см.
рисунок 2.10). Формы квитанций на получение и выдачу товаров очень похожи.
Хотя в некоторых других случаях отличия могут быть и более существенными.
Тогда, естественно, структуры таблиц “Информация о квитанциях на
прием/выдачу товара” запросов для формирования источников записей
подчиненной формы/отчета необходимо модифицировать.
Подчиненная форма/отчет для отображения информации о товарах,
входящих в конкретную квитанцию отличается от формы, представленной на
рисунке 2.10, источником записей в виде запроса Kvit_Out_, который на языке
SQL представлен ниже.

SELECT Tovar.Tovar, Tovar.Cena_Out, Tovar.Ed_Chran, Output.Kol_Tov, Output.Stoim,


Mesto_Chran.Mesto_Chran
FROM Tovar INNER JOIN (Mesto_Chran INNER JOIN [Output]
ON Mesto_Chran.ind_Chran = Output.ind_Chran) ON Tovar.ind_Tov = Output.ind_Tov
WHERE (((Output.ind_Kvit_Out)=[Forms]![Kvit_Out]![ind_Kvit_Out]));

43
Программное обеспечение поддержки формы представлено в приложении
Б. Все операторы VBA, полученные без участия построителя,
прокомментированы.
Форма позволяет добавлять и удалять записи таблицы “Информация о
квитанциях на выдачу товара” (Kvit_Out).
Все выходные документы формируются на основе отчетов MS Access.

2.2.2.2. Отчет о формировании квитанции получения товара (Отчет 1)

На рисунке 2.12 представлена экранная форма формирования выходного


документа – квитанции получения товара.

4 3

Рисунок 2.12 - Форма формирования квитанции получения товара

Помимо информации, представленной на форме ведения и просмотра


таблицы “Информация о квитанциях на получение товара” (Kvit_In) (см.
рисунок 2.10), рисунок 2.12 содержит визуальные компоненты для добавления
товаров в квитанцию получения товара (выноски 1 – 4):
1–поле со списком для выбора наименования товара. При раскрытии
списка элемента в его строках вместе с наименованием товара отображается его
цена получения. Источник строк списка является запросом, на языке SQL
который представлен ниже.
SELECT Tovar.ind_Tov, Tovar.Tovar, Tovar.Cena_In FROM Tovar;
2–поле для ввода количества получаемого товара в единицах хранения;

44
3–поле со списком для выбора места хранения получаемого товара. При
раскрытии списка элемента в его строках вместе с наименованием места
хранения отображается наименование товара, количество товара в месте
хранения и допустимое количество товара в месте хранения (в единицах
хранения). Источник строк списка является запросом, на языке SQL который
представлен ниже.

SELECT DISTINCT Mesto_Chran.ind_Chran, Mesto_Chran.Mesto_Chran, Mesto_Chran.Rem,


Tovar.Tovar, Mesto_Chran.Kol_Tov, Mesto_Chran.V_Chran
FROM Mesto_Chran, Tovar
WHERE INT(Mesto_Chran.Rem)=Tovar.ind_Tov ORDER BY [Rem];

Запрос сформирован в режиме конструктора, однако, в операторе SELECT


добавлено служебное слово DISTINCT, исключающее возможность вывода
одинаковых строк в результирующую таблицу запроса.
4–кнопка для выбора добавления выбранного товара и сопутствующей
информации в квитанцию получения товара. При нажатии кнопки в таблицу
“Информация о получении товара” (Input) автоматически добавляется запись с
соответствующим индексом квитанции получения товара. При этом в таблицах
“Информация о товаре (справочник товара)” (Tovar) и “Информация о месте
хранения товара” (Mesto_Chran) увеличивается количество товара на складе. На
величину заданную в поле Kol_Tov. Если попытаться принять товара больше,
чем вмещает место хранение, то добавление записи в таблицу “Информация о
получении товара” (Input) не происходит и выдается предупреждению,
представленное на рисунке 2.13.

Рисунок 2.13 - Окно предупреждения по переполнению места хранения


После нажатия кнопки “OK” процедура добавления товара в квитанцию
завершается.
45
Программное обеспечение поддержки формы представлено в приложении
В. В основном все операторы VBA программного кода прокомментированы.
При нажатии на кнопку “Просмотр отчета по квитанции” появляется
экранная форма отчета по формируемой квитанции приема товара,
включающая информацию с формы формирования квитанции получения товара
(см. рисунок 2.12).
Форма отчета по формированию квитанций приема товара в режиме
конструктора представлена на рисунке 2.14.

Рисунок 2.14 - Форма отчета по формированию квитанций приема


товара в режиме конструктора

В отчете по формированию квитанций приема товара отражается


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

46
Таблица 2.10 - Формирование Ф.И.О. выбранного пользователя
Имя

визуального Данные Формат поля Описание
п/п
компонента
1. Date_Time =Формы!Kvit_In_F!Date_In Полный Дата и время
формат даты формирования
квитанции
2. ind_Kvit =Формы!Kvit_In_F!ind_Kvit_In Числовой Индекс квитанции
3. Kladov =Формы!Kvit_In_F! Текстовый Ф.И.О. кладовщика
Sel_Kladov.Text
4. Itogo =Формы!Kvit_In_F!Itogo Денежный Сумма по
квитанции
Значения полей, обозначенных выносками 1– 4, берутся из формы
формирования квитанции получения товара (Kvit_In_F) (см. рисунок 2.12) из
свойств компонентов Date_In, ind_Kvit_In, Sel_Kladov и Itogo, соответственно.
На рисунок 2.15 представлен пример отчета о формировании квитанций
для выбираемого клиента.

Рисунок 2.15 - Пример отчета по формированию квитанций приема товара

Для просмотра отчета по формированию квитанций приема товара


необходимо щелкнуть левой кнопкой манипулятора “мышь” по кнопке
“Просмотр отчета по квитанции” формы формирования квитанции получения

47
товара (см. рисунок 2.12).
При необходимости можно получить твердую копию квитанции
получения товара, нажав кнопку “Печать отчета по квитанции”.
Отчет легко просмотреть в MS Word и сохранить в формате RTF.

2.2.2.3. Отчет о формировании квитанции выдачи товара (Отчет 2)

На рисунке 2.16 представлена экранная форма формирования выходного


документа – квитанции выдачи товара.

Рисунок 2.16 - Форма формирования квитанции получения товара

Как видно, экранная форма формирования выходного документа –


квитанции выдачи товара сильно схожа с формой формирования квитанции
получения товара, представленной на рисунке 2.12.
Раскроем основные отличия этих двух форм в таблице 2.11.
Таблица 2.11 - Основные отличия форм формирования
квитанций получения и выдачи товара
Форма Форма
№ Обзозначение формирования формирования
п/п характеристики квитанции квитанции выдачи
получения товара товара
1. Индекс квитанции ind_Kvit_In ind_Kvit_Out
2. Источник данных формы таблица Kvit_In таблица Kvit_Out

48
Форма Форма
№ Обзозначение формирования формирования
п/п характеристики квитанции квитанции выдачи
получения товара товара
3. Запрос подчиненной формы Kvit_In_F Kvit_Out_F
4. Дополнительная таблица Input Output

Если попытаться выдать товара больше, чем есть в месте хранения, то


добавление записи в таблицу “Информация о получении товара” (Output) не
происходит и выдается предупреждению, представленное на рисунке 2.17.

Рисунок 2.17 - Окно предупреждения по переполнению места хранения


После нажатия кнопки “OK” процедура добавления товара в квитанцию
завершается.
Программное обеспечение поддержки формы представлено в приложении
Г. В основном все операторы VBA программного кода прокомментированы.
При нажатии на кнопку “Просмотр отчета по квитанции” появляется
экранная форма отчета по формируемой квитанции выдачи товара,
включающая информацию с формы формирования квитанции получения товара
(см. рисунок 2.16).
Форма отчета по формированию квитанций приема товара в режиме
конструктора представлена на рисунке 2.18.
В отчете по формированию квитанций приема товара отражается
результирующая таблица запроса Kvit_In_F. В результирующую таблицу
входят записи, соответствующие индексу формируемой квитанции.

49
1

Рисунок 2.18 - Форма отчета по формированию квитанций выдачи


товара в режиме конструктора

Выносками 1 – 4 обозначены визуальные компоненты типа поле,


формирование которых раскрыто в таблице 2.12.
Таблица 2.12 - Формирование Ф.И.О. выбранного пользователя
Имя

визуального Данные Формат поля Описание
п/п
компонента
1. Date_Time =Формы!Kvit_Out_F!Date_Out Полный Дата и время
формат даты формирования
квитанции
2. ind_Kvit =Формы!Kvit_Out_F! Числовой Индекс квитанции
ind_Kvit_Out
3. Kladov =Формы!Kvit_Out_F! Текстовый Ф.И.О. кладовщика
Sel_Kladov.SelText
4. Itogo =Формы!Kvit_Out_F!Itogo Денежный Сумма по
квитанции
Значения полей, обозначенных выносками 1– 4, берутся из формы
формирования квитанции получения товара (Kvit_Out_F) (см. рисунок 2.12) из
свойств компонентов Date_In, ind_Kvit_In, Sel_Kladov и Itogo, соответственно.

50
На рисунке 2.19 представлен пример отчета о формировании квитанции
выдачи товара со склада.

Рисунок 2.19 - Пример отчета по формированию квитанций выдачи товара

Для просмотра отчета по формированию квитанций выдачи товара


необходимо щелкнуть левой кнопкой манипулятора “мышь” по кнопке
“Просмотр отчета по квитанции” формы формирования квитанции выдачи
товара (см. рисунок 2.16).
При необходимости можно получить твердую копию квитанции выдачи
товара, нажав кнопку “Печать отчета по квитанции”.
Отчет легко просмотреть в MS Word и сохранить в формате RTF.

2.2.2.4. Отчет о наличии товаров на складе продовольственных товаров и их


количестве на текущую дату (Отчет 3)

Просмотр отчета о наличии товаров на складе и их количестве на


текущую дату реализован на основе запроса на выборку, созданного в
конструкторе запросов (Tov_Nal). На языке SQL запрос выглядит следующим
образом:

SELECT Tovar.ind_Tov, Tovar.Tovar, Tovar.Ed_Chran, Tovar.Cena_In, Tovar.Cena_Out,


Tovar.Kol_Tov_Skl

51
FROM Tovar
WHERE (((Tovar.Kol_Tov_Skl)>0))
ORDER BY Tovar.Tovar;

На основе запроса из таблицы “Информация о товаре (справочник


товара)” (Tovar) выбираются записи, значение поля наличия на складе
(Kol_Tov_Skl) в которых больше нуля.
Просмотр отчета инициируется щелчком левой кнопки манипулятора
“мышь” по кнопке “Наличие товара на текущие дату и время” главной
кнопочной формы (см. рисунок 2.4). Можно получить твердую копию отчета
(напечатать его), щелкнув левой кнопкой манипулятора “мышь” по
расположенной рядом кнопке “Печать отчета о наличии товара на текущие дату
и время”.
Форма отчета о наличии товаров на складе и их количестве на текущую
дату в режиме конструктора представлена на рисунке 2.20.

Рисунок 2.20 - Форма отчета о наличии товаров на складе продовольственных


товаров и их количестве на текущую дату

Пример формы отчета о наличии товаров на складе и их количестве на


текущую дату на рисунке 2.21.

52
Рисунок 2.21 - Пример формы отчета о наличии товаров на складе
продовольственных товаров и их количестве на текущую дату

Отчет содержит всю необходимую информацию. Его легко просмотреть в


MS Word и сохранить в формате RTF.

2.2.2.5. Отчет об ущербе от просроченного товара (Отчет 4)

На рисунке 2.22 представлена экранная форма формирования двух


выходных документов – отчет об ущербе от просроченного товара (Отчет 4) и
акта списания просроченного товара (Отчет 5).
Основные элементы формы обозначены выносками 1 – 10.
1 – контрольная дата (элемент типа поле), на которую определяются
товары с просроченным сроком реализации. При открытии формы в поле
отображается текущая дата. При необходимости ее можно отредактировать; 2 –
индекс кладовщика, необходимый для связи с таблицей “Кладовщики”
(Kladov);

53
1 5 6 7 3 8

4 10 9

Рисунок 2.22 - Форма списания просроченного товара

3 – список кладовщиков, необходимый для выбора Ф.И.О. кладовщика и


запоминания его индекса; 4 – подчиненная форма/отчет “подчиненная форма
Prosr_Tov”, необходимая для отображения информации о просроченных
товарах на контрольную дату. Информация формируется на основе запроса
“Prosr_Tov”, текст на языке SQL которого приведен ниже

SELECT Tovar.ind_Tov, Tovar.Tovar, Tovar.Ed_Chran, Tovar.Cena_In, Tovar.Cena_Out,


Input.Ost_tov, DateValue(Input!Date_Proizv)+Tovar!Srok_Chran AS Date_Realiz,
[Cena_In]*[Ost_tov] AS U_in, [Cena_Out]*[Ost_tov] AS U_out
FROM Tovar INNER JOIN (Mesto_Chran INNER JOIN [Input] ON
Mesto_Chran.ind_Chran = Input.ind_Chran) ON Tovar.ind_Tov = Input.ind_Tov
WHERE (((Input.Ost_tov)>0) AND ((DateValue([Input]![Date_Proizv])
+[Tovar]![Srok_Chran])<[Forms]![Spis_Tov]![Date_Real]))
ORDER BY Tovar.Tovar;

5 – кнопка “Обновить на контрольную дату” (B_Prosro), после нажатия на


которую в подчиненной форме будет отражаться информация,
соответствующая введенной контрольной дате; 6, 7 – кнопки (B_Prosr_Tov,
B_Prin_Prosr), после нажатия на которые будет отображаться в отдельном окне
или печататься “Отчет об ущербе от просроченного товара” (Отчет 4),
54
соответственно; 8, 9 – кнопки (B_Akt_Spis, B_Prin_Akt), после нажатия на
которые будет отображаться в отдельном окне или печататься “Акт списания
просроченного товара” (Отчет 5), соответственно; 10 – кнопка “Формирование
таблиц списания” (B_Tab_Akt), после нажатия на которую происходит
автоматизированное добавление записей в таблицу “Информация о
просроченных товарах” (Prosrotch), корректировка количества товаров в
таблицах “Информация о получении товара” (Input), “Информация о месте
хранения товара” (Mesto_Chran), “Информация о товаре (справочник товара)”
(Tovar), а также корректировка полей индекс кладовщика (ind_Kladov) и
итоговая стоимость (Itogo) таблицы “Информация об актах списания
просроченных товаров” (Akt_Spis). Функциональная реализация нажатия
кнопки “Формирование таблиц списания” (B_Tab_Akt) основана на трех
запросах Fn_Out, Add_Out и Obn_Kol_TO, коды которых на языке SQL
приведены ниже.
Код запроса Fn_Out на языке SQL, формирующего запись, которую
необходимо добавлять в таблицу “Информация о выдачи товара” (Output):

SELECT DISTINCT Kvit_Out.ind_Kvit_Out, Input.ind_Tov, CInt(Forms!Kvit_Out_F!Kol_Tov)


AS Kol_Tov, Tovar!Cena_Out*Forms!Kvit_Out_F!Kol_Tov AS Stoim,
CInt(Forms!Kvit_Out_F!ind_Mesto_Chran) AS ind_Chran, Input.ind_In
FROM Kvit_Out, [Output], Tovar INNER JOIN (Mesto_Chran INNER JOIN [Input] ON
Mesto_Chran.ind_Chran = Input.ind_Chran) ON Tovar.ind_Tov = Input.ind_Tov
WHERE (((Kvit_Out.ind_Kvit_Out)=[Forms]![Kvit_Out_F]![ind_Kvit_Out]) AND
((Input.ind_Tov)=CInt([Forms]![Kvit_Out_F]![Sel_Tov].[Value])) AND
((Input.ind_In)=[Forms]![Kvit_Out_F]![ind_In]));

Код запроса Add_Out на языке SQL, добавляющего запись в таблицу


“Информация о выдачи товара” (Output):

INSERT INTO [Output] ( ind_Kvit_Out, ind_Tov, ind_In, Kol_Tov, Stoim, ind_Chran )


SELECT DISTINCT Fn_Out.ind_Kvit_Out, Fn_Out.ind_Tov, Fn_Out.ind_In, Fn_Out.Kol_Tov,
Fn_Out.Stoim, Fn_Out.ind_Chran
FROM Fn_Out;

55
Код запроса Obn_Kol_TO на языке SQL, реализующего корректировку
количества товаров в таблицах “Информация о получении товара” (Input),
“Информация о месте хранения товара” (Mesto_Chran), а также полей индекс
кладовщика (ind_Kladov) и итоговая стоимость (Itogo) таблицы “Информация
об актах списания просроченных товаров” (Akt_Spis):

UPDATE Tovar INNER JOIN (Mesto_Chran INNER JOIN (Kvit_Out INNER JOIN ([Input]
INNER JOIN [Output] ON Input.ind_In = Output.ind_In) ON
Kvit_Out.ind_Kvit_Out = Output.ind_Kvit_Out) ON
(Mesto_Chran.ind_Chran = Output.ind_Chran) AND (Mesto_Chran.ind_Chran = Input.ind_Chran))
ON (Tovar.ind_Tov = Output.ind_Tov) AND (Tovar.ind_Tov = Input.ind_Tov)
SET [Input].Ost_tov = Input!Ost_tov-Forms!Kvit_Out_F!Kol_Tov,
Mesto_Chran.Kol_Tov = Mesto_Chran!Kol_Tov-Forms!Kvit_Out_F!Kol_Tov,
Tovar.Kol_Tov_Skl = Tovar!Kol_Tov_Skl-Forms!Kvit_Out_F!Kol_Tov, [Output].Kol_Tov =
Forms!Kvit_Out_F!Kol_Tov, Kvit_Out.ind_Kladov = Forms!Kvit_Out_F!ind_Kladov,
Kvit_Out.Itogo = Kvit_Out!Itogo+Output!Stoim
WHERE (((Kvit_Out.ind_Kvit_Out)=[Forms]![Kvit_Out_F]![ind_Kvit_Out]) AND
((Output.ind_Out)=DLast([Output]![ind_Out],"Output")) AND
((Input.ind_In)=[Forms]![Kvit_Out_F]![ind_In]));

ПО формы списания просроченного товара (см. рисунок 2.22)


представлено в приложении Д.
Для отладки ПО, реализующего запросы Fn_Out, Add_Out и Obn_Kol_TO
на форме списания просроченного товара (см. рисунок 2.22) были добавлены
две кнопки, представленные на рисунке 2.23 в режиме конструктора форм.

56
1 2

Рисунок 2.23 - Форма списания просроченного товара в режиме отладки

Выносками 1, 2 обозначены визуальные компоненты типа кнопка,


реализующие 1 – запрос Add_Out и 2 – запрос Obn_Kol_TO. После отладки ПО
в процедуру Private Sub B_Tab_Akt_Click() (см. приложение Д) следует
добавить процедуры реализации соответствующих запросов,
' Добавить таблицу просроченных товаров (Prosrotch)
Call B_Add_Tov_Click
' Удалить из таблиц Input, Mesto_Cran, Tovar просроченные товары
Call B_Del_Tov_Click
а кнопки, отмеченные выносками 1, 2 – удалить.
Отчет об ущербе от просроченного товара (Отчет 4) в режиме
конструктора представлен на рисунке 24.

57
2 1 3

Рисунок 2.24 - Отчет об ущербе от просроченного товара


в режиме конструктора
Формирование полей, отмеченных выносками 1 – 4 представлено в
таблице 2.13. № п/п соответствует номеру выноски.
Таблица 2.13 - Формирование Ф.И.О. выбранного пользователя
Имя

визуального Данные Формат поля Описание
п/п
компонента
1. Date_C =Формы!Spis_Tov!Date_Real Краткий Контрольная
формат даты дата
2. Ush_in =Sum([U_in]) Денежный Ущерб по цене
получения
товара
3. Ush_out =Sum([U_out]) Денежный Ущерб по цене
отпуска товара
4. Kladov =Формы!Spis_Tov!Sel_Kladov.Text Текстовый Ф.И.О.
кладовщика
Значения полей, обозначенных выносками 1 – 4, берутся из формы
списания просроченного товара (Spis_Tov) (см. рисунок 2.22) из
соответствующих свойств компонентов формы.
Информационная таблица отчета формируется на основе запроса выше
рассмотренного запроса “Prosr_Tov”.

58
На рисунке 2.25 представлен пример отчета об ущербе от просроченного
товара.

Рисунок 2.25 - Пример отчета об ущербе от просроченного товара

Для просмотра отчета об ущербе от просроченного товара необходимо


щелкнуть левой кнопкой манипулятора “мышь” по кнопке “Отчет о
просроченном товаре” формы списания просроченного товара (см. рисунок
2.22).
При необходимости можно получить твердую копию квитанции выдачи
товара, нажав кнопку “Печать отчета по квитанции” (выноска 7 рисунка 2.22).
Отчет легко просмотреть в MS Word и сохранить в формате RTF.

2.2.2.6. Акт списания просроченного товара (Отчет 5)

Для просмотра акта списания просроченных товаров на контрольную


дату необходимо щелкнуть левой кнопкой манипулятора “мышь” по кнопке
“Акт списания” (B_Akt_Spis), обозначенной выноской 8, экранной формы,
представленной на рисунке 2.22.

59
Акт списания просроченного товара в режиме конструктора представлен
на рисунке 2.26

Рисунок 2.26 - Акт списания просроченного товара в режиме конструктора

Формирование полей, отмеченных выносками 1, 2 представлено в


таблице 2.14. № п/п соответствует номеру выноски.
Таблица 2.14 - Формирование полей отчета
акта списания просроченного товара
Имя

визуального Данные Формат поля Описание
п/п
компонента
1. Date_C =Формы!Spis_Tov!Date_Real Краткий Контрольная
формат даты дата
2. Kladov =Формы!Spis_Tov!Sel_Kladov.Text Текстовый Ф.И.О.
кладовщика
Значения полей, обозначенных выносками 1, 2, берутся из формы
списания просроченного товара (Spis_Tov) (см. рисунок 2.22) из
соответствующих свойств компонентов формы.
Информационная таблица отчета формируется на основе запроса
“SQL_Akt_Spis”, код которого на языке SQL представлен ниже

SELECT Tovar.ind_Tov, Input.ind_In, Tovar.Tovar, Input.Date_Proizv, Tovar.Srok_Chran,


Input.Ost_tov, Mesto_Chran.Mesto_Chran
FROM Tovar INNER JOIN (Mesto_Chran INNER JOIN [Input] ON

60
Mesto_Chran.ind_Chran = Input.ind_Chran) ON Tovar.ind_Tov = Input.ind_Tov
WHERE (((Input.Ost_tov)>0) AND
((DateValue([Input]![Date_Proizv])+[Tovar]![Srok_Chran])<[Forms]![Spis_Tov]![Date_Real]))
ORDER BY Tovar.Tovar;

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


2.27.

Рисунок 2.27 - Пример акта списания просроченного товара

Акта списания содержит всю необходимую информацию для


утилизации просроченного товара.
При необходимости можно получить твердую копию квитанции выдачи
товара, нажав кнопку “Печать акта списания” (выноска 9 рисунка 2.22).
Отчет легко просмотреть в MS Word и сохранить в формате RTF.

61
2.3. Технологическое обеспечение ИС “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ”

Технологический процесс состоит из трех основных этапов:


домашинной, машинной и послемашинной обработки. Каждый из этих этапов,
в свою очередь, Включает несколько технологических операций.
Домашинная обработка включает
1) проверку документации, регламентирующей прием/выдачу/списание
товаров на слад (со склада);
2) при этом сам технологический процесс может быть разветвленным, т.к.
выполнение конкретной операции может привести к различным результатам, в
зависимости от которых должны выполняться те или иные операции (прием
тваров может завершиться по-разному: качества товаров соответствуют
требованиям, включая сопровождение документами; товара и/или документы не
могут быть приняты из-за отклонения от установленных требований. В первом
случае следующей операцией будет передача их на обработку, а во втором -
возврат на исправление в отдел (ответственному лицу и т.д.);
3) выбор последовательности операций, оптимизирующих этапы
домашинной обработки (выбор маршрута для погрузки/разгрузки товаров,
выбор способов упаковки и т.п.). К сожалению, пока эта технологическая
операция не входит в машинную обработку и, безусловно, представляет
интерес для специалистов в области прикладной информатики;
4) и т.д.
Машинная обработка заключается в автоматическом формировании пяти
рассмотренных выходных документов, без которых невозможен учет товаров,
хранящихся на складе, а также формирование данных для контроля
материальной ответственности и передвижения материальных ценностей.
Послемашинная обработка заключается в проведении непосредственных
работ по приему, выдачи и списания товаров, хранящихся на складе, включая
погрузочно-разгрузочные работы, упаковку товаров и т.п.

62
2.4. Руководство пользователя ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”

Общие сведения о программе: ИС “Склад продовольственных товаров”


предназначена для автоматизации документооборота на складе
продовольственных товаров. ИС позволяет в автоматизированном режиме
формировать пять документов:
 квитанция получения товаров на склад (Отчет 1);
 квитанция выдачи товаров со склада (Отчет 2);
 отчет о наличии товаров на складе и их количестве на текущую дату
(Отчет 3);
 отчет об ущербе от просроченного товара (Отчет 4);
 акт списания просроченного товара (Отчет 5)
К уровню подготовки пользователя не предъявляются особые требования.
Условия применения программы: Частота процессора – 40 МГц и
выше; Объем оперативной памяти – 512 МБ и выше; Объем дисковой памяти
(только для ПО) – 40 МБ и выше; Операционная система – MS Windows XP и
выше; СУБД – MS Access-2003 и выше.
Подготовка к работе: необходимо установить на компьютере
пользователя единственный файл Sklad_PT.mdb, содержащий необходимые
таблицы БД, экранные формы для диалога с пользователем и разработанное
ПО. Файл Sklad_PT.mdb можно скопировать в любую директорию компьютера
пользователя. Возможно создать ярлык файла Sklad_PT.mdb на рабочем столе
компьютера пользователя. Работоспособность программы проверяется вводом
данных в таблицы БД при реализации операций приема/выдачи/списания
товаров (формирования квитанций приема/выдачи товаров, формирования
отчета об ущербе от просроченного товара, формирования акта списания
просроченного товара, формирования таблиц списания (см. рисунок 2.22)).
Проверка правильности формирования перечисленных документов (и
изменений в таблицах БД) не вызывает принципиальных сложностей и требует
лишь временных затрат.
63
Выполнение и завершение программы: Запустить программу можно
двойным щелчком левой кнопки манипулятора “мышь” по ярлыку на рабочем
столе файла Sklad_PT.mdb или другими общепринятыми способами. При
запуске программы открывается “Главная кнопочная форма” (см. рисунок 2.4),
позволяющая реализовать любые операции ИС. Завершить работу программы
следует закрытием СУБД MS Access. Логическая структура меню комплекса и
последовательность действий пользователя при выполнении программы
достаточно полно отражена на рисунок 2.3. (ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”. Схема диалога). ПО формирует
сообщения пользователю только в двух случаях: 1) при попытке получить
количество товара, не помещающегося в заданном месте хранения (см. рисунок
2.13) и 2) при попытке выдать количество товара, которого нет в заданном
месте хранения (см. рисунок 2.17).
Рекомендации по освоению: Ознакомиться с пояснительной запиской к
ДП.
Программу и методику испытаний разработанной ИС “Склад
продовольственных товаров” рассматривать нет смысла из-за достаточной
простоты реализуемых функций, самые сложные из которых записываются
n
 xi , (2.1)
i 1

mi  xi , (2.2)
где mi , xi - вещественные переменные, а n  10 - целая переменная.
Не смотря на простоту реализуемых функций, ИС “Склад
продовольственных товаров” значительно сокращает время формирования
выходных документов.

64
3. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

3.1. Выбор и обоснование методики расчета экономической эффективности

Любой проект по автоматизации решения экономической задачи


должен быть обоснован расчетом ожидаемой эффективности от его внедрения.
Автоматизация процесса обработки данных направлена на достижение таких
целей, как сокращение сроков обработки информации, снижение трудовых и
стоимостных затрат на обработку информации, повышение качества выходных
отчетов, что улучшает точность и оперативность принимаемых руководством
управленческих решений.
Таким образом, экономическая эффективность проекта складывается из
двух составляющих: косвенного эффекта и прямого эффекта.
Э  Э к  Эп , (3.1)
где Э - экономическая эффективность проекта;
Э к - косвенный эффект;

Эп - прямой эффект.

Косвенный эффект характеризуется, в основном, улучшением качественных


характеристик, таких как улучшение качества выполняемых работ, уменьшение
числа сбоев в работе обслуживаемой техники и т.д. Перечисленные показатели
достаточно сложно формализовать, что затрудняет расчет косвенного эффекта от
автоматизированной обработки данных в общей эффективности, получение
которой связано с комплексом мер по улучшению деятельности
информационного отдела.
Прямой эффект отражает сокращение трудовых (формулы 3.2 - 3.4) и
стоимостных (формулы 3.5 - 3.7) затрат на обработку данных, которые позволяют
расчетным путем определить его величину.

65
К трудовым показателям относятся:
- абсолютное снижение трудовых затрат;
- коэффициент относительного снижения трудовых затрат;
- индекс снижения трудовых затрат или повышения.
Абсолютное снижение трудовых затрат рассчитывается как разница
между трудовыми затратами на обработку информации по старой
методике и трудовыми затратами на обработку информации по
проектируемому варианту:
T  T0  T1 , (3.2)
где T – абсолютное снижение трудовых затрат;
T0 – трудовые затраты на обработку информации по базовому варианту;

T1 - трудовые затраты на обработку информации по проектируемому

варианту.
Коэффициент относительного снижения трудовых затрат рассчитывается
как отношение абсолютного снижения трудовых затрат к трудовым затратам по
базовому варианту:
T
KT  , (3.3)
T0

где KT - коэффициент относительного снижения трудовых затрат;


T - абсолютное снижение трудовых затрат;
T0 - трудовые затраты на обработку информации по базовому варианту.

Индекс снижения трудовых затрат или повышения производительности


труда рассчитывается как отношение трудовых затрат на обработку
информации по базовому варианту к трудовым затратам на обработку
информации по проектируемому варианту:
T
IT  0 , (3.4)
T1

где IT - индекс снижения трудовых затрат или повышения производительности


труда;
T0 - трудовые затраты на обработку информации по базовому варианту;

66
T1 - трудовые затраты на обработку информации по проектируемому

варианту.

К стоимостным показателям относятся:

- абсолютное снижение стоимости затрат;

- коэффициент относительного снижения стоимостных затрат;

- индекс снижения стоимости затрат.


Абсолютное снижение стоимости затрат рассчитывается как разница
между стоимостными затратами на обработку информации по старой методике
и стоимостными затратами на обработку информации по проектируемому
варианту:

C  C0  C1 , (3.5)

где C - абсолютное снижение стоимостных затрат;

C0 - стоимостные затраты на обработку информации по базовому


варианту;

C1 - стоимостные затраты на обработку информации по проектируемому

варианту.
Коэффициент относительного снижения стоимостных затрат
рассчитывается как отношение абсолютного снижения стоимостных затрат к
стоимостным затратам на обработку информации по базовому варианту:

C
KC  , (3.6)
C0

где K C - коэффициент относительного снижения стоимостных затрат;

C - абсолютное снижение стоимостных затрат;

C0 - стоимостные затраты на обработку информации по базовому варианту.

Индекс снижения стоимости затрат рассчитывается как отношение


стоимостных затрат на обработку информации по базовому варианту к

67
стоимостным затратам на обработку информации по проектируемому варианту:

C
IC  0 , (3.7)
C1

где I C - индекс снижения стоимостных затрат;


C0 - стоимостные затраты на обработку информации по базовому

варианту;
C1 - стоимостные затраты на обработку информации по проектируемому

варианту.
В связи с вышеизложенным, при выявлении экономической
эффективности информационной системы “СКЛАД ПРОДОВОЛЬСТВЕННЫХ
ТОВАРОВ” будет рассчитываться прямой эффект.
В рассматриваемой организации при существующей технологии получения,
хранения и отпуска продовольственных товаров использовались папки и журналы
для учета товаров, а также затраченных и полученных средств. Компьютер
практически не использовался. Проектируемый вариант разрабатывался с целью
автоматизации процесса учета товаров, а также затраченных и полученных
средств, с целью создания и ведения базы данных хранимых
продовольственных товаров, позволяющей автоматизировать формирование
отчетных документов. Поэтому, за основу расчета прямого эффекта
целесообразно взять сопоставление операций существующего (базового) и
внедряемого (проектируемого) вариантов, то есть анализ затрат, необходимых для
выполнения всех операций процесса хранения продовольственных товаров и
формирования отчетных документов.
Прямой эффект вычисляется следующим образом (годовая экономия):
Э   C0  E H  K 0    C1  E H  K1  , (3.8)
где Э – прямой эффект;
C0 – текущие стоимостные затраты при базовом варианте;

E H – нормативный коэффициент эффективности капитальных вложений,

ниже которого они уже будут нецелесообразны (=0,15);

68
K 0 – капитальные вложения в базовом варианте;

C1 – текущие стоимостные затраты при проектируемом варианте;

K1 – капитальные вложения в проектируемом варианте;

Капитальные затраты i варианта рассчитываются следующим образом:


Ki  Ci _ проект.  Ci _ прогр.  Ci _ отл.  Ci _ внедр.  Ci _ покуп.ТОиПО , (3.9)
где K i – капитальные затраты i-го варианта;
Ci _ проект. – стоимость проектирования i-го варианта;
Ci _ прогр. – стоимость программирования i-го варианта;
Ci _ отл. – стоимость отладки i-го варианта;
Ci _ внедр. – стоимость внедрения i-го варианта;
Ci _ покуп.ТОиПО – стоимость технического и программного обеспечения i-го
варианта;
Стоимость проектирования рассчитывается как сумма всех затрат на процесс
проектирования:
Cпроект.  Tпроект. _ 1  CK/час  Tпроект._2  З/ПЛспец.  K чел.  1  K НР  , (3.10)
где Cпроект. – стоимость проектирования;
Tпроект. _ 1 – время использования ПК при проектировании в часах;
CK/час – стоимость одного часа работы компьютера;

Tпроект._2 – время проектирования в месяцах;


З/ПЛ спец. – месячная зарплата специалиста:
K чел. – количество человек;

K НР – коэффициент накладных расходов (=0,65).

Стоимость программирования рассчитывается как сумма всех затрат на


процесс программирования:
Cпрогр.  Tпрогр._ 1  СK/ЧАС  Tпрогр. _ 2  З/ПЛспец.  K чел.  1  K HP  , (3.11)
где Cпрогр. – стоимость программирования;
Tпрогр. _ 1 – время использования ПК при программировании в часах;
СK/ЧАС – стоимость одного часа работы компьютера;

Tпрогр. _ 2 – время программирования в месяцах;

69
З/ПЛ спец. – месячная зарплата специалиста, занимающегося
программированием;
K чел. – количество человек;

K HP – коэффициент накладных расходов (=0,65).

Стоимость отладки соответственно рассчитывается как сумма всех затрат на


процесс отладки:
Cотл.  Tотл. _ 1  CK/ЧАС  Tотл. _ 2  З/ПЛ спец.  K чел.  1  K HP  , (3.12)
где Cотл. – стоимость отладки;
Tотл. _ 1 – время использования ПК при отладке в часах;
CK/ЧАС – стоимость одного часа работы компьютера;

Tотл. _ 2 – время отладки в месяцах:


З/ПЛ спец. – месячная зарплата специалиста, занимающегося отладкой;
K чел. – количество человек;

K HP – коэффициент накладных расходов (=0,65).

Стоимость внедрения рассчитывается как сумма всех затрат на процесс


внедрения:
Cвнедр.  Tвнедр._ 1  CK/ЧАС  Tвнедр._ 2  З/ПЛспец.  K чел.  1  K HP  , (3.13)
где Cвнедр. – стоимость внедрения;

Tвнедр. _ 1 – время использования ПК при внедрении в часах;


CK/ЧАС – стоимость одного часа работы компьютера;

Tвнедр. _ 2 – время внедрения в месяцах;


З/ПЛ спец. – месячная зарплата специалиста, занимающегося внедрением;
K чел. – количество человек;

K HP – коэффициент накладных расходов (=0,65).

Экономическая эффективность капитальных вложений определяется


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

70
1
EP  , (3.14)
TOK

где EP – расчетный коэффициент эффективности;


TOK – срок окупаемости затрат на внедрение разрабатываемого проекта.

Желательно, чтобы данный показатель был больше нормативного Ен

TOK 
 K1  K 0  , (3.15)
C

где TOK – срок окупаемости затрат на внедрение разрабатываемого проекта;


K1 – капитальные вложения в проектируемый вариант;

K 0 – капитальные вложения в базовый вариант;

C – абсолютное снижение стоимостных затрат.

Расчетный срок окупаемости должен быть меньше нормативного:

1
TH  , (3.16)
EH

TH – нормативный срок окупаемости проекта

EH – нормативный коэффициент эффективности капитальных вложений.

3.2 Расчет показателей экономической эффективности проекта

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


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

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

Таблица 3.1 - Расчет трудовых и стоимостных затрат при базовом варианте

№ Операция Метод Ед. изм. Объем Производи Трудовые Средняя Стоимос


п/п обра- работы -тельность затраты часовая тные
ботки в год в час (час) зарплата затраты
оператора (руб.)
(руб.)
1. Обработка вручну докумен 2000 125 16,0 100 1600
документов по ю -тостро-
приходу ка
продовольствен
ных товаров
2. Обработка вручну докумен 2000 80 25,0 100 2500
документов по ю -тостро-
отпуску ка
продовольствен
ных товаров
3. Списание вручну докумен 2000 80 25,0 100 2500
продовольствен ю -тостро-
ных товаров ка

4. Формирование вручну докумен 2000 80 25,0 100 2500


отчетов по ю -тостро-
продовольствен ка
ным товарам
ИТОГО: 91,00 9100

Расчет трудовых и стоимостных затрат при проектируемом варианте


представлен в таблице 3.2.

72
Таблица 3.2 - Расчет трудовых и стоимостных
затрат при проектируемом варианте

№ Операция Метод Ед. изм. Объем Производи- Трудовые Средняя Стоимос


п/п обра- работ тельность в затраты часовая тные
ботки ыв час (час) зарплата затраты
год оператора (руб.)
1. Обработка на Докумен- 2000 400 5,0 100 500
документов по ПЭВМ тострока
приходу
продовольствен
ных товаров
2. Обработка на Докумен- 2000 400 5,0 100 500
документов по ПЭВМ тострока
отпуску
продовольствен
ных товаров

3. Списание на Докумен- 2000 400 5,0 100 500


продовольствен ПЭВМ тострока
ных товаров

4. Формирование на Докумен- 2000 1000 2,0 100 200


отчетов по ПЭВМ тострока
продовольствен
ным товарам
ИТОГО: 17.00 1700

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


обработки информации при базовом варианте и проектируемом варианте, мы
складываем полученные результаты и получаем общие трудовые и стоимостные
затраты для обоих вариантов:
T0 = 91 час/год;
T1= 17 час/год;
C0 = 9100 руб/год;
C1 = 1700 руб/год;
Теперь можно рассчитать абсолютные и относительные показатели
эффективности от внедрения проекта. Для наглядности, результаты расчетов
представлены в таблице 3.3:
73
Таблица 3.3 - Показатели эффективности от внедрения проекта
Показатель Затраты Абсолютное Коэффициент Индекс
Базовый Проектный
изменение затрат изменения затрат изменения
вариант вариант
затрат
Трудоемкост Т0 Т1 ΔТ = Т0 – Т1 К Т =ΔТ/Т 0 *100% IT=Т0/Т1
ь
91,00 17,00 74,00 81,32% 5,35
Стоимость С0 С1 ΔС = С0 – С1 К Т =ΔС/С 0 *100% IС=С0/С1
9100,00 1700,00 7400,00 81,32% 5,35

Как видно из таблицы 3.3 и трудовые и стоимостные затраты на обработку


данных при проектном варианте сократились более чем в пять раз.
При существующей технологии учета комплектующих и расходных
материалов в информационном отделе все операции выполнялись вручную, без
использования ПЭВМ, поэтому капитальные вложения при базовом варианте
обработки данных будем считать нулевыми.
Капитальные вложения проектируемого варианта будем тоже считать
нулевыми, поскольку дипломный проект выполнялся на домашнем компьютере, в
нерабочее время, поэтому затраты предприятия на разработку, программирование,
отладку и внедрение будут нулевыми.
Таким образом прямой эффект (годовая экономия) составит:
ЭП = (9100 + ЕН × 0) – (1700 + ЕН × 0) = 7400 руб/год.
На основе данных таблиц 3.1 и 3.2 построим диаграммы изменения
трудовых и стоимостных затрат при базовом и проектируемом вариантах по
видам работ (рисунок 3.1, рисунок 3.2):

74
25

20

15 Получение
Выдача
10 Списание
Отчетность
5

0
базовый вариант проектируемый вариант

Рисунок 3.1 - Трудовые затраты по видам работ при


базовом и проектируемом вариантах

Из рисунка 3.1 видно, что трудовые затраты в проектируемом варианте


значительно (более, чем в три раза) ниже, чем в базовом варианте.

2500

2000

1500 Получение
Выдача
1000 Списание
Отчетность
500

0
базовый вариант проектируемый вариант

Рисунок 3.2 - Стоимостные затраты по видам работ при базовом


и проектируемом вариантах

Рисунок 3.2 показывает значительный выигрыш по стоймостным


затратам для четырех видов работ (получение товара, выдача товара, списание
товара и отчетность) проектируемого варианта по сравнению с базовым.
По результатов расчетов, представленных в таблице 3.3 можно сделать
ряд выводов.
1. Индексы изменения трудовых (IT) и стоимостных (IС) затрат в

75
нашем
случае равны 5,35 , так как стоимостные затраты зависят от трудовых
затрат.
2. Внедрение проекта позволяет сократить трудовые и cтоимостные
затраты на 81,32%. При этом, как видно из диаграмм меняется соотношение
затрат. Так, трудовые затраты на обработку данных на этапе прихода
комплектующих и расходных материалов при проектируемом варианте
уменьшились в 3,2 раза, тогда как на всех остальных этапах сократились в 5 раз, а
при формировании отчетов - сократились в 12,5 раз. То же самое можно сказать и
про стоимостные затраты.
3. Прямой эффект от внедряемого проекта при грубых расчетах
составит около 7400 рублей в год. Данная сумма напрямую зависит от
заработной платы специалиста, выполняющего данную работу. Заработная плата
специалиста невысокая, а значит и прямой эффект не очень высок.

76
ЗАКЛЮЧЕНИЕ
Цель ДП, заключающаяся в сокращение времени формирования
выходных документов (квитанция получения товаров на склад (Отчет 1);
квитанция выдачи товаров со склада (Отчет 2); отчет о наличии товаров на
складе и их количестве на текущую дату (Отчет 3); отчет об ущербе от
просроченного товара (Отчет 4); акт списания просроченного товара (Отчет 5))
на основе использования разработанной ИС, достигнута.
Показатели эффективности от внедрения проекта представлены в таблице
3.3 пояснительной записки. По результатам расчетов, представленных в
таблице 3.3 можно сделать следующие выводы:
1. Индексы изменения трудовых (IT) и стоимостных (IС) затрат в нашем
случае равны 5,35 , так как стоимостные затраты зависят от трудовых затрат.
2. Внедрение проекта позволяет сократить трудовые и cтоимостные
затраты на 81,32%. При этом, как видно из диаграмм меняется соотношение
затрат. Так, трудовые затраты на обработку данных на этапе прихода
комплектующих и расходных материалов при проектируемом варианте
уменьшились в 3,2 раза, тогда как на всех остальных этапах сократились в 5 раз, а
при формировании отчетов - сократились в 12,5 раз. То же самое можно сказать и
про стоимостные затраты.
3. Прямой эффект от внедряемого проекта при грубых расчетах составит
около 7400 рублей в год. Данная сумма напрямую зависит от заработной платы
специалиста, выполняющего данную работу. Заработная плата специалиста
невысокая, а значит и прямой эффект не очень высок.
Во время работы над ДП закреплены основные навыки для проведения
этапов проектирования БД, выбрана СУБД создания и ведения БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”.

77
В результате работы над ДП решены следующие задачи:
 проведен обзор методов построения ИС БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”. Выбрана СУБД для создания и ведения
БД;
 разработана концептуальная модель ИС БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”;
 разработана инфологическая модель ИС БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”;
 разработана даталогическая модель БД ИС БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”;
 разработаны формы выходных документов ИС БД ИС “СКЛАД
ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”;
 разработаны запросы для формирования таблиц, на основе которых
формируются выходные документы;
 разработаны экранные формы, позволяющие в режиме диалога вести
БД ИС БД ИС “ СКЛАД ПРОДОВОЛЬСТВЕННЫХ ТОВАРОВ”, формировать
отчеты выходных документов;
 разработаны отчеты, позволяющие по предложенным формам
формировать выходные документы;
 разработаны модули программного обеспечения на VBA, позволяющие
формировать квитанции и выходные документы.
При решении задач автоматизации склада продовольственных товаров
большую помощь оказали учебные пособия руководителя проекта [7, 11].
В целом получены практические навыки проектирования ИС.

78
СПИСОК ЛИТЕРАТУРЫ
1. Байгарова Н.С. Организация управления базами визуальных данных //
Н.С. Байгарова, Ю.А. Бухштаб, А.А. Воробьев, А.А. Горный. - М., 2008. 21 с.
2. Бекаревич Ю.Б. MS Access 2000 за 30 занятий: [Технология разраб. баз
данных от проектирования до создания прил. : Практ. пособие] // Юрий
Бекаревич, Нина Пушкина. - СПб. [и др.]: БХВ-Санкт-Петербург, 2007. 492 с.
3. Волгин В.В. Кладовщик: Устройство складов. Склад. операции. Упр.
складом. Норматив. док. -М.:Ось-89, 2002. 270 с.
4. Волгин В.В. Склад: Логистика. Управление. Анализ: Учебное пособие
для подготовки специалистов по управлению складскими операциями и
товарными запасами. - М: Изд.-торговая корпорация "Дашков и Кº", 2009. 196 с.
5. Волгин В.В. Склад: организация и управление : Практ. Пособие.
-М.:Дашков и К° 2002. 361 с.
6. Дейт К. Дж. Введение в системы баз данных. - 6-е изд. - М.,
СПб.,Киев, Изд. дом Вильяме, 2008. 245с.
7. Дзюбенко А.Л., Ильин А.А. Мишин П.Н. и др. Информационные
технологии управления: Учебное пособие / под ред. Ю.В. Обрубова. - М.: Изд-
во "Ваш Домъ", 2006. 192 с.
8. Диго С.М. Создание баз данных в среде СУБД Access Учебное
пособие по курсу “Базы данных” / Моск. гос. ун-т экономики, статистики и
информатики. - М., 2006. 106 с.
9. Дубнов, П.Ю. Access 2009: Проектирование баз данных:
Конвертирование баз. данных из различ. программ. сред. Формирование
макросов при диалоге с базой данных. Выполнение нестандарт. запросов при
помощи Visual Basic . - М.: ДМК, 2005. 271 с.

79
10.Золотова С.И. Практикум по Aссеss: Подгот. курс, предваряющий
более глубокое изучение технологии баз данных // С. И. Золотова. - М.:
Финансы и статистика, 2009. 141 с.
11.Ильин А.А., Евсюков В.В., Ильин Р.А. Информатика: Учебное
пособие. – М.: Серебряная нить, 2005. 376 с.
12.Когаловский М.Р. Энциклопедия технологий баз данных: Эволюция
технологий. Технологии и стандарты. Инфраструктура. Терминология // М.Р.
Когаловский. - М.: Финансы и статистика, 2007. 798 с.
13.Курганов В.М. Логистика. Транспорт и склад в цепи поставок товаров:
Учебное пособие для студентов высших учебных заведений. -М: Кн. мир, 2009.
212 с.
14.Мамаев Е. MS SQL Server 7.0: проектирование и реализация баз
данных // Евгений Мамаев.- СПб.[и др.]: Cbhv, [2008].416 с.
15. Манжосов, Г.П. Современный склад. Организация и технология.
-М. КИА центр 2006. 219 с.
16.Новалис С. Access 2007: Руководство по VBA: Разработка собств. баз
дан. и проектов с помощью VBA : Учеб. рук. и справ. для опыт. пользователей
и разраб. // [Науч. ред. А. Бернштейн; Пер. А. Киселева ]. - М.: Лори, 2000.- XII,
506 с.
17. Подольский М.П. Введение в 1C-бухгалтерию : Тонкости, советы и
способы работы : [Автоматизация бухгалт. учета. Принципы компьютер.
бухгалтерии. Аналит. учет. 1C: бухгалтерия без проводок!. 1C: предприятие.
1C: торговля и склад. 1C: зарплата и кадры. 1C: проблема 2000. -М.: Познават.
кн. плюс 2000. 191 с.
18.Селищев Н.В. 1С: Торговля и Склад 7.7: шаг за шагом: Учебное.
Пособие. -М: ТРИУМФ, 2007. 232 с.
19.Хортон Р. Разработка баз данных Microsoft SQL server 2000 на
примерах: [Изучение процесса разраб. базы данных SQL Server 2000 на прим.
создания прил. SpyNet] // Роб Хортон; [Пер. с англ. В. В. Александрова и др.]. -
М. [и др.]: Вильямс, 2005. 460 с.

80
20.Чертовской В. Д., Шеховцов О. И. Объектно-ориентированный подход
в построении баз данных: Учеб. пособие для студентов, обучающихся по
специальности 220200 "Автоматизир. системы обраб. информ. и упр." М-во
образования Рос. Федерации. С.-Петерб. ин-т (фил.) Моск. гос. 222 с.
21.Шаша Д., Бонне Ф. Оптимизация баз данных: принципы, практика,
решение проблем / Пер. с англ. - М.:КУДиЦ - ОБРАЗ, 2006. 432 с.

81
ПРИЛОЖЕНИЕ А.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ ВЕДЕНИЯ ТАБЛИЦЫ
“ИНФОРМАЦИЯ О КВИТАНЦИЯХ НА ПОЛУЧЕНИЕ
ТОВАРА” (Kvit_In)
Option Compare Database
' Просмотреть отчет
Private Sub B_Ot_Kvit_In_Click()
On Error GoTo Err_B_Ot_Kvit_In_Click

Dim stDocName As String

Sel_Kladov.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov


stDocName = "Kvit_Tovar_In"
DoCmd.OpenReport stDocName, acPreview

' B_Ot_Kvit_In.SetFocus ' Установить фокус на кнопку B_Ot_Kvit_In


Exit_B_Ot_Kvit_In_Click:
Exit Sub

Err_B_Ot_Kvit_In_Click:
MsgBox Err.Description
Resume Exit_B_Ot_Kvit_In_Click

End Sub
' Напечатать отчет
Private Sub B_Print_Kvit_In_Click()
On Error GoTo Err_B_Print_Kvit_In_Click

Dim stDocName As String

82
Sel_Kladov.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov
stDocName = "Kvit_Tovar_In"
DoCmd.OpenReport stDocName, acNormal

B_Print_Kvit_In.SetFocus ' Установить фокус на кнопку B_Print_Kvit_In


Exit_B_Print_Kvit_In_Click:
Exit Sub

Err_B_Print_Kvit_In_Click:
MsgBox Err.Description
Resume Exit_B_Print_Kvit_In_Click

End Sub
' Открыть форму
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , "", acLast ' Отобразить на форме последнюю запись
End Sub
' Удалить текущую запись
Private Sub B_Del_Rec_Click()
On Error GoTo Err_B_Del_Rec_Click

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70


DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_B_Del_Rec_Click:
Exit Sub

Err_B_Del_Rec_Click:
MsgBox Err.Description
Resume Exit_B_Del_Rec_Click

End Sub

83
ПРИЛОЖЕНИЕ Б.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ ВЕДЕНИЯ ТАБЛИЦЫ
“ИНФОРМАЦИЯ О КВИТАНЦИЯХ НА ВЫДАЧУ ТОВАРА” (Kvit_Out)
Option Compare Database
' Открыть форму
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , "", acLast ' Отобразить на форме последнюю запись
End Sub
' Просмотреть отчет
Private Sub B_Ot_Kvit_Click()
On Error GoTo Err_B_Ot_Kvit_Click

Dim stDocName As String


Sel_Kladov_FIO.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov

stDocName = "Kvit_Tovar_Out"
DoCmd.OpenReport stDocName, acPreview
B_Ot_Kvit.SetFocus ' Установить фокус на кнопку B_Ot_Kvit

Exit_B_Ot_Kvit_Click:
Exit Sub

Err_B_Ot_Kvit_Click:
MsgBox Err.Description
Resume Exit_B_Ot_Kvit_Click

End Sub
' Напечатать отчет
Private Sub B_Pr_Out_Kvit_Click()
On Error GoTo Err_B_Pr_Out_Kvit_Click

84
Dim stDocName As String
Sel_Kladov_FIO.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov
stDocName = "Kvit_Tovar_Out"
DoCmd.OpenReport stDocName, acNormal
B_Ot_Kvit.SetFocus ' Установить фокус на кнопку B_Ot_Kvit

Exit_B_Pr_Out_Kvit_Click:
Exit Sub

Err_B_Pr_Out_Kvit_Click:
MsgBox Err.Description
Resume Exit_B_Pr_Out_Kvit_Click

End Sub
' Удалить текущую запись
Private Sub B_Del_Rec_Click()
On Error GoTo Err_B_Del_Rec_Click

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70


DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_B_Del_Rec_Click:
Exit Sub

Err_B_Del_Rec_Click:
MsgBox Err.Description
Resume Exit_B_Del_Rec_Click

End Sub

85
ПРИЛОЖЕНИЕ В.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ ФОРМИРОВАНИЯ
КВИТАНЦИИ ПОЛУЧЕНИЯ ТОВАРА” (Kvit_In_F)
Option Compare Database
Dim bs As Database ' База данных
Dim tab_01, tab_02, tab_04 As Recordset ' Таблицы базы данных
' Поиск записи по первичному ключу методом дихотомии
Public Sub Find_Rec(r_tab As Recordset, ind As Integer)
Dim i, i1, i2, k As Integer
r_tab.MoveFirst
k = r_tab.Fields(0).Value
If k = ind Then Exit Sub ' Если индекс в первой записи = ind
r_tab.MoveLast
k = r_tab.Fields(0).Value
If k = ind Then Exit Sub ' Если индекс в последней записи = ind
i1 = 1 ' i1 := 1
i2 = r_tab.RecordCount ' i2 := количество_записей_в_таблице
While Abs(i1 - i2) <> 0 ' Пока не найдется запись с ключом ind
i = Int((i1 + i2) / 2)
' If i > r_tab.RecordCount Then i = r_tab.RecordCount
r_tab.MoveFirst
r_tab.Move (i)
k = r_tab.Fields(0).Value
If k = ind Then Exit Sub
If ind > k Then
i1 = i
Else
i2 = i
End If ' Конец If
Wend ' Конец цикла While

86
End Sub

' Добавить товар в квитанцию


Private Sub B_Add_Kvit_Click()
Dim Res
Dim Kol As Double
Dim ind As Integer
Set tab_04 = bs.OpenRecordset("Mesto_Chran") ' tab_04 связать с таблицей "Mesto_Chran"
Sel_Mesto_Chran.SetFocus ' Установить фокус на список мест хранения
ind = Sel_Mesto_Chran.Column(0) ' ind := првичный_индекс_места_хранения
Call Find_Rec(tab_04, ind) ' Встать на нужную запись в таблице "Mesto_Chran"
Kol = Kol_Tov.Value + tab_04.Fields(4).Value ' Прибавка товара в месте хранения
If Kol > tab_04.Fields(2).Value Then ' Вывод предупреждения
Res = MsgBox("Некуда складывать товар", vbOKOnly, "Предупреждение", "", 1000)
Exit Sub
Else
tab_04.Edit ' Разрешить редактирование таблицы "Mesto_Chran"
tab_04.Fields(4).Value = Kol ' Добавить кол-во хранимого товара
tab_04.Update ' Обновить результаты редактирования таблицы "Mesto_Chran"
End If
Set tab_02 = bs.OpenRecordset("Input") ' tab_02 связать с таблицей "Input"
tab_02.MoveLast ' Встать на последнюю запись таблицы "Input"
' tab_02.Edit
tab_02.AddNew ' Добавить запись в таблицу "Input"
tab_02.Fields(1).Value = ind_Kvit_In.Value
ind = Sel_Tov.Column(0)
tab_02.Fields(2).Value = ind 'Выбор товара
tab_02.Fields(3).Value = Kol_Tov.Value ' Выбор количества товара
tab_02.Fields(5).Value = tab_04.Fields(0) ' Выбор места хранения
tab_04.Close ' Закрыть таблицу "Mesto_Chran"
Set tab_04 = bs.OpenRecordset("Tovar") ' tab_04 связать с таблицей "Tovar"
ind = Sel_Tov.Column(0) '.ListIndex
Call Find_Rec(tab_04, ind) ' Встать на необходимуюую запись таблицы "Tovar"
Itogo.Value = Itogo.Value + Kol_Tov.Value * tab_04.Fields(3).Value ' Формирование итоговой
стоимости квитанции

87
tab_02.Fields(4).Value = Kol_Tov.Value * tab_04.Fields(3).Value ' Выбор стоимости товара
tab_04.Edit ' Редактировать таблицу Tovar
Kol = tab_04.Fields(5).Value ' Kol := Количество_товара_на_складе
Kol = Kol + Kol_Tov.Value ' Прибавка товара на складе
tab_04.Fields(5).Value = Kol
tab_04.Update ' Обновить результаты редактирования таблицы "Tovar"
tab_02.Update ' Обновить результаты редактирования таблицы "Input"
Form_Kvit_In_F.Refresh ' Отобразить на форме результаты редактирования
End Sub
' Просмотр отчета по квитанции
Private Sub B_Ot_Kvit_In_F_Click()
On Error GoTo Err_B_Ot_Kvit_In_F_Click

Dim stDocName As String


Sel_Kladov.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov
stDocName = "Kvit_Tovar_In_F"
DoCmd.OpenReport stDocName, acPreview

' B_Ot_Kvit_In_F.SetFocus ' Установить фокус на кнопке B_Ot_Kvit_In_F


Exit_B_Ot_Kvit_In_F_Click:
Exit Sub

Err_B_Ot_Kvit_In_F_Click:
MsgBox Err.Description
Resume Exit_B_Ot_Kvit_In_F_Click

End Sub
' Печать отчета по квитанции
Private Sub B_Print_Kvit_In_F_Click()
On Error GoTo Err_B_Print_Kvit_In_F_Click

Dim stDocName As String


Sel_Kladov.SetFocus ' Установить фокус на визуальный компонент Sel_Kladov
stDocName = "Kvit_Tovar_In_F"
DoCmd.OpenReport stDocName, acNormal

88
B_Print_Kvit_In_F.SetFocus ' Установить фокус на кнопке B_Print_Kvit_In_F
Exit_B_Print_Kvit_In_F_Click:
Exit Sub

Err_B_Print_Kvit_In_F_Click:
MsgBox Err.Description
Resume Exit_B_Print_Kvit_In_F_Click

End Sub
' Открытие формы
Private Sub Form_Open(Cancel As Integer)
Set bs = CurrentDb ' bs := текущую базу данных ("Sklad")
Set tab_01 = bs.OpenRecordset("Kvit_In") ' tab_01 связать с таблицей "Kvit_In"
tab_01.MoveLast ' Встать на последнюю запись таблицы "Kvit_In"
tab_01.AddNew ' Добавить запись в таблицу "Kvit_In"
tab_01.Fields(1).Value = Date + Time ' Вставить текущую дату/время
tab_01.Fields(2).Value = 1 ' Вставить в запись 1-го кладовщика (по умолчанию)
tab_01.Fields(3).Value = 0 ' Обнулить поле Itogo
tab_01.Update ' Обновить результаты редактирования таблицы "Kvit_In"
Form_Kvit_In_F.Refresh ' Отобразить на форме результаты редактирования
DoCmd.GoToRecord , "", acLast ' Отобразить на форме последнюю запись
End Sub
' Закрытие формы
Private Sub B_Close_Click()
On Error GoTo Err_B_Close_Click
DoCmd.Close
Exit_B_Close_Click:
Exit Sub

Err_B_Close_Click:
MsgBox Err.Description
Resume Exit_B_Close_Click

End Sub

89
ПРИЛОЖЕНИЕ Г.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ ФОРМИРОВАНИЯ
КВИТАНЦИИ ВЫДАЧИ ТОВАРА” (Kvit_Out / Kvit_Out_F)
Option Compare Database
Dim bs As Database ' База данных
Dim tab_01, tab_02, tab_03, tab_04 As Recordset ' Таблица базы данных
' Добавить товар в квитанцию выдачи
Private Sub Add_Tov_Click()
Call B_Add_Out_Click ' Добавить отпущенный товар
Call B_Rec_Out_Click ' Изменить количество товара и его стоимость в таблицах БД
End Sub

' Закрытие формы


Private Sub B_Close_Click()
On Error GoTo Err_B_Close_Click
DoCmd.Close
Exit_B_Close_Click:
Exit Sub
Err_B_Close_Click:
MsgBox Err.Description
Resume Exit_B_Close_Click
End Sub

' Открытие формы


Private Sub Form_Open(Cancel As Integer)
Set bs = CurrentDb ' bs := текущую базу данных ("Sklad")
Set tab_01 = bs.OpenRecordset("Kvit_Out") ' tab_01 связать с таблицей "Kvit_Out"
tab_01.MoveLast ' Встать на последнюю запись таблицы "Kvit_Out"
tab_01.AddNew ' Добавить запись в таблицу "Kvit_Out"
' tab_01.Edit

90
tab_01.Fields(1).Value = Date + Time ' Вставить текущую дату/время
tab_01.Fields(2).Value = 1 ' Вставить в запись 1-го кладовщика (по умолчанию)
tab_01.Fields(3).Value = 0 ' Обнулить поле Itogo
tab_01.Update ' Обновить результаты редактирования таблицы "Kvit_Out"
Sel_Tov.SetFocus
Refresh ' Отобразить на форме результаты редактирования
DoCmd.GoToRecord , "", acLast ' Отобразить на форме последнюю запись
End Sub

' Печать отчета


Private Sub B_Pr_Kvit_Out_Click()
On Error GoTo Err_B_Pr_Kvit_Out_Click
Dim stDocName As String
Sel_Kladov.SetFocus ' Установка фокуса на списке кладовщиков
stDocName = "Kvit_Tovar_Out_F"
DoCmd.OpenReport stDocName, acNormal
B_Pr_Kvit_Out.SetFocus ' Установка фокуса на кнопке печати отчета
Exit_B_Pr_Kvit_Out_Click:
Exit Sub
Err_B_Pr_Kvit_Out_Click:
MsgBox Err.Description
Resume Exit_B_Pr_Kvit_Out_Click
End Sub

' Просмотр отчета


Private Sub B_Kvit_Out_F_Click()
On Error GoTo Err_B_Kvit_Out_F_Click
Dim stDocName As String
Sel_Kladov.SetFocus ' Установка фокуса на списке кладовщиков
stDocName = "Kvit_Tovar_Out_F"
DoCmd.OpenReport stDocName, acPreview
B_Kvit_Out_F.SetFocus ' Установка фокуса на кнопке просмотра отчета
Exit_B_Kvit_Out_F_Click:
Exit Sub
Err_B_Kvit_Out_F_Click:

91
MsgBox Err.Description
Resume Exit_B_Kvit_Out_F_Click
End Sub

' Изменение в списке товаров


Private Sub Sel_Tov_Change()
Sel_Tov.SetFocus
Refresh
B_Add_Kvit.SetFocus
End Sub

' Добавить запись в таблицу Output


Private Sub B_Add_Out_Click()
On Error GoTo Err_B_Add_Out_Click
Dim stDocName As String
stDocName = "Add_Out"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_B_Add_Out_Click:
Exit Sub
Err_B_Add_Out_Click:
MsgBox Err.Description
Resume Exit_B_Add_Out_Click
End Sub

' Обновить в таблицах БД количество товара и его стоимость в табл. Kvit_Out


Private Sub B_Rec_Out_Click()
On Error GoTo Err_B_Rec_Out_Click
Dim stDocName As String
stDocName = "Obn_Kol_TO"
Sel_Tov.SetFocus ' Установить фокус на списке товаров
DoCmd.OpenQuery stDocName, acNormal, acEdit
B_Add_Out.SetFocus ' Установить фокус на кнопке "Добавить выданный товар"
Exit_B_Rec_Out_Click:
Refresh
Exit Sub

92
Err_B_Rec_Out_Click:
MsgBox Err.Description
Resume Exit_B_Rec_Out_Click
End Sub

93
ПРИЛОЖЕНИЕ Д.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ФОРМЫ ФОРМИРОВАНИЯ
КВИТАНЦИИ ВЫДАЧИ ТОВАРА” (Kvit_Out / Kvit_Out_F)
' Формирование таблиц списания
Private Sub B_Tab_Akt_Click()
' Добавить запись в таблицу Akt_Spis
Dim bs As Database ' База данных
Dim tab_01 As Recordset ' Таблица базы данных
Set bs = CurrentDb ' bs := текущую базу данных ("Sklad_PT")
Set tab_01 = bs.OpenRecordset("Akt_Spis") ' tab_01 связать с таблицей "Akt_Spis"
tab_01.AddNew
tab_01.Fields(1).Value = Date
tab_01.Fields(2).Value = ind_Kladov.Value
tab_01.Update
' Добавить таблицу просроченных товаров (Prosrotch)
Call B_Add_Tov_Click
' Удалить из таблиц Input, Mesto_Cran, Tovar просроченные товары
Call B_Del_Tov_Click
End Sub

' Открытие формы


Private Sub Form_Open(Cancel As Integer)
Sel_Kladov.SetFocus ' Установить фокус на списке кладовщиков
Sel_Kladov.ListIndex = 0 ' Выбрать 1-го кладовщика из списка
B_Prosro.SetFocus ' Установить фокус на кнопке "Обновить на контрольную дату"
End Sub

' Просмотреть Акт списания просроченных товаров


Private Sub B_Akt_Spis_Click()
On Error GoTo Err_B_Akt_Spis_Click

94
Dim stDocName As String
stDocName = "Akt_Spis"
Sel_Kladov.SetFocus ' Установить фокус на списке кладовщиков
DoCmd.OpenReport stDocName, acPreview
Exit_B_Akt_Spis_Click:
Refresh ' Обновить форму
B_Akt_Spis.SetFocus ' Установить фокус на кнопке просмотра акта списания
Exit Sub
Err_B_Akt_Spis_Click:
MsgBox Err.Description
Resume Exit_B_Akt_Spis_Click
End Sub

' Напечатать отчет о просроченных товарах


Private Sub B_Prin_Prosr_Click()
On Error GoTo Err_B_Prin_Prosr_Click
Dim stDocName As String
stDocName = "Prosr_Tov"
DoCmd.OpenReport stDocName, acNormal
Exit_B_Prin_Prosr_Click:
Exit Sub
Err_B_Prin_Prosr_Click:
MsgBox Err.Description
Resume Exit_B_Prin_Prosr_Click
End Sub

' Напечатать Акт списания


Private Sub B_Prin_Akt_Click()
On Error GoTo Err_B_Prin_Akt_Click
Dim stDocName As String
stDocName = "Akt_Spis"
DoCmd.OpenReport stDocName, acNormal

Exit_B_Prin_Akt_Click:
Exit Sub

95
Err_B_Prin_Akt_Click:
MsgBox Err.Description
Resume Exit_B_Prin_Akt_Click
End Sub

' Добавить таблицу просроченных товаров (Prosrotch)


Private Sub B_Add_Tov_Click()
On Error GoTo Err_B_Add_Tov_Click
Dim stDocName As String
stDocName = "Add_Prosrotch"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_B_Add_Tov_Click:
Exit Sub
Err_B_Add_Tov_Click:
MsgBox Err.Description
Resume Exit_B_Add_Tov_Click
End Sub

' Удалить списанный товар из таблиц БД


Private Sub B_Del_Tov_Click()
On Error GoTo Err_B_Del_Tov_Click
Dim stDocName As String
stDocName = "Del_Tov"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_B_Del_Tov_Click:
Refresh
Exit Sub
Err_B_Del_Tov_Click:
MsgBox Err.Description
Resume Exit_B_Del_Tov_Click
End Sub

' Удалить списанный товар из таблиц БД


Private Sub B_Prosr_Tov_Click()
On Error GoTo Err_B_Prosr_Tov_Click

96
Dim stDocName As String

stDocName = "Prosr_Tov"
Sel_Kladov.SetFocus ' Установить фоккус на спике кладовщиков (Sel_Kladov)
DoCmd.OpenReport stDocName, acPreview

Exit_B_Prosr_Tov_Click:
Refresh ' Обновить форму
B_Prosr_Tov.SetFocus ' Установить фоккус на кнопке B_Prosr_Tov
Exit Sub
Err_B_Prosr_Tov_Click:
MsgBox Err.Description
Resume Exit_B_Prosr_Tov_Click
End Sub

' Обновить на контрольную дату


Private Sub B_Prosro_Click()
On Error GoTo Err_B_Prosro_Click
Dim stDocName As String
stDocName = "Prosr_Tov"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_B_Prosro_Click:
Refresh ' Обновить форму под контрольную дату
DoCmd.Close ' Закрыть окно таблицы запроса
Exit Sub
Err_B_Prosro_Click:
MsgBox Err.Description
Resume Exit_B_Prosro_Click
End Sub

97