Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование реализации операций бизнес-процесса «Управление документооборотом» (Информационная модель и её описание)

Содержание:

Введение

На современном этапе процесс ведения документации и отчетности предприятия все больше подвержен автоматизации, что позволяет более эффективно управлять основными и вспомогательными бизнес - процессами.

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

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

Объектом исследования является ОАО" Бобруйский ГАП № 1".

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

Цель работы – реализация операций процесса управления документооборотом.

Основными задачами, решаемыми в курсовой работе, являются:

  • изучение основных бизнес - процессов на предприятии ОАО «Бобруйский ГАП № 1»;
  • выявление недостатков в существующей системе управления документооборотом ОАО «Бобруйский ГАП № 1», определяющих необходимость автоматизации;
  • обоснование выбора проектных решений для решения задачи автоматизации в управлении документооборотом.

Актуальность выбранной темы обусловлена необходимостью повышения эффективности бизнес - процессов предприятия на современном этапе деятельности.

ГЛАВА 1. АНАЛИТИЧЕСКАЯ ЧАСТЬ

1.1 Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ»

Предприятие ОАО «Бобруйский ГАП № 1» является представителем автотранспортной отрасли Республики Беларусь. Предприятие в основном осуществляет свою деятельность на территории города Бобруйска, а также работает с международными организациями.

ОАО «Бобруйский ГАП № 1» - предприятие государственной собственности, которое принадлежит Министерству транспорта и коммуникаций РБ.

Основной целью функционирования предприятия ОАО «Бобруйский ГАП № 1» является оказание транспортных услуг предприятиям и организациям города.

Неотъемлемой частью деятельности транспортного предприятия ОАО «Бобруйский ГАП № 1» является процесс ведения документации. Этот процесс обусловлен не только ведением коммерческой деятельности предприятием, организацией трудовых отношений с сотрудниками, но осуществлением отношений с внешними организациями, такими как налоговая служба, банки, таможенная служба, заказчики.

В настоящее время в ОАО «Бобруйский ГАП № 1» обрабатывается достаточно большой объем документов. В связи с этим на предприятии происходит процесс компьютеризации и автоматизации информационной деятельности, что позволяет более эффективно хранить, обрабатывать и распределять накопленные данные.

Деятельность предприятия ОАО «Бобруйский ГАП № 1», связанная с созданием, хранением и обработкой информации, представлена следующими бизнес – процессами:

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

Основными показателями эффективности видов деятельности ОАО «Бобруйский ГАП № 1» представлены в таблице 1.1.

Таблица 1.1

Основные показатели эффективности видов деятельности ОАО «Бобруйский ГАП № 1»

№ п\п

Наименование характеристики (показателя)

Значение показателя на определённую дату либо за период

(тысяч белорусских рублей)

1

Основные средства

3154

2

Материалы

201

3

Готовая продукция и товары

27

4

Уставный капитал

268

5

Долгосрочные обязательства по лизинговым платежам

134

6

Выручка от реализации услуг

2126

    1. Организационная структура управления предприятием

Организационная структура управления предприятия ОАО «Бобруйский ГАП № 1» предполагает разделение организации на отдельные элементы. Каждый элемент управления предприятия ОАО «Бобруйский ГАП № 1» имеет четко определенные границы, решает конкретные задачи, исполняет обязанности управления и принятия решений. Подразделения (отделы) осуществляют руководство при подготовке и реализации решений по планированию, организации, учету, контролю и анализу по всем функциям производственно-хозяйственной деятельности.

Организационная структура управления предприятия ОАО «Бобруйский ГАП № 1» характеризуется использованием четких правил, жесткой иерархией управления, централизацией принятия решений. Все решения по функциям управления исполнитель получает от непосредственного начальника. Несмотря на то, что, все руководители предприятия ОАО «Бобруйский ГАП № 1» выполняют управленческие действия, нельзя сказать, что все они занимаются одним и тем же видом трудовой деятельности. Организационная структура управления предприятия ОАО «Бобруйский ГАП № 1» представлена на рисунке 1.1.

Рис. 1.1 Организационная структура управления предприятия ОАО «Бобруйский ГАП № 1»

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

    1. Программная и техническая архитектура информационной системы предприятия

Большинство отделов предприятия ОАО «Бобруйский ГАП № 1» оснащены необходимыми техническими средствами, есть один сервер, а также большинство персональных компьютеров объединены в локальную вычислительную сеть.

Характеристики технической архитектуры ОАО «Бобруйский ГАП № 1» отражены на рисунке 1.2.

Рис. 1.3 Техническая архитектура предприятия ОАО «Бобруйский ГАП № 1»

В отделах предприятия ОАО «Бобруйский ГАП № 1» стоят персональные компьютеры, имеющие следующие параметры: CPU – AMD Athlon с тактовой частотой ядра от 2.5 ГГц - 4.3 ГГц; RAM – 2 Gb; Интегрированный графический процессор GeForce 6100 и Интегрированный графический процессор GeForce 6200; HDD – от 160 Gb до 320 Gb.

На предприятии имеется один сервер, роль которого выполняет персональный компьютер, имеющий следующие характеристики: CPU – INTEL E7200; RAM – 2 Gb; HDD – 2 Gb.

Для печати документов в отделах предприятия ОАО «Бобруйский ГАП № 1» установлены 17 принтеров и многофункциональных устройств, имеющих следующие характеристики:

  • МФУ Canon PIXMA E414 струйный, цветной, формат A4.
  • МФУ HP LaserJet Pro MFP M130a [G3Q57A] лазерный, черно-белый, формат A4.
  • МФУ HP DeskJet 2130 [K7N77C] струйный, цветной, формат A4
  • Принтер HP LaserJet Enterprise P3015 (CE525A) принтер, лазерный, черно-белый, формат A4.
  • Принтер Lexmark MS310dn принтер, лазерный, черно-белый, формат A4.
  • Принтер Canon PIXMA iP2840 струйный, цветной, формат A4
  • Принтер Epson L312 струйный, цветной, формат A4

Все рабочие станции ОАО «Бобруйский ГАП № 1» соединены в локальную сеть при помощи оптического волокна с использованием коммутатора D-Link DES-1024C/A1A, являющимся неуправляемым, стоечным, с матрицей 4.8 Гбит/с, 24x100Mbit.

Отдел кадров и юридический отдел ОАО «Бобруйский ГАП № 1» соединены PON (Passive optical network, пассивная оптическая сеть), которая в свою очередь соединена с локальной вычислительной сетью предприятия.

Программная архитектура предприятия ОАО «Бобруйский ГАП № 1» представлена на рисунке 1.3.

Рис. 1.3 Программная архитектура предприятия ОАО «Бобруйский ГАП № 1»

Программное обеспечение, установленное на сервере – Windows Server 2003, также на нем установлен сервер 1С и SQL сервер.

Сервер 1С – это программа и компьютер, на котором установлена и работает данная программа.

На предприятия ОАО «Бобруйский ГАП № 1» бухгалтерский и налоговый учет осуществляется бухгалтерией с помощью программного продукта «1C: Предприятие 8.2 модуль: Бухгалтерия», который обеспечивает высокий уровень автоматизации ведения бухгалтерского и налогового учета, а также позволяет подготовить обязательную отчетность на предприятии. Также на ОАО «Бобруйский ГАП № 1» 1С представлена в транспортном и планово – экономическом отделах модулем: Грузоперевозки, а также в отделе кадров.

На всех персональных компьютерах установлена операционная система MicrosoftWindows 7

Работа с документами на предприятии ОАО «Бобруйский ГАП № 1» осуществляется с помощью программных продуктов пакета прикладных программ MicrosoftOffice 2007:

  • MicrosoftOfficeWord позволяет создавать и редактировать документы.
  • MicrosoftOfficeExcel позволяет выполнять вычисления, а также создавать диаграммы.
  • MicrosoftOfficePowerPoint позволяет готовить презентации для демонстрации.
  • Веб-браузер GoogleChrome используется большинством отделов предприятия для работы в интернете (работа с электронной почтой, финансовых операций).

Для защиты от внешних угроз операционная система предприятия ОАО «Бобруйский ГАП № 1» защищена программным продуктом «ESET NOD32 AntivirusTM 4.2.40.10».

1.2 Характеристика комплекса задач, задачи и обоснование необходимости автоматизации управления документооборотом

Организация деятельности предприятия ОАО «Бобруйский ГАП № 1» осуществляется в самом общем виде следующими бизнес – процессами:

  • Руководство и управление предприятием;
  • Финансовое планирование;
  • Работа с клиентами и персоналом;
  • Юридическое обеспечение и сопровождение;
  • Ведение бухгалтерского и финансового учета;
  • Оказание транспортных услуг;
  • Обслуживание и ремонт материальных ценностей.

Целью методологии IDEF0 является построение функциональной схемы исследуемой системы, описывающей все необходимые процессы с точностью, достаточной для моделирования системы [12. стр. 100]

Рис. 1.4 Декомпозиция контекстной диаграммы «Основные бизнес – процессы предприятия ОАО «Бобруйский ГАП № 1»

1.3 Определение места проектируемой задачи в комплексе задач и ее описание

В рамках разрабатываемой темы «Автоматизация процесса управления документооборотом в ОАО «Бобруйский ГАП № 1» определено наиболее уязвимое место в организации деятельности предприятия. Таким бизнес - процессом является ведение финансовой и бухгалтерской докментации по учету материалов, которая сопровождается ведением большого количества документов. В процессе детализации работы бухгалтерии можно выделить следующие основные бизнес – процессы:

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

Работа бухгалтерии представлена на контекстной диаграмме IDEF0 «Ведение финансовой и бухгалтерской документации по учету материалов» декомпозирована на рисунке 1.5.

Рис. 1.5 Контекстная диаграмма «Ведение финансовой и бухгалтерской документации по учету материалов»

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

В настоящий момент на предприятии ОАО «Бобруйский ГАП № 1» процесс ведения финансовой документации и отчетности в основном ведут бухгалтера при помощи программы «1С: Бухгалтерия», для формирования необходимой бухгалтерской документации и отчетности. А также используется модуль «1С:Предприятие 8. Управление Автотранспортом. Стандарт», который позволяет автоматизировать  управленческий и оперативный учет в автотранспортных предприятиях и организациях.

Но не все бизнес-процессы на предприятии ОАО «Бобруйский ГАП № 1» автоматизированы и ведутся при помощи современных технических средств. Версия программы «1С: Бухгалтерия», установленная на предприятии не предоставляет возможности полноценного учёта малоценных быстроизнашивающихся материалов.

Ведение документации и отчетности по учету принтеров является важным бизнес – процессом для предприятия ОАО «Бобруйский ГАП № 1», так как работа автотранспортного предприятия тесно связана с печатью большого количества сопроводительных документов: путевые листы, товарно–транспортные накладные, платежные поручения и др. Своевременное приобретение, обслуживание и передача в ремонт принтеров являются обязательным пунктом работы предприятия. Так как на предприятии все же случаются ситуации с отказом принтера в неподходящий момент, на ОАО «Бобруйский ГАП № 1» присутствует движение (перемещение) принтеров и МФУ между отделами.

Не смотря на то, что принтера по классификатору основных средств и нематериальных активов [6] относятся к основным средствам, на предприятии ОАО «Бобруйский ГАП № 1» их учет ведется как учет МБП (малоценных быстроизнашивающихся предметов). Такой учет ведется на основании учетной политики предприятия ОАО «Бобруйский ГАП № 1» и Постановления Министерства финансов Республики Беларусь № 41 «Об установлении лимита отнесения имущества к отдельным предметам в составе оборотных средств» [8], как материальные средства, обладающие следующими характеристиками:

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

Соответственно затраты по их обслуживанию и передачи в ремонт не могут учитываться как затраты, увеличивающие стоимость основных средств, они сразу списываются на текущие затраты предприятия ОАО «Бобруйский ГАП № 1» и полежат распределению. Однако, расходы по содержанию и передачи в ремонт принтеров, необходимо также учитывать в общих расходах предприятия, для дальнейшего исчисления ежемесячной прибыли от экономической деятельности ОАО «Бобруйский ГАП № 1».

В используемой на предприятии типовой программе «1С: Бухгалтерия» версия 8.2 в документе по распределению общих затрат не отражаются расходы по содержанию и ремонту принтеров, что не позволяет правильно исчислять сумму прибыли. В тоже время расходы на эксплуатацию принтеров занимают достаточно большой процент от общей суммы затрат по предприятию.

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

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

Процесс приобретения принтеров осуществляется бухгалтерией при помощи документов: ТТН и платежного поручения. В случае поломки бухгалтерия на основании заявки на ремонт оформляет такие документы как: акт выполненных работ и платежное поручение. По истечению срока службы принтера его списывают, этот процесс производит бухгалтер при помощи документа «Акт на списание». Результатом бизнес-процесса «Ведение документации и отчетности принтеров предприятия ОАО «Бобруйский ГАП № 1» является такие выходные документы, как: Учетная карточка и Отчет по материалам.

Бухгалтер ОАО «Бобруйский ГАП № 1» ведет в основном бумажный учет принтеров и МФУ для дальнейшего использования полученных данных в процессе бухгалтерского учета в программе «1С: Бухгалтерия» и передачи данных в экономический отдел для исчисления ежемесячной прибыли от экономической деятельности ОАО «Бобруйский ГАП № 1». Вследствие чего снижается эффективность всего процесса ведения бухгалтерского и финансового учета. Затрачиваемое время на своевременное оприходование и списание принтеров, контроль за их сохранностью и перемещением в процессе эксплуатации, правильное и точное включение в издержки производства затрат, связанных с использованием принтеров, позволяет сделать вывод о необходимости автоматизации ведения документации и отчетности учета принтеров.

Основные бизнес- процессы по возникшей проблеме учета принтеров и МФУ описаны на диаграмме IDEF0 «Ведение документации и отчетности по учету принтеров» (Рис. 1.7) и детализированы на рисунке 1.8.

Рис. 1.7 Контекстная диаграмма «Ведение документации и отчетности по учету принтеров»

Рис. 1.8 Декомпозиция контекстной диаграммы «Ведение документации и отчетности по учету принтеров»

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

,

Таблица 1.2

Соответствие этапов и документов бизнес-процесса «Ведения документации и отчетности принтеров и МФУ» ОАО «Бобруйский ГАП № 1»

Этап

Входные документы

Выходные документы

Приобретение

ТТН

платежное поручение

Учетная карточка

Отчет по материалам

Ремонт

заявка на ремонт

акт выполненных работ

платежное поручение

Учетная карточка

Отчет по материалам

Движение

Акт приема - передачи

Учетная карточка

Отчет по материалам

Списание

Акт на списание

Учетная карточка

Отчет по материалам

Необходимо отметить, что на предприятии ОАО «Бобруйский ГАП № 1» осуществляется движение принтеров из отдела в отдел, что также требует ведение дополнительной документации.

В процессе автоматизации работы бухгалтера при учете принтеров и МФУ необходимо обеспечить:

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

ГЛАВА 2. ПРОЕКТНАЯ ЧАСТЬ

2.1 Информационная модель и её описание

Информационная модель представляет собой схему движения входных, промежуточных и результативных потоков и функций предметной области. Кроме того, она объясняет, на основе каких входных документов и какой нормативно-справочной информации происходит выполнение функций по обработке данных и формирование конкретных выходных документов при решении задачи учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1». Информационная модель разрабатываемой подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1», представлена на рис. 2.1.

Рис. 2.1Информационная модель разрабатываемой подсистемы для решения задачи учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1»

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

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

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

На выходе работы разрабатываемой подсистемы формируются отчеты «О принтере», «Перемещение», «Ремонт», также результатные документы «Учетная карточка» и «Отчет по материалам» в виде файлов, для дальнейшего использования в программе 1С: Предприятие внешним источником «Главный бухгалтер». Процесс формирования выходных отчетов и документов организуется при помощи вспомогательной таблицы «Расчеты».

2.2 Характеристика нормативно-справочной, входной и оперативной информации

Для работы разрабатываемой подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1», требуется ряд входных документов и справочников, реализующих успешное выполнение функций программы:

К входным документам относятся:

  • платежное поручение,
  • ТТН,
  • заявка на ремонт,
  • акт выполненных работ,
  • Акт о материальной ответственности;
  • Акт на списание малоценных быстроизнашивающихся материалов

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

Таблица 2.1

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

Входные документы

Источник получения документа

Первичных показателей

Частоту возникновения документа

1

2

3

4

платежное поручение

Бухгалтерия

Стоимость поступаемых материалов;

Стоимость ремонта.

4 раз в месяц

ТТН

Бухгалтерия

Вид поступаемых

Материалов;

Количество поступаемых

материалов.

4 раз в месяц

Акт приема - передачи

Экономический отдел

ФИО материально ответственного лица;

Отдел закрепления материалов в отделе:

инвентарный номер.

1 раз в месяц

заявка на ремонт

Экономический отдел

Вид поступаемых

Материалов на ремонт;

Количество поступаемых

Материалов на ремонт;

3 раз в месяц

акт выполненных работ

Бухгалтерия

Стоимость ремонта

3 раз в месяц

Акт на списание малоценных быстроизнашивающихся материалов

Бухгалтерия

Стоимость списанных материалов

1 раз в месяц

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

Таблица 2.2

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

название справочника

ответственный за ведение справочника

средний объём справочника в записях

среднюю частоту актуализации

средний объем актуализации (%)

Пользователи

Администратор

3

1 раз в месяц

10

Отделы

Бухгалтер

7

1 раз в год

30

Поставщики

Бухгалтер

15

1 раз в месяц

10

Принтеры

Бухгалтер

20

1 раз в год

10

Таблица 2.3

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

название справочника

реквизитный состав

Пользователи

Логин;

Пароль.

Отделы

Название отдела;

Материально ответственные лица;

Поставщики

Наименование поставщика материалов

Принтеры

Вид принтера или МФУ

2.3 Характеристика результатной информации

Результатная информация для разрабатываемой подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1» формируется в результате SQL – запросов к базе данных.

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

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

Выходные документы:

  • Учетная карточка
  • Отчет по материалам

Выходные отчеты:

«О принтере», «Перемещение», «Ремонт»

Характеристики формирования результатной информации подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1» представлены в таблице 2.4.

Таблица 2.4

Характеристики формирования результатной информации

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

Реквизиты

Таблицы, на основе которых формируются

Частота формирования

Представление

1

2

3

4

5

Отчет «О принтере»

*Инвентарный номер;

*Название принтера;

*Название отдела.

Admiss

Printer

OtdName

По запросу

Экранная форма

Отчет «Перемещение»

Инвентарный номер;

*Из какого отдела;

*В какой отдел.

Movement Printer

OtdName

По запросу

Экранная форма

Отчет «Ремонт»

Инвентарный номер;

*Дата отправления;

*Дата получения;

*Причина.

Remont

Printer

OtdName

По запросу

Экранная форма

Учетная карточка

*Отдел;

*Материально – ответственное лицо;

*Вид;

*Дата;

*Количество.

Admiss

Printer

Remont

Movement

OtdName

tmp

По запросу

Документ

Отчет по материалам

*Вид;

*Цена;

*Дата;

*От кого получено или кому отпущено;

*Приход;

*Расход.

Admiss

Printer

Remont

OtdName

tmp

По запросу

Документ

2.4 Программное обеспечение задачи

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

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

Служебные функции увеличивают функциональные возможности программы, сферу ее работы и улучшают показатели качества программы.

Список функций, реализованный в подсистеме, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1», представлен на рисунке 2.2.

Рис. 2.2 Дерево функций разрабатываемого подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1».

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

Сценарий диалога представлен в виде структурной схемы и отображает возможный выбор действий пользователя при работе с конкретной формой и отображение функциональных возможностей работы программы. Каждая форма имеет меню, которое соответствует предоставленным возможным действиям при работе с конкретной формой. Сценарий диалога подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1» отображен на рисунке 2.3.

Рис. 2.3 Сценарий диалога разрабатываемой подсистемы, решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1»

В разработанной подсистеме используется СУБД Microsoft Access и язык программирования. В C++ Builder достаточно легко работать с базами данных Microsoft Access благодаря компонентам ADO.

ADO – интерфейс программирования приложений для доступа к данным, разработанный компанией Microsoft и основанный на технологии ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т.д.) в объектно-ориентированном виде.

2.5 Дерево вызова программных модулей

Разработанная программа включает в себя ряд модулей. Дерево программных модулей, отражает структурную схему подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1» и представлено на рисунке 2.4, описание реализованных модулей приведено в таблице 2.5.

Рис. 2.4 Дерево программных модулей разрабатываемой подсистемы

Таблица 2.5

Характеристика программных модулей

№ п/п

Модуль

Наименование модуля

Функции модуля

1

2

3

4

1.

А1

Модуль авторизации

Содержит процедуры, позволяющие определить права пользователя при входе в систему, а также организовать вход в программу при правильном вводе логина и пароля

2.

А2

Модуль формирования главного меню

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

3.

А3

Модуль «Принтера»

Содержит процедуры ввода, редактирования и вывода на экран данных о имеющихся на предприятии принтеров и МФУ

4

А4

Модуль «Ремонт»

Содержит процедуры ввода, редактирования и вывода на экран данных о принтерах и МФУ, отправленных в ремонт

5

А5

Модуль «Перемещение»

Содержит процедуры ввода, редактирования и вывода на экран данных о перемещении на предприятии принтеров и МФУ

6

А6

Модуль «Поступление»

Содержит процедуры ввода, редактирования и вывода на экран данных о поступивших на предприятие принтеров и МФУ

7

А7

Модуль «Отчет»

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

8

А8

Модуль «Excel»

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

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

Схема описания работы программного модуля представляет собой блок-схему использующую следующие символы:

«Терминатор» – обозначающий начало или конец схемы программы

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

«Решение» – обозначающий проверку условия и выбор одного из нескольких альтернативных выходов

«Линия» – отображает поток данных и управления. При необходимости могут быть добавлены стрелки - указатели

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

Схема модуля «Поступление принтера» подсистемы, дополняющей основную информационную систему ведения документации на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1»приведена на рис. 2.7. Схема модуля «Документы» приведена на рис. 2.5.

Рис.2.5 Схема модуля «Поступление принтера» разрабатываемой подсистемы

Рис.2.6 Схема модуля «Документы» разрабатываемой подсистемы

Листинг программных модулей приведен в Приложении.

2.7 Контрольный пример реализации проекта и его описание

Рассмотрим интерфейс разработанной подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1», а также основные возможности работы пользователя с программным продуктом.

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

Рассмотрим работу пользователя с пунктом меню «Принтера». Данный пункт меню открывает доступ к хранилищу данных обо всех поступивших, перемещенных, принтерах в ремонте, а также ранее списанных принтерах на предприятии ОАО «Бобруйский ГАП № 1» (рисунок 2.7).

Рис. 2.7 Экранная форма модуля «Принтера» разрабатываемой подсистемы

На вкладке меню «Принтера» реализованы функции изменения данных о выбранном принтере, добавление и удаление нового принтера (рисунки 2.8 и 2.9)

Рис. 2.8 Экранная форма изменения выбранного принтера

Рис. 2.9 Экранная форма добавления нового принтера

Рассмотрим работу пользователя с пунктом меню «Поступление принтеров». Данный пункт меню открывает доступ к хранилищу данных обо всех поступивших принтерах на предприятии ОАО «Бобруйский ГАП № 1» (рисунок 2.10).

Рис. 2.10 Экранная форма пункта меню «Поступление принтеров»

На вкладке меню «Поступление принтеров» реализованы функции изменение данных о выбранном принтере, добавление нового поступившего и оприходованного принтера, также есть возможность удаления записи. Реализована защита от возможных ошибок ввода пользователя (рисунки 2.11 – 2.12)

Рис. 2.11 Экранная форма добавления нового поступившего принтера

Рис. 2.12 Экранная форма сообщения об ошибке «Не все поля заполнены»

Рис. 2.13 Экранная форма сообщения об ошибке «Данный инвентарный номер уже существует»

Рис. 2.14 Экранная форма изменения выбранного поступившего принтера

В пункте меню «Ремонт» реализованы функции внесения, удаления, редактирования и просмотра данных о принтерах, поступивших в ремонт (рисунки 2.15 -2.16). Данные о причинах и стоимости поломки вносит бухгалтер на основе акта выполненных работ и платежного поручения, для дальнейшего учета в общих расходах предприятия ОАО «Бобруйский ГАП № 1».

Рис. 2.15 Экранная форма пункта меню «Ремонт» разрабатываемой подсистемы

Рис. 2.16 Экранная форма изменения выбранного принтера

Рис. 2.17 Экранная форма добавления нового принтера для ремонта

В пункте меню «Перемещение» реализованы функции изменение данных о нахождении принтера в том или ином отделе (рисунок 2.18).

Рис. 2.18 Экранная форма пункта меню «Перемещение»

На вкладке меню «Отчет» разрабатываемой подсистемы реализованы функции получения данных о принтере, о принтерах на ремонте и данных о движении принтера. А также реализована возможность формирования электронных документов «Учетная карточка» и «Отчет по материалам», представленных в формате Excel.

Рис. 2.19 Экранная форма пункта меню «Отчет», вкладка «О принтере» разрабатываемой подсистемы

Рис. 2.20 Экранная форма пункта меню «Отчет», вкладка «Ремонт» разрабатываемой подсистемы

Рис. 2.21 Экранная форма пункта меню «Отчет», вкладка «Перемещение»

Рис. 2.22 Экранная форма пункта меню «Отчет», формирование excel –документа учетная карточка

Рис. 2.23 Экранная форма пункта меню «Отчет», формирование excel –документа отчет по материалам

Таким образом, в работе спроектирована модель автоматизации процесса управления документацией на примере предприятия ОАО «Бобруйский ГАП № 1».

Заключение

На предприятии ОАО «Бобруйский ГАП № 1» исследован процесс управления документооборотом. Цель работы была достигнута, автоматизирован процесс ведения документации и отчетности в ОАО «Бобруйский ГАП № 1». Решены основные задачи, а именно:

  • изучены основные бизнес - процессы на предприятии ОАО «Бобруйский ГАП № 1»;
  • выявлены недостатки в существующей системе ведения документации и отчетности ОАО «Бобруйский ГАП № 1», определяющих необходимость автоматизации;
  • обоснован выбор проектных решений для решения задачи автоматизации;
  • обоснована экономическая эффективность проекта.

В рамках разрабатываемой темы «Автоматизация процесса ведения документации и отчетности в ОАО «Бобруйский ГАП № 1» определено наиболее уязвимое место в организации документооборота предприятия. Так на предприятии ОАО «Бобруйский ГАП № 1» возникли трудности с ведением документации и отчетности по учету расходов на содержании и передачи в ремонт принтеров и многофункциональных устройств, так как принтера на предприятии относят к малоценным быстроизнашивающимся предметам. Возникшая ситуация потребовала дополнительного учета, позволяющего оперативно добавлять их либо в учет основных затрат предприятия для ежемесячного расчета результатов экономической деятельности.

На ОАО «Бобруйский ГАП № 1» уже стоит и обслуживается версия "1С:Бухгалтерия 8" версии 8.2, в конфигурацию которой были внесены изменения и дополнения руководство предприятия и работники бухгалтерии предпочитают не изменять версию программы, чтобы не утерять уже дополненные разработанные модули, к тому же даже в версии 8.3 нет возможности отдельного учета материалов, с возможностью по необходимости переноса ценностей к основным средствам. Для решения задачи автоматизации ведения документации и отчетности на ОАО «Бобруйский ГАП № 1» наиболее приемлемой стратегией автоматизации является автоматизация по направлениям, так как поставленная задача затрагивает несколько отделов и является дополнением к уже существующему в ОАО «Бобруйский ГАП № 1» программному обеспечению. Результатом автоматизации процесса ведения документации и отчетности предприятия ОАО «Бобруйский ГАП № 1», в рамках решения задачи учета принтеров и МФУ разработана подсистема, дополняющая основную информационную систему. В процессе работы подсистемы формируются такие выходные документы, как: Учетная карточка и Отчет по материалам, а также электронные отчеты: о принтере, перемещение и ремонт. Вследствие автоматизации затраты времени на оформление и обработку документов по ведению учета и отчетности принтеров и МФУ сократятся на 67,4 часов в год, по сравнению с использованием бумажных носителей.

В разработанной подсистемы, дополняющей основную информационную систему ведения документации и отчетности на предприятии и решающей задачу учета принтеров и МФУ предприятия ОАО «Бобруйский ГАП № 1», используется СУБД Microsoft Access и язык программирования. В C++ Builder достаточно легко работать с базами данных Microsoft Access благодаря компонентам ADO. Выбор средства разработки поставленной задачи в рамках автоматизации ведения документации и отчетности проведено совместно с инженером предприятия ОАО «Бобруйский ГАП № 1». Приемлемыми средством разработки была принята RAD Studio 10.2, как один из удобных способов создавать приложения, работающие с данными, с визуально привлекательным пользовательским интерфейсом для Windows с помощью Delphi и C++.  Позволяет создавать клиент-серверные и многоуровневые взаимодействующие приложения, подключающиеся к широкому спектру корпоративных баз данных и облачных платформ.

Список использованных источников

  1. ISO/IEC 12207 Systems and software engineering — Software life cycle processes, разработан подкомитетом ПК 7 «Системная и программная инженерия» Совместного технического комитета №1 ИСО/МЭК «Информационные технологии» от 1.08.2008 г.;
  2. ГОСТ Р ИСО/МЭК 12207-99 «Процессы жизненного цикла программных средств», принят и введен в действие постановлением Госстандарта РФ от 23 декабря 1999 г. N 675-ст;
  3. СТБ ИСО/МЭК 12207-2003 «Информационные технологии. Процессы жизненного цикла программных средств», утвержден постановлением Госстандарта РБ от 19.03.2003 г.;
  4. СТБ 6.10.1-95 «Унифицированные системы документации Республики Беларусь. Основные положения», утвержден постановлением Госстандарта РБ от 01.10.1995;
  5. Общегосударственный классификатор Республики Беларусь
    010-95 «Унифицированные документы», утвержден постановлением Госстандарта РБ от 29 сентября 1995 г.;
  6. Общегосударственный классификатор «Основные средства и нематериальные активы» (ОКРБ 020-2002), утвержден постановлением Госстандарта РБ от 27.09.2002 № 48;
  7. Инструкция по бухгалтерскому учету основных средств, утвержденная Постановлением Министерства финансов Республики Беларусь от 12.12.2001 г. N 118;
  8. Постановлением Министерства финансов Республики Беларусь от 23.03.2004 г. N 41 «Об установлении лимита отнесения имущества к отдельным предметам в составе оборотных средств»;
  9. Руководящий документ «Методология функционального моделирования IDEF0», принят и введен в действие Постановлением Госстандарта России, 2000 г.
  10. Архангельский, А. Я. C++Builder. Работа с документами Excel / А.Я. Архангельский. - М.: Бином-Пресс2016. - 480 стр.: ил.;
  11. Гагарина Л. Г., Кокорева Е. В., Висанадул Б. Д. Технология разработки программного обеспечения, М.: ИД «ФОРУМ» - ИНФРА – М, 2009 – 400 стр.: ил.;
  12. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем - М.: ИУИТ, 2012 - 300 стр.: ил.;
  13. Кузнецов С. Д. Базы данных. Модели и языки – М.: Бином-Пресс, 2013 г. - 720 стр.: ил.;
  14. Липпман С. Б. Основы программирования на C++: Пер. с англ. — М.: Вильямс, 2002. — 256 стр. : ил.;
  15. Мельников В. П. Информационная безопасность и защита информации: Академия, 2012, - 336 стр. : ил.;
  16. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных. Учебник для высших учебных заведений, М.: - КОРОНА-Век, 6-е издание, 2009. – 729 стр.: ил.;
  17. Фаронов В.В. «Delphi. Программирование на языке высокого уровня: Учебник для вузов». Издательский дом "Питер", 2013 - 642 стр.: ил.;
  18. Фатрелл Р., Шафер Д., Л. Шафер Л. Управление программными проектами: достижение оптимального качества при минимуме затрат, М.: Вильямс, 2003. – 1136 стр.: ил.;
  19. Герасимчук В. А. Автоматизация процессов предприятия // Молодой ученый. — 2016. — №11. — С. 654-657;
  20. Рысина В. А., Черепина И. О. Автоматизация учета материально-производственных запасов // Вопросы экономики и управления. — 2017. — №2. — С. 50-52;
  21. GS «Учет: услуги, торговля и склад при УСН» [Электронный ресурс] // Golubsofn [Офиц. сайт]. http://www.golubsoft.by/products/gs-uchet-uslugi-torgovlya-i-sklad-pri-usn (дата обращения: 13.12.2018);
  22. Программа материального учета [Электронный ресурс] // Разработка программного обеспечения для автоматизации бизнеса [Офиц. сайт]. http://usu.kz/programma_materialnogo_ucheta.php (дата обращения: 13.12.2018);
  23. Функциональные подсистемы 1С [Электронный ресурс] // "1С:Бухгалтерия 8" для Беларуси [Офиц. сайт]. http://svoyasistema.by/prodykty/bukhgalteriya/ (дата обращения: 13.12.2018).

Приложение А

ЛИСТИНГ

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form1->Hide();

Form3->Show();

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Hide();

Form5->Show();

}

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form1->Hide();

Form7->Show();

}

//---------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form1->Hide();

Form8->Show();

}

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form1->Close();

}

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Form1->Hide();

Form10->Show();

}

__fastcall TDataModule2::TDataModule2(TComponent* Owner)

: TDataModule(Owner)

TForm3 *Form3;

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action)

{

Form1->Show();

}

void __fastcall TForm3::Button1Click(TObject *Sender)

{

Form3->Close();

}

void __fastcall TForm3::Button3Click(TObject *Sender)

{

int result=Application->MessageBox(L"Вы уверены что хотите удалить выбранный принтер?",L"Подтверждение", MB_YESNO);

if(result == IDYES)

{DBGrid1->DataSource->DataSet->Delete();}

Button4->Enabled=false;

Button3->Enabled=false;

}

void __fastcall TForm3::Button2Click(TObject *Sender)

{

Form3->Hide();

Form4->Caption="Добавление нового принтера";

Form4->Show();

}

void __fastcall TForm3::FormShow(TObject *Sender)

{

DataModule2->ADOQuery1->Close();

DataModule2->ADOQuery1->SQL->Clear();

DataModule2->ADOQuery1->SQL->Add("SELECT * FROM Printer;");

DataModule2->ADOQuery1->Open();

}

void __fastcall TForm3::Button4Click(TObject *Sender)

{

Form3->Hide();

Form4->Caption="Изменение выбранного принтера";

Form4->Edit1->Text=DBGrid1->DataSource->DataSet->FieldByName("PInv_num")->Text;

Form4->Edit2->Text=DBGrid1->DataSource->DataSet->FieldByName("PName")->Text;

Form4->Edit3->Text=DBGrid1->DataSource->DataSet->FieldByName("POtdel")->Text;

Form4->Edit4->Text=DBGrid1->DataSource->DataSet->FieldByName("PInv_num")->Text;

Form4->Edit5->Text=DBGrid1->DataSource->DataSet->FieldByName("PName")->Text;

Form4->Edit6->Text=DBGrid1->DataSource->DataSet->FieldByName("POtdel")->Text;

DBGrid1->DataSource->DataSet->Delete();

Form4->Show();

}

void __fastcall TForm3::DBGrid1CellClick(TColumn *Column)

{

if (DBGrid1->DataSource->DataSet->RecordCount>0) {

Button4->Enabled=true;

Button3->Enabled=true;

}

else

{

Button4->Enabled=false;

Button3->Enabled=false;

}

}

TForm4 *Form4;

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm4::Button1Click(TObject *Sender)

{

if(Button2->Caption=="Изменить")

{DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Printer VALUES ("+Edit4->Text+", '"+Edit5->Text+"', '"+Edit6->Text+"');");

DataModule2->ADOQuery2->ExecSQL();}

Form4->Close();

}

void __fastcall TForm4::Button2Click(TObject *Sender)

{

int num=0;

int d=1;

if(Edit1->Text.IsEmpty() || Edit2->Text.IsEmpty() || Edit3->Text.IsEmpty() || isalpha(Edit1->Text[1]))

{Application->MessageBox(L"Не все поля заполнены либо заполнены не верно!",L"Ошибка!", MB_OK);}

else{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT COUNT(*) AS Pole FROM Printer WHERE PInv_num ="+Edit1->Text+";");

DataModule2->ADOQuery2->Open();

d = DataModule2->ADOQuery2->FieldByName("Pole")->AsInteger;

if(d==0)

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Printer VALUES ("+Edit1->Text+", '"+Edit2->Text+"', '"+Edit3->Text+"');");

DataModule2->ADOQuery2->ExecSQL();

Form4->Close();

Form3->Show();}

else{Application->MessageBox(L"Данный инвентарный номер уже существует!",L"Ошибка!", MB_OK);}

}

}

void __fastcall TForm4::FormClose(TObject *Sender, TCloseAction &Action)

{

Edit1->Clear();

Edit2->Clear();

Edit3->Clear();

Form3->Show();

}

void __fastcall TForm4::FormShow(TObject *Sender)

{

if(Form4->Caption=="Изменение выбранного принтера")

{Button2->Caption="Изменить";}

else{Button2->Caption="Добавить";}

}

TForm5 *Form5;

__fastcall TForm5::TForm5(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm5::Button1Click(TObject *Sender)

{

Form5->Close();

}

void __fastcall TForm5::FormShow(TObject *Sender)

{

DataModule2->ADOQuery1->Close();

DataModule2->ADOQuery1->SQL->Clear();

DataModule2->ADOQuery1->SQL->Add("SELECT * FROM Remont;");

DataModule2->ADOQuery1->Open();

}

void __fastcall TForm5::FormClose(TObject *Sender, TCloseAction &Action)

{

Form1->Show();

}

void __fastcall TForm5::Button3Click(TObject *Sender)

{

int result=Application->MessageBox(L"Вы уверены что хотите удалить выбранный принтер?",L"Подтверждение", MB_YESNO);

if(result == IDYES)

{DBGrid1->DataSource->DataSet->Delete();}

Button4->Enabled=false;

Button3->Enabled=false;

}

void __fastcall TForm5::Button2Click(TObject *Sender)

{

Form5->Hide();

Form6->Caption="Добавление нового принтера для ремонта";

Form6->Show();

}

void __fastcall TForm5::Button4Click(TObject *Sender)

{

Form5->Hide();

Form6->Caption="Изменение выбранного принтера";

Form6->ComboBox1->Text=DBGrid1->DataSource->DataSet->FieldByName("RInv_num")->Text;

Form6->DateTimePicker1->DateTime=DBGrid1->DataSource->DataSet->FieldByName("RDate_otpr")->AsDateTime;

Form6->DateTimePicker1->DateTime=DBGrid1->DataSource->DataSet->FieldByName("RDate_pol")->AsDateTime;

Form6->Edit2->Text=DBGrid1->DataSource->DataSet->FieldByName("RCause")->Text;

Form6->Edit3->Text=DBGrid1->DataSource->DataSet->FieldByName("RCost")->Text;

Form6->Edit4->Text=DBGrid1->DataSource->DataSet->FieldByName("RInv_num")->Text;

Form6->Edit5->Text=DBGrid1->DataSource->DataSet->FieldByName("RDate_otpr")->Text;

Form6->Edit6->Text=DBGrid1->DataSource->DataSet->FieldByName("RDate_pol")->Text;

Form6->Edit7->Text=DBGrid1->DataSource->DataSet->FieldByName("RCause")->Text;

Form6->Edit8->Text=DBGrid1->DataSource->DataSet->FieldByName("RCost")->Text;

DBGrid1->DataSource->DataSet->Delete();

Form6->Show();

}

void __fastcall TForm5::DBGrid1CellClick(TColumn *Column)

{

if (DBGrid1->DataSource->DataSet->RecordCount>0) {

Button4->Enabled=true;

Button3->Enabled=true;

}

else

{

Button4->Enabled=false;

Button3->Enabled=false;

}

}

TForm6 *Form6;

bool otmena=true;

__fastcall TForm6::TForm6(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm6::FormShow(TObject *Sender)

{

int index = 0;

ComboBox1->Items->Clear();

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT PInv_num FROM Printer;");

DataModule2->ADOQuery2->Open();

DataModule2->ADOQuery2->First();

for(int i=0;i<DataModule2->ADOQuery2->RecordCount;i++)

{ComboBox1->Items->Add(DataModule2->ADOQuery2->FieldValues["PInv_num"]);

DataModule2->ADOQuery2->Next();}

if(Form6->Caption=="Изменение выбранного принтера")

{Button2->Caption="Изменить";

for(int i=0;i<ComboBox1->Items->Count;i++)

{

if(ComboBox1->Items->Strings[i]==Edit4->Text){

index = i;}

}

ComboBox1->ItemIndex=index;

}

else{Button2->Caption="Добавить";

}

}

void __fastcall TForm6::Button2Click(TObject *Sender)

{

if(ComboBox1->Text.IsEmpty() || Edit2->Text.IsEmpty() || Edit3->Text.IsEmpty())

{Application->MessageBox(L"Не все поля заполнены либо заполнены не верно!",L"Ошибка!", MB_OK);}

else{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Remont VALUES ("+ComboBox1->Text+", '"+DateTimePicker1->DateTime+"', '"+DateTimePicker2->DateTime+"', '"+Edit2->Text+"', '"+Edit3->Text+"');");

DataModule2->ADOQuery2->ExecSQL();

otmena=false;

Form6->Close();}

}

void __fastcall TForm6::Button1Click(TObject *Sender)

{

Form6->Close();

}

void __fastcall TForm6::FormClose(TObject *Sender, TCloseAction &Action)

{

if(Button2->Caption=="Изменить" && otmena==true){

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Remont VALUES ("+Edit4->Text+", '"+Edit5->Text+"', '"+Edit6->Text+"', '"+Edit7->Text+"', '"+Edit8->Text+"');");

DataModule2->ADOQuery2->ExecSQL(); }

otmena=true;

Edit2->Text="";

Edit3->Text="";

Form5->Show();

}

TForm7 *Form7;

__fastcall TForm7::TForm7(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm7::FormShow(TObject *Sender)

{

ComboBox1->Items->Clear();

DataModule2->ADOQuery1->Close();

DataModule2->ADOQuery1->SQL->Clear();

DataModule2->ADOQuery1->SQL->Add("SELECT PInv_num FROM Printer;");

DataModule2->ADOQuery1->Open();

DataModule2->ADOQuery1->First();

for(int i=0;i<DataModule2->ADOQuery1->RecordCount;i++)

{ComboBox1->Items->Add(DataModule2->ADOQuery1->FieldValues["PInv_num"]);

DataModule2->ADOQuery1->Next(); }

}

void __fastcall TForm7::ComboBox1Change(TObject *Sender)

{

if(!(ComboBox1->Text.IsEmpty()))

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT POtdel FROM Printer WHERE PInv_num="+ComboBox1->Text+";");

DataModule2->ADOQuery2->Open();

DataModule2->ADOQuery2->First();

Edit1->Text=DataModule2->ADOQuery2->FieldValues["POtdel"];

Edit2->Enabled=true;

if(!(Edit2->Text.IsEmpty()))

{Button2->Enabled=true;}

else{Button2->Enabled=false;}

}

else{

Edit1->Text="";

Edit2->Text="";

Edit2->Enabled=false;}

}

void __fastcall TForm7::FormClose(TObject *Sender, TCloseAction &Action)

{

Form1->Show();

}

void __fastcall TForm7::Button1Click(TObject *Sender)

{

Edit1->Text="";

Edit2->Text="";

Form7->Close();

}

void __fastcall TForm7::Edit2Change(TObject *Sender)

{

if(!(Edit2->Text.IsEmpty()))

{Button2->Enabled=true;}

else{Button2->Enabled=false;}

}

void __fastcall TForm7::Button2Click(TObject *Sender)

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("UPDATE Printer SET POtdel='"+Edit2->Text+"' WHERE PInv_num="+ComboBox1->Text+";");

DataModule2->ADOQuery2->ExecSQL();

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Movement VALUES ("+ComboBox1->Text+", '"+Edit1->Text+"', '"+Edit2->Text+"');");

DataModule2->ADOQuery2->ExecSQL();

ComboBox1Change(NULL);

}TForm8 *Form8;

__fastcall TForm8::TForm8(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm8::Button3Click(TObject *Sender)

{

int result=Application->MessageBox(L"¬ы уверены что хотите удалить выбранный принтер?",L"ѕодтверждение", MB_YESNO);

if(result == IDYES)

{DBGrid1->DataSource->DataSet->Delete();}

Button4->Enabled=false;

Button3->Enabled=false;

}

void __fastcall TForm8::DBGrid1CellClick(TColumn *Column)

{

if (DBGrid1->DataSource->DataSet->RecordCount>0) {

Button4->Enabled=true;

Button3->Enabled=true;

}

else

{

Button4->Enabled=false;

Button3->Enabled=false;

}

}

void __fastcall TForm8::FormClose(TObject *Sender, TCloseAction &Action)

{

Form1->Show();

}

void __fastcall TForm8::Button1Click(TObject *Sender)

{

Form8->Close();

}

void __fastcall TForm8::FormShow(TObject *Sender)

{

DataModule2->ADOQuery1->Close();

DataModule2->ADOQuery1->SQL->Clear();

DataModule2->ADOQuery1->SQL->Add("SELECT * FROM Admiss;");

DataModule2->ADOQuery1->Open();

}

void __fastcall TForm8::Button2Click(TObject *Sender)

{

Form8->Hide();

Form9->Caption="ƒобавление нового поступившего принтера";

Form9->Show();

}

void __fastcall TForm8::Button4Click(TObject *Sender)

{

Form8->Hide();

Form9->Caption="»зменение выбранного поступившего принтера";

Form9->Edit1->Text=DBGrid1->DataSource->DataSet->FieldByName("AInv_num")->Text;

Form9->DateTimePicker1->DateTime=DBGrid1->DataSource->DataSet->FieldByName("ADate")->AsDateTime;

Form9->Edit2->Text=DBGrid1->DataSource->DataSet->FieldByName("AFrom")->Text;

Form9->Edit3->Text=DBGrid1->DataSource->DataSet->FieldByName("ACost")->Text;

Form9->Edit4->Text=DBGrid1->DataSource->DataSet->FieldByName("AName")->Text;

Form9->Edit5->Text=DBGrid1->DataSource->DataSet->FieldByName("AOtdel")->Text;

Form9->Edit6->Text=DBGrid1->DataSource->DataSet->FieldByName("AInv_num")->Text;

Form9->Edit7->Text=DBGrid1->DataSource->DataSet->FieldByName("ADate")->Text;

Form9->Edit8->Text=DBGrid1->DataSource->DataSet->FieldByName("AFrom")->Text;

Form9->Edit9->Text=DBGrid1->DataSource->DataSet->FieldByName("ACost")->Text;

Form9->Edit10->Text=DBGrid1->DataSource->DataSet->FieldByName("AName")->Text;

Form9->Edit11->Text=DBGrid1->DataSource->DataSet->FieldByName("AOtdel")->Text;

DBGrid1->DataSource->DataSet->Delete();

Form9->Show();

}

TForm9 *Form9;

bool otmena=true;

__fastcall TForm9::TForm9(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm9::FormShow(TObject *Sender)

{

if(Form9->Caption=="Изменение выбранного принтера")

{Button2->Caption="Изменить";

CheckBox1->Visible=false;

CheckBox1->Checked=false;}

else{Button2->Caption="Добавить";

CheckBox1->Visible=true;

CheckBox1->Checked=true;}

}

void __fastcall TForm9::Button1Click(TObject *Sender)

{

Form9->Close();

}

void __fastcall TForm9::Button2Click(TObject *Sender)

{

int d=1;

if(Edit1->Text.IsEmpty() || Edit2->Text.IsEmpty() || Edit3->Text.IsEmpty() || isalpha(Edit1->Text[1]) || isalpha(Edit3->Text[1]) || Edit4->Text.IsEmpty() || Edit5->Text.IsEmpty() )

{Application->MessageBox(L"Не все поля заполнены либо заполнены не верно!",L"Ошибка!", MB_OK);}

else{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT COUNT(*) AS Pole FROM Printer WHERE PInv_num ="+Edit1->Text+";");

DataModule2->ADOQuery2->Open();

d = DataModule2->ADOQuery2->FieldByName("Pole")->AsInteger;

if(d==0)

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Admiss VALUES ("+Edit1->Text+", '"+DateTimePicker1->DateTime+"', '"+Edit2->Text+"', '"+Edit3->Text+"', '"+Edit4->Text+"', '"+Edit5->Text+"');");

DataModule2->ADOQuery2->ExecSQL();

otmena=false;

if(CheckBox1->Checked)

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Printer VALUES ("+Edit1->Text+", '"+Edit4->Text+"', '"+Edit5->Text+"');");

DataModule2->ADOQuery2->ExecSQL();

}

Form9->Close();

}

else{Application->MessageBox(L"Данный инвентарный номер уже существует!",L"Ошибка!", MB_OK);}}

}

void __fastcall TForm9::FormClose(TObject *Sender, TCloseAction &Action)

{

if(Button2->Caption=="Изменить" && otmena==true){

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("INSERT INTO Admiss VALUES ("+Edit6->Text+", '"+Edit7->Text+"', '"+Edit8->Text+"', '"+Edit9->Text+"', '"+Edit10->Text+"', '"+Edit11->Text+"');");

DataModule2->ADOQuery2->ExecSQL(); }

otmena=true;

Edit1->Text="";

Edit2->Text="";

Edit3->Text="";

Edit4->Text="";

Edit5->Text="";

Form8->Show();

}

TForm10 *Form10;

__fastcall TForm10::TForm10(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm10::FormShow(TObject *Sender)

{

DBGrid1->Visible=false;

DBGrid2->Visible=false;

DBGrid3->Visible=false;

ComboBox1->Items->Clear();

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT PInv_num FROM Printer;");

DataModule2->ADOQuery2->Open();

DataModule2->ADOQuery2->First();

for(int i=0;i<DataModule2->ADOQuery2->RecordCount;i++)

{ComboBox1->Items->Add(DataModule2->ADOQuery2->FieldValues["PInv_num"]);

DataModule2->ADOQuery2->Next();}

}

void __fastcall TForm10::Button1Click(TObject *Sender)

{

Form10->Close();

}

void __fastcall TForm10::FormClose(TObject *Sender, TCloseAction &Action)

{

Form1->Show();

}

void __fastcall TForm10::ComboBox1Change(TObject *Sender)

{

DataModule2->ADOQuery1->Close();

DataModule2->ADOQuery1->SQL->Clear();

DataModule2->ADOQuery1->SQL->Add("SELECT * FROM Printer WHERE PInv_num LIKE '"+ComboBox1->Text+"';");

DataModule2->ADOQuery1->Open();

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT * FROM Remont WHERE RInv_num LIKE '"+ComboBox1->Text+"';");

DataModule2->ADOQuery2->Open();

DataModule2->ADOQuery3->Close();

DataModule2->ADOQuery3->SQL->Clear();

DataModule2->ADOQuery3->SQL->Add("SELECT * FROM Movement WHERE MInv_num LIKE '"+ComboBox1->Text+"';");

DataModule2->ADOQuery3->Open();

DBGrid1->Visible=true;

DBGrid2->Visible=true;

DBGrid3->Visible=true;

}

__fastcall TForm11::TForm11(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall

TForm11::Button1Click(TObject *Sender)

{

DataModule2->ADOQuery2->Close();

DataModule2->ADOQuery2->SQL->Clear();

DataModule2->ADOQuery2->SQL->Add("SELECT * FROM tmp;");

DataModule2->ADOQuery2->Open();

DataModule2->ADOQuery2->First();

}

vBorder(Variant& vVarCell,int Weight,

int LineStyle,int ColorIndex)

{

for(int i=8; i <= 10; i++)

{

switch(LineStyle)

{

case 1:

case -4115:

case 4:

case 5:

case -4118:

case -4119:

case 13:

case -4142:

vVarCell.OlePropertyGet("Borders",10).

OlePropertySet("LineStyle",LineStyle);

break;

default:

vVarCell.OlePropertyGet("Borders",i).

OlePropertySet("LineStyle",1);

}

switch(Weight)

{

case 1:

case -4138:

case 2:

case 4:

vVarCell.OlePropertyGet("Borders",i).

OlePropertySet("Weight",Weight);

break;

default:

vVarCell.OlePropertyGet("Borders",i).

OlePropertySet("Weight",1);

}

vVarCell.OlePropertyGet("Borders",i).

OlePropertySet("ColorIndex",ColorIndex);

}

}

{

Variant v;

if(!fStart)

{

try

{

vVarApp=CreateOleObject("Excel.Application");

fStart=true;

}

else return;

vVarApp.OlePropertySet("Visible",true);

vVarBooks=vVarApp.OlePropertyGet("Workbooks");

vVarApp.OlePropertySet("SheetsInNewWorkbook",2);

vVarBooks.OleProcedure("Add");

vVarSheet.OleProcedure("Activate");

vAsCurDir=GetCurrentDir();

vVarBook.OlePropertyGet("ActiveSheet").

vVarSheet=vVarSheets.OlePropertyGet("Item",1);

vVarSheet.OlePropertySet("Name","Учетная карточка");

vVarSheet.OleProcedure("Activate");

vVarBook.OlePropertyGet("ActiveSheet");

vVarSheets.OlePropertyGet("Item",2).

OlePropertySet("Name","Отчет по материалам");

vVarSheet.OleProcedure("Activate");

vVarBook.OlePropertyGet("ActiveSheet");

vVarSheet=vVarSheets.OlePropertyGet("Item",1);

vVarSheet.OleProcedure("Activate");

for (int i=2; i < 11; i++)

{

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",2,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tName);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",3,tMatlico);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tPrih);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",4,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tRash);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",5,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value","Остаток");

//добавить формулы подсчета суммы в строки

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",5,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value","=СУММ(A2:E2)");

vVarCell=vVarSheet.OlePropertyGet("Cells").

vVarCell.OlePropertySet("Value", "Наименование");

vVarCell=vVarSheet.OlePropertyGet("Value ","А1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Номер:");

vVarCell=vVarSheet.OlePropertyGet("Value ","B1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Приход");

vVarCell=vVarSheet.OlePropertyGet("Value ","А1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Расход");

vVarCell=vVarSheet.OlePropertyGet("Value ","B1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarSheet=vVarSheets.OlePropertyGet("Item",2);

vVarSheet.OleProcedure("Activate");

for (int i=2; i < 11; i++)

{

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",1,2);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tDate);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",2,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", tMatlico);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",3, tName);

vBorder(vVarCell,2,1,55);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",1,2);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tNum);

vVarCell.OlePropertySet("Value",tPrih);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",4,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value",tRash);

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",5,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value","Итого");

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",6,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value","=СУММ(E2:E3)");

vVarCell=vVarSheet.OlePropertyGet("Cells").

vVarCell=vVarSheet.OlePropertyGet("Cells").

OlePropertyGet("Item",5,i);

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value","=СУММ(F2:F3)");

vVarCell=vVarSheet.OlePropertyGet("Cells").

vVarCell.OlePropertySet("Value", "Дата");

vVarCell=vVarSheet.OlePropertyGet("Value ","А1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", " От кого получено, кому отпущено");

vVarCell=vVarSheet.OlePropertyGet("Value ","B1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Наименование");

vVarCell=vVarSheet.OlePropertyGet("Value ","С1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", " Номер");

vVarCell=vVarSheet.OlePropertyGet("Value ","D1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Приход");

vVarCell=vVarSheet.OlePropertyGet("Value ","E1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vVarCell.OlePropertySet("Value", "Расход");

vVarCell=vVarSheet.OlePropertyGet("Value ","F1");

vVarCell.OleProcedure("Merge");

vBorder(vVarCell,2,1,55);

vAsCurDir1=vAsCurDir+"\\Отчет.xls";

vVarApp.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).

OleProcedure("SaveAs",vAsCurDir1.c_str());

//Закрыть открытое приложение Excel

//vVarApp.OleProcedure("Quit");

}

Unit11.h

#ifndef Unit11H

#define Unit11H

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

class TForm1 : public TForm

{

__published:

TButton *Button1;

void __fastcall Button1Click(TObject *Sender);

private:

Variant vVarApp,vVarBooks,vVarBook,vVarSheets,

vVarSheet,vVarCells,vVarCell;

AnsiString vAsCurDir;

bool fStart;

void __fastcall vBorder(Variant& vVarCell,int Weight,

int LineStyle,int ColorIndex);

void __fastcall vFont(Variant& vVarCell,int HAlignment,

int VAlignment,int Size,

int ColorIndex,int Name,

TColor Color,int Style,

int Strikline,int Underline);

public:

__fastcall TForm1(TComponent* Owner);

};

extern PACKAGE TForm1 *Form1;

#endif