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

ПРОЕКТИРОВАНИЕ РЕАЛИЗАЦИИ ОПЕРАЦИЙ БИЗНЕС-ПРОЦЕССА УПРАВЛЕНИЕ ДОКУМЕНТООБОРОТОМ

Содержание:

Введение

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

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

Цель работы – Проектирование реализации операций бизнес-процесса «Управление денежными потоками» ООО «Мастерская мебели».

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

Автоматизация документооборота призвана решить следующие задачи:

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

В качестве субъекта решения задачи будет выступать:

  1. Среда разработки программного обеспечения.
  2. Модель автоматизации области деятельности предприятия.

В качестве объекта задачи будет выступать:

  1. Товарно-денежные операции предприятия.
  2. Существующая традиционная система журнального учёта.

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

1 Глава

1.1. Выбор комплекса задач автоматизации

1.1.1 Общая информация о предприятии

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

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

  • Современный и классический дизайн.
  • Функциональность.
  • Эргономичность.
  • Индивидуальность.

В производстве нашей мебели используются только самые надежные и качественные, соответствующие всем экологическим стандартам материалы от ведущих производителей Европы, США, Японии, Кореи и России. Функциональная фурнитура соответствует самым современным стандартам, и предложение фабрики не отличается от предложения ведущих европейских производителей.

Мебель соответствует российским и европейским стандартам качества, надежна и безопасна.

1.1.2 Выбор комплекса задач автоматизации

Бухгалтерский документооборот на данном предприятии ведётся в традиционной форме, с использование бумажных документов, журналов регистраций и т.д. Для выделения проблем реализации традиционного документооборота нужно рассмотреть бизнес-процессы, происходящие при этом на предприятии. Составим схему в формате IDEF0, в которой описаны основные бизнес-процессы (критически важные для функционирования) предприятия (см. рисунок 1,2).

Рис. 1 Схема документооборота компании

Рис. 2 Схема документооборота компании (декомпозиция)

1.2. Характеристика существующих бизнес-процессов

Данные схемы ведения документов имеют следующие недостатки:

  1. Необходимость ручного заполнения документов, что связано с большим количеством ошибок.
  2. Неудобно ведение журналов.
  3. Необходимость дублирования информации в счёте, акте и журналах (книге продаж и книге покупок).
  4. Невозможность быстрого поиска информации.
  5. Невозможно быстро составить отчёт по последним данным.

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

Усовершенствование обработки данного комплекса задач можно свести к следующим подзадачам:

  • Усовершенствовать способ заполнения документов, с целью исключить, либо уменьшить возможность совершения ошибки оператором.
  • Усовершенствовать способы ведения журналов (книг).
  • Разработать меры по избеганию необходимости дублирования информации при заполнении документов. Либо сделать создание дублей более простым и удобным.
  • Разработать и реализовать методику поиска необходимой информации в журнале.
  • Разработать и реализовать методики быстрого составления отчётов.

Сгруппируем задачи по месту их использования в бизнес-процессах, для выявления места необходимого усовершенствования. Для этого необходимо определиться с доступными для автоматизации бизнес-процессами. Для данной задачи это:

  • Заполнение акта выполненных работ/услуг.
  • Заполнение счёта на оплату.
  • Создание записи в книге продаж.
  • Создание записи в книге покупок.
  • Выполнение калькуляции себестоимости товара.
  • Составление отчётной документации.

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

Таблица 1

Сводная таблица

№ п/п

Бизнес процессы

Задача в комплексе задач

Усовершенствовать способ заполнения документов, с целью исключить, либо уменьшить возможность совершения ошибки оператором (менеджером).

Усовершенствовать способ ведения книги продажи и книги покупок.

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

Разработать и реализовать методику поиска необходимой информации в табличной документации

Разработать и реализовать методики быстрого составления отчётов

1.

Заполнение акта выполненных работ/услуг (акта на поставку сырья)

Да

Да

Продолжение таблицы 1

2.

Заполнение счёта на оплату продукции

Да

Да

3.

Создание записи в книге продаж

Да

Да

Да

4.

Составление записи в книге покупок.

Да

Да

Да

5.

Калькуляция стоимости товара.

Да

Да

6.

Составление отчётных документов

Да

Да

Да

Итого

6

3

4

1

1

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

  1. Усовершенствовать способ заполнения документов, с целью исключить, либо уменьшить возможность совершения ошибки оператором.
  2. Разработать меры по избеганию необходимости дублирования информации при заполнении документов. Либо сделать создание дублей более простым и удобным
  3. Усовершенствовать способ ведения книги продажи и книги покупок.
  4. Разработать и реализовать методику поиска необходимой информации в журнале.
  5. Разработать и реализовать методики быстрого составления отчётов.

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

1.3. Характеристика документооборота, возникающего при решении задачи

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

Рис. 3 Схема документооборота

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

  1. Устранить негативное влияние на точность информации человеческого фактора.
  2. Увеличить скорость создания всех видов документов.
  3. Повысить доступность информации внесённой ранее информации.
  4. Повысить качество хранимой информации.
  5. Создать возможность быстрого поиска введённых ранее записей.
  6. Автоматизировать заполнения дублированных документов.
  7. Автоматизировать создания специализированной отчётности.

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

  1. Возможность возникновения ошибок
  2. Оценка качества ввода, хранения, и предоставления информации.
  3. Скорости работы.

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

Таблица 2

Возможность возникновения ошибок

п/п

Автоматизируемый процесс

Традиционный способ

Способ с применением информационных технологий

1

Заполнение акта выполненных работ/услуг (акта на поставку сырья)

8

9

2.

Заполнение счёта на оплату продукции

8

9

3.

Создание записи в книге продаж

8

10

4.

Составление записи в книге покупок.

8

10

5.

Калькуляция стоимости товара.

7

10

6.

Составление отчётных документов

7

10

ИТОГО:

46

58

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

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

Таблица 3

Оценка качества ввода, хранения, и предоставления информации

п/п

Автоматизируемый процесс

Традиционный способ

Способ с применением информационных технологий

1

Заполнение акта выполненных работ/услуг (акта на поставку сырья)

7

9

2.

Заполнение счёта на оплату продукции

7

9

3.

Создание записи в книге продаж

7

9

4.

Составление записи в книге покупок.

7

9

5.

Калькуляция стоимости товара.

6

10

6.

Составление отчётных документов

5

10

ИТОГО:

33

56

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

Таблица 4

Сравнение скорости обработки информации

п/п

Автоматизируемый процесс

Традиционный способ

Способ с применением информационных технологий

1

Заполнение акта выполненных работ/услуг (акта на поставку сырья)

5

8

2.

Заполнение счёта на оплату продукции

5

8

3.

Создание записи в книге продаж

5

8

4.

Составление записи в книге покупок.

5

8

5.

Калькуляция стоимости товара.

4

10

6.

Составление отчётных документов

2

10

Итог

26

52

Из таблицы 4 следует, что автоматизированный способ более чем в два раза быстрее традиционного способа.

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

Ожидаемое снижение уровня ошибок на 100-46/58*100=21%.

Ожидаемое улучшение качества ввода, хранения, и предоставления информации на 100-33/56*100=41%.

Ожидаемое повышение скорости обработки информации на 100-26/52*100=50%.

1.4. Обоснование проектных решений по информационному обеспечению

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

Совокупность информации по какому – либо объекту называется информационной базой. Информационная база присуща любому объекту независимо от уровня управленческой техники. Она делится на подсистемы, массивы, показатели, реквизиты. Под массивом понимается структурная единица информации, представляющая набор данных, относящихся к одной задаче (подсистеме)

Информационная база, записанная на машинные носители информации и используемая для решения задач на ЭВМ, называется базой данных.

Информационная база - основа внутримашинного ИО. Это совокупность всех данных, подлежащих накоплению, хранению, поиску, преобразованию, выдаче в установленном порядке, а также использования для организации общения человека с ЭВМ.

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

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

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

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

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

Сетевые модели графически изображаются в виде графа. Вершинам графа соответствуют составные единицы информации (записи). Экземпляры записей образуют файлы. Структура записи может быть иерархической или линейной в зависимости от системы. Между парой типов записей может быть объявлено несколько связей, имена и направления связей должны быть четко обозначены. Недостатками являются: сложность (очень большое число параметров описания данных и операторов), а также неудобство навигационного доступа.

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

Со структурной точки зрения реляционные модели являются более простыми и однородными, чем сетевые и иерархические модели. Использование иерархической и сетевой моделей ускоряет доступ к информации в базе данных. Но поскольку каждый элемент данных должен содержать ссылки на некоторые другие элементы, требуются значительные ресурсы памяти ЭВМ. Недостаток памяти снижает скорость обработки данных.

Наиболее целесообразно будет организовать информационную базу системы на основе реляционной модели данных.

1.5. Обоснование проектных решений по программному обеспечению

Требования на разработку автоматизированной системы предполагает при разработке системы использовать язык программировании и систему для хранения данных.

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

  • Visual Basic;
  • C++ Builder;
  • Delphi 7 Studio.

По сравнению с Delphi и C++ - Visual Basic несколько проигрывает по функциональности и удобству разработки, поэтому в данном проекте применяться не будет.

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

Интегрированная среда разработки Delphi позволяет разработать ПО в максимально сжатые сроки и обеспечить хороший рефакторинг (читабельность, модифицируемость, удобство и оптимизацию) кода приложения. Код хорошо структурируется, названия всех функций по сути есть сокращения английских слов (IntToStr – целое в строку; Now – возвращает дату и время сейчас; UpperCase – приводит к верхнему регистру и тд), хорошая модульность и видимость кода – все это способствует скорости разработки, а также позволяет производить ее в командном режиме более эффективно.

Еще одно очевидное преимущество Delphi – компоненты, число которых исчисляется миллионами. В Delphi есть возможность скомпилировать участок кода и предоставить его в свободное пользование как компонент.

Delphi — среда программирования, в которой используется язык программирования Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Delphi это комбинация нескольких важнейших технологий:

  • Высокопроизводительный компилятор в машинный код;
  • Объектно-ориентированная модель компонент;
  • Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;
  • Масштабируемые средства для построения баз данных.

Основной упор модели в Delphi делается на то, чтобы максимально производительно использовать код. Это позволяет очень быстро разрабатывать приложения, так как уже существуют заранее подготовленные объекты. А так же возможно создавать свои собственные объекты, без каких-либо ограничений. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

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

Кроме программного модуля, система должна обладать возможностью хранить преобразованные данные. Наиболее современный и эффективный способ хранения больших объёмов структурированных данных – база данных. Для управления базой данных необходимо использование системы управления базами данных (СУБД)

Среди наиболее ярких представителей систем управления базами данных можно отметить: Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft SQL Server, Oracle, My SQL, PostgeSQL, используемые в приложениях, построенных по технологии «клиент-сервер».

Сравним представленные СУБД по основным критериям (см. таблицу 5), предъявленным разработчиком. В каждой графе будет проставляться «+», если система полностью удовлетворяет требованию, «+/-» если система частично удовлетворяет требуемому критерию, «-» - если требование не удовлетворяется.

Таблица 5

Сравнение характеристик СУБД

Microsoft Access

Borland dBase

Borland Paradox

Microsoft Visual FoxPro

Microsoft SQL Server

Oracle

My SQL

PostgeSQL

Транспортабельность

+

+

+

-

+

-

-

-

Низкая требовательность к системным ресурсам

+

+

+

-

-

-

+

+

Наличие интегрированных визуальных средств проектирования и обслуживания

+

-

+/-

+

+

+

-

-

Работа с средними объёмами данных

+

-

-

+

+

+

+

+

Надёжность хранения данных

+

-

-

+

+

+

+

+

Стоимость использования

+

+

+

-

-

-

+

+

Итоговая оценка

6

3

3,5

3

4

3

4

4

Как видно из таблицы, наиболее удовлетворяет требуемым критериям СУБД MS Access, поэтому она и будет использоваться при разработке информационной системы автоматизации.

Microsoft Access — реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.

Основные компоненты MS Access:

  • построитель таблиц;
  • построитель экранных форм;
  • построитель SQL-запросов;
  • построитель отчётов, выводимых на печать.

Microsoft Jet Database Engine, которая используется в качестве движка базы данных MS Access является файл-серверной СУБД и потому применима лишь к приложениям, работающим с небольшими объемами данных и при небольшом числе пользователей, одновременно работающих с этим данными.

Одним из многих положительных качеств приложения Access является его способность хорошо работать с различными базами данных и форматами файлов, включая данные Microsoft SQL Server [3].

Кроме специального программного обеспечения, при разработке информационной системы использовалось также системное программное обеспечение в виде операционной системы Windows XP, а так же прикладное программное обеспечение MS Office 2007 для написания документации.

2 Глава

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

Информационная модель системы автоматизации описывается следующей схемой (см. рисунок 4).

Рис. 4. Информационная модель системы

Данная информационная модель содержит:

Инициализаторы информационных потоков:

  1. Бухгалтер.
  2. Менеджер по продажам.
  3. Менеджер по закупкам.
  4. Информационная система.

Приёмники информационных потоков:

  1. Бухгалтер

Таблицы и справочники

  1. Справочник «Товары»
  2. Справочник «Клиенты»
  3. Справочник «Сотрудники»
  4. Справочник «Поставщики»
  5. Таблица «Книга продаж»
  6. Таблица «Книга покупок»
  7. Таблица «Категория товара»
  8. Таблица «Отдел»
  9. Таблица «Статус поставки»
  10. Таблица «Тип поставщика»

Формы

  1. Форма «Товары»
  2. Форма «Клиенты»
  3. Форма «Поставщики»
  4. Форма «Сотрудники»
  5. Форма «Журнал книга продаж»
  6. Форма «Журнал книга покупок»
  7. Форма «Приходная операция»
  8. Форма «Расходная операция»
  9. Форма «ОСВ (Свёрнутая)»
  10. Форма «ОСВ (Развёрнутая)»
  11. Форма «Калькуляция»

Документы

  1. Акт работ/услуг
  2. Калькуляция
  3. Счёт
  4. ОСВ свёрнутая
  5. ОСВ развёрнутая

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

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

  1. Справочник «Товары»
  2. Справочник «Клиенты»
  3. Справочник «Сотрудники»
  4. Справочник «Поставщики»

Справочник «Товары» имеет следующие атрибуты:

  • Наименование.
  • Стоимость закупочная.
  • Категория товара.

Справочник «Клиенты» имеет следующие атрибуты:

  • Наименование.
  • Адрес.
  • Телефон.

Справочник «Сотрудники» имеет следующие атрибуты:

  • ФИО.
  • Подразделение.

Справочник «Поставщики» имеет следующие атрибуты:

  • Наименование
  • Адрес
  • Телефон
  • Договор
  • Тип поставщика

Входная информация представлена двумя видами операций:

  • Реализация.
  • Поступления.

Операция реализация имеет следующие атрибуты:

  • Дата документа.
  • Объект.
  • Товар.
  • Цена.
  • Количество.
  • Сумма.
  • Менеджер.

Операция поступление имеет следующие атрибуты:

  • Дата документа.
  • Поставщик.
  • Товар.
  • Цена.
  • Количество.
  • Сумма.
  • Статус.
  • Дата статуса.

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

К результатной информации относятся:

  • Оборотно-сальдовая ведомость (свёрнутая).
  • Оборотно-сальдовая ведомость (развёрнутая).
  • Калькуляция.
  • Счёт.
  • Акт.

Оборотно-сальдовая ведомость (свёрнутая) содержит следующие атрибуты:

  • Дата.
  • Дебет.
  • Кредит.
  • Сальдо.
  • Итог.

Оборотно-сальдовая ведомость (развёрнутая) содержит следующие атрибуты:

  • Дата.
  • Наименование.
  • Цена.
  • Количество.
  • Обороты по дебету.
  • Обороты кредиту.
  • Итог.

Калькуляция имеет следующие атрибуты:

  • Наименование.
  • Полная стоимость.

Счёт имеет следующие атрибуты:

  • Дата документа.
  • Объект.
  • Товар.
  • Цена.
  • Количество.
  • Сумма.
  • Менеджер.

Акт имеет следующие атрибуты:

  • Дата документа.
  • Поставщик.
  • Товар.
  • Цена.
  • Количество.
  • Сумма.
  • Статус.
  • Дата статуса.

2.4. Общие положения (дерево функций и сценарий диалога)

Дерево функций программы изображено на рисунке 5:

Рис. 5. Дерево функций

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

Рис. 6. Сценарий диалога

2.5. Характеристика базы данных

ER-диаграмма базы данных информационной системы представлена на рисунке 7.

Рис. 7. ER диаграмма

2.6 Структурная схема пакета (дерево вызова программных модулей)

Схема пакета программных модулей построена по иерархическому принципу. Структура иерархии приведена на рисунке 8.

Рис. 8. Структурная схема пакета

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

Программа представляет собой несколько независимых модулей. Укрупнённые алгоритмы некоторых модулей приведены на рисунках ниже (рисунки 9-18):

SELECT Поставщики

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

удалить

вставить

Выход

выход

DELETE Поставщики

INSERT Поставщики

UPDATE Поставщики

REFRESH Поставщики

Отчёт 1

Отчёт 2

Поставщики - выписка

поставщики - список

редактировать

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Рис. 9. Алгоритм модуля справочника «Поставщики»

SELECT Объекты

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

удалить

вставить

Выход

выход

DELETE Объекты

INSERT Объекты

UPDATE Объекты

REFRESH Объекты

Отчёт 1

Отчёт 2

Объекты - выписка

Объекты - список

редактировать

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Рис. 10. Алгоритм модуля справочника «Объекты»

SELECT Сотрудники

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

удалить

вставить

Выход

выход

DELETE Сотрудники

INSERT Сотрудники

UPDATE Сотрудники

REFRESH Сотрудники

Отчёт 1

Отчёт 2

Сотрудники - выписка

Сотрудники - список

редактировать

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Рис. 11. Алгоритм модуля справочника «Сотрудники»

SELECT Товары

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

удалить

вставить

Выход

выход

DELETE Товары

INSERT Товары

UPDATE Товары

REFRESH Товары

Отчёт 1

Отчёт 2

Товары - выписка

Товары - список

редактировать

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Рис. 12. Алгоритм модуля справочника «Товары»

SELECT покупки

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

Выход

выход

REFRESH покупки

Отчёт 1

Отчёт 2

покупки - список

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Добавить покупку

покупки - документ

новый документ

Рис. 12. Алгоритм модуля журнала «Покупки»

SELECT Продажи

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

Выход

выход

REFRESH Продажи

Отчёт 1

Отчёт 2

продажи - список

обновить/переместить курсор

сформировать отчёт

сформировать отчёт

Добавить продажу

продажи - документ

новый документ

Рис. 13. Алгоритм модуля журнала «Продажи»

SELECT lookUp

БД

дисплей

Выбор действия

Ввод пользователя

Событие/данные

Вход

Выход

Сохранить документ

Отмена

INSERT

БД

Рис 14. Алгоритм модуля документа «Покупка»

SELECT lookUp

БД

дисплей

Выбор действия

Ввод пользователя

Событие/данные

Вход

Выход

Сохранить документ

Отмена

SELECT

БД

Дост. товара

Товара достаточно

Товара не достаточно

INSERT

БД

Рис. 15. Алгоритм модуля документа «Продажа»

SELECT v_osv

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

Выход

REFRESH v_osv

Отчёт

Оборотно-сальдовая

обновить/переместить курсор

сформировать отчёт

Рис. 16. Алгоритм модуля отчёта «Оборотно-сальдовая ведомость»

SELECT v_osv_r

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

Выход

REFRESH v_osv_r

Отчёт

Оборотно-сальдовая

обновить/переместить курсор

сформировать отчёт

Рис. 17. Алгоритм модуля отчёта «Оборотно-сальдовая ведомость (развернутая)»

SELECT v_object

БД

дисплей

Выбор действия

Ввод пользователя

Событие

Вход

Выход

REFRESH v_object

обновить/переместить курсор

Рис. 18. Алгоритм модуля отчёта «объекты»

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

Программа можно условно разделить на четыре функциональные части:

Главное меню

  • Справочники
  • Операции
  • Отчёты

Главное меню:

Рис. 19. Главное меню

Справочники:

Рис. 20. Справочник «Поставщики»

Рис. 21. Справочник «Клиенты»

Рис. 22. Справочник «Сотрудники»

Рис. 23. Справочник «Товар»

Операции:

Рис. 24. Операции «Книга покупок»

Рис. 25. Операции «Книга продаж»

Рис. 26. Операции «Реализация»

Рис. 27. Операции «Поступления»

Отчёты:

Рис. 28. Отчёты «Оборотно-сальдовая ведомость свёрнутая»

Рис. 29. «Отчёты. Оборотно-сальдовая ведомость развёрнутая»

Рис. 29. «Ведомость по объектам»

Заключение

При работе над данным проектом мною были достигнуты следующие цели:

  1. Дана исчерпывающая технико-экономическая характеристика предприятия ООО «Фабрика мебели».
  2. Описанная схема работы предприятия.
  3. Выделен комплекс задач, подлежащих оптимизации.
  4. Выделены задачи в комплексе, которые необходимо автоматизировать.
  5. Обоснована необходимость использования вычислительной техники, при решении данных задач.
  6. Произведён анализ существующих стратегий автоматизации, и сделан выбор в пользу наиболее подходящей стратегии.
  7. Исследованы и систематизированы способы приобретения системы, автоматизации, даны рекомендации по наиболее эффективному способу приобретения системы автоматизации.
  8. Разработана концепция программного продукта, позволяющего сократить расходы и повысить качество работы.
  9. Автоматизирована предметная область.
  10. Проведено предварительное тестирование программы, запуск программы в тестовую эксплуатацию.

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

  • Значительное снижение уровня трудозатрат.
  • Повышение качество выполнения бизнес-процессов документооборота.
  • Ускорение работы сотрудников, отвечающих за документооборот.
  • Снижение ошибок, при составлении документов.
  • Приведение документации к единому стандарту.
  • Снижение влияния человеческого фактора.
  • Снижение материальных расходов (бумаги, журналов, кассовых книг).

Как видно, внедрение разработки принесло большое количество преимуществ, в сферу обеспеченья документооборота предприятия.

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

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

  1. Методические рекомендации в помощь автору вузовской книги / Составитель Устьянцева Л. В.; под редакцией Козлова В. Ю.; Урал. гос. горный ун-т. – Екатеринбург: Изд-во УГГУ, 2007. – 51с.
  2. ГОСТ 2.105–95. Единая система конструкторской документации. Общие требования к текстовым документам. Введ. 2006-07-01. – Минск.: ИПК, Изд-во стандартов, 1996. – 37с.
  3. ГОСТ 7.32–2001. Система стандартов по информации, библиотечному и издательскому делу: отчет о научно-исследовательской работе. Структура и правила оформления. Введ. 2002–07–01. – Минск: Госстандарт России, 2002. – 19с.
  4. ГОСТ 7.1-2003. Библиографическая запись. Библиографическое описание. Общие требования и правила составления. (Система стандартов по информации, библиотечному и издательскому делу). – Введ. 2004–07–01. – Минск: ИПК, Изд-во стандартов, 2004. – 171с.
  5. ГОСТ Р 6.30-2003. Унифицированные системы документации. Унифицированная система организационно-распорядительной документации. Требования к оформлению документов. – Введ. 2003-07-01. – М.: Госстандарт России: Изд-во стандартов, 2003. –.28с.
  6. ГОСТ 7.90–2007. Система стандартов по информации, библиотечному и издательскому делу. Универсальная десятичная классификация. Структура, правила ведения и индексирования. – Введ. 2008–07–01. – М.: Стандартинформ, 2008. – 26с.
  7. ГОСТ 7.12–93. Библиографическая запись. Сокращение слов на русском языке. Общие требования и правила. – Введ. 1995–07–01. – М.:Изд-во стандартов, 1995. – 19с.
  8. ГОСТ 2.304–81. Переиздан (апрель 2000 г.) Единая система конструкторской документации. Шрифты чертежные. Изд. официальное. – М.:Госстандарт России, 2000. – 23с.
  9. ГОСТ 19.701–90. ЕСПД. Схемы алгоритмов программ, данных и систем. Условные обозначения. ГК СССР УКПС. – Введ. 1991-07-01. – М.:Госстандарт России, 1991. – 26с.
  10. Единицы физических величин. ГОСТ 8.417-81. Издание официальное. ГК СССР С. – М.: Издательство стандартов, 1988. – 40с.
  11. Петров Ю.С., Маркс С.Р. Система управления базами данных. ACESS 7.0. Учебное пособие.– Екатеринбург: Изд. УГГГА, 1998. – 35с.
  12. ПетровЮ.С. Мультимедийные лекции по дисциплине «Информатика», раздел «Базы данных», 2010г. –http://www.ursmu.ru/sitemap.html
  13. Тимухина В.В. Мультимедийные лекции по дисциплине «Информатика», разделы «Программное обеспечение» и «Алгоритмизация и программирование», 2010г. –http://www.ursmu.ru/sitemap.html

Приложение 1

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ImgList, Menus, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N9: TMenuItem;

N2: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N5: TMenuItem;

N12: TMenuItem;

N3: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N4: TMenuItem;

ImageList1: TImageList;

ADOConnection1: TADOConnection;

N8: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

MainMenu2: TMainMenu;

MenuItem1: TMenuItem;

MenuItem2: TMenuItem;

MenuItem3: TMenuItem;

MenuItem4: TMenuItem;

MenuItem5: TMenuItem;

MenuItem6: TMenuItem;

MenuItem7: TMenuItem;

MenuItem8: TMenuItem;

MenuItem9: TMenuItem;

MenuItem10: TMenuItem;

MenuItem11: TMenuItem;

MenuItem12: TMenuItem;

MenuItem13: TMenuItem;

MenuItem14: TMenuItem;

MenuItem15: TMenuItem;

MenuItem16: TMenuItem;

MenuItem17: TMenuItem;

MenuItem18: TMenuItem;

Image1: TImage;

N19: TMenuItem;

N20: TMenuItem;

procedure N7Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N20Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

dbpath:string;

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit7, Unit6, Unit8, Unit11, Unit10,

Unit9, Unit12, Unit13;

{$R *.dfm}

procedure TForm1.N7Click(Sender: TObject);

begin

form2.show;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form3.show;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

form4.Show;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

form5.show;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

form6.show;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

form7.Show;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

form8.show;

end;

procedure TForm1.N15Click(Sender: TObject);

begin

form11.show;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

form10.show;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

form9.show;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm1.N17Click(Sender: TObject);

begin

form12.show;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

MessageDlg('ÀÐÌ ìåíåäæåðà',mtInformation, [mbOK], 0);

end;

procedure TForm1.FormCreate(Sender: TObject);

var a,p:string;

begin

getdir(0,form1.dbpath);

form1.dbpath:=form1.dbpath+'\db.mdb';

getdir(0,p);

form1.ADOConnection1.Connected:=false;

a:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ='+p+'\db.mdb;DefaultDir='+p+';Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN='+p+'\db.mdb;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;";Initial Catalog='+p;

form1.ADOConnection1.ConnectionString:=a;

form1.ADOConnection1.Connected:=true;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

form13.show;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, unit1, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, Menus, comobj,

Buttons, AccessXP, OleServer, Access2000;

type

TForm2 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator2: TDBNavigator;

DataSource1: TDataSource;

ADOTable1: TADOTable;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TWideStringField;

ADOTable1DSDesigner4: TWideStringField;

// procedure SpeedButton1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

//const

//.acviewnormal = $00000000;

//acviewdesign = $00000001;

//acviewpreview = $00000002;

var

Form2: TForm2;

access: variant;

implementation

{$R *.dfm}

{procedure TForm2.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Îáúåêò-ñïèñîê', acViewPreview, EmptyParam, EmptyParam);

end;

}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{

procedure TForm2.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

//form2.ADOTable1.FieldByName('Íîìåð').AsString;

access.docmd.openreport('Îáúåêò-âûïèñêà', acViewPreview, EmptyParam, 'Íàèìåíîâàíèå='''+form2.ADOTable1.FieldByName('Íàèìåíîâàíèå').AsString+'''');

end;

}

procedure TForm2.FormActivate(Sender: TObject);

begin

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

form2.ADOTable1.Active:=true;

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, unit1, Buttons, comobj,

AccessXP, OleServer, Access2000;

type

TForm3 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator2: TDBNavigator;

ADOTable1: TADOTable;

DataSource1: TDataSource;

ADOTable1DataSource: TDataSource;

ADOTable1DSDesigner5: TWideStringField;

ADOTable1DSDesigner6: TWideStringField;

ADOTable1DSDesigner7: TWideStringField;

ADOTable1DSDesigner8: TIntegerField;

ADOTable1DSDesigner9: TWideStringField;

ADOTable2: TADOTable;

ADOTable1Field: TStringField;

// procedure SpeedButton1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormActivate(Sender: TObject);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

access: variant;

implementation

{$R *.dfm}

{

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ïîñòàâùèêè - ñïèñîê', acViewPreview, EmptyParam, EmptyParam);

end; }

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

procedure TForm3.FormActivate(Sender: TObject);

begin

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

{

procedure TForm3.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ïîñòàâùèêè - âûïèñêà', acViewPreview, EmptyParam, 'Íàèìåíîâàíèå='''+form3.ADOTable1.FieldByName('Íàèìåíîâàíèå').AsString+'''');

end;

}

procedure TForm3.FormCreate(Sender: TObject);

begin

form3.ADOTable1.Active:=true;

end;

end.

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, Buttons, comobj,

AccessXP, OleServer, Access2000;

type

TForm4 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator2: TDBNavigator;

ADOTable1: TADOTable;

ADOTable1DSDesigner: TAutoIncField;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TBCDField;

ADOTable1DSDesigner4: TIntegerField;

ADOTable2: TADOTable;

ADOTable1IntegerField: TStringField;

DataSource1: TDataSource;

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton1Click(Sender: TObject);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

access: variant;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm4.FormActivate(Sender: TObject);

begin

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{

procedure TForm4.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Òîâàð - ñïèñîê', acViewPreview, EmptyParam, EmptyParam);

end;

procedure TForm4.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Òîâàð - âûïèñêà', acViewPreview, EmptyParam, 'Íàèìåíîâàíèå='''+form4.ADOTable1.FieldByName('Íàèìåíîâàíèå').AsString+'''');

end;

}

procedure TForm4.FormCreate(Sender: TObject);

begin

form4.ADOTable1.Active:=true;

end;

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, Buttons, comobj,

AccessXP, OleServer, Access2000;

type

TForm5 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator2: TDBNavigator;

ADOTable1: TADOTable;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TIntegerField;

ADOTable2: TADOTable;

ADOTable1DSDesigner: TIntegerField;

ADOTable1IntegerField: TStringField;

DataSource1: TDataSource;

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

/// procedure SpeedButton1Click(Sender: TObject);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

access: variant;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm5.FormActivate(Sender: TObject);

begin

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{procedure TForm5.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ñîòðóäíèêè - ñïèñîê', acViewPreview, EmptyParam, EmptyParam);

end;

procedure TForm5.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ñîòðóäíèêè - âûïèñêà', acViewPreview, EmptyParam, '[ÔÈÎ ñîòðóäíèêà]='''+form5.ADOTable1.FieldByName('ÔÈÎ').AsString+'''');

end;

}

procedure TForm5.FormCreate(Sender: TObject);

begin

form5.ADOTable1.Active:=true;

end;

end.

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DBCtrls, DB, Grids, DBGrids, ADODB, StdCtrls, Buttons, comobj,

AccessXP, OleServer, Access2000;

type

TForm6 = class(TForm)

ADOTable1: TADOTable;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

DBNavigator1: TDBNavigator;

Panel1: TPanel;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton1Click(Sender: TObject);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

access: variant;

implementation

uses Unit7, Unit1;

{$R *.dfm}

procedure TForm6.BitBtn1Click(Sender: TObject);

begin

form7.show;

end;

procedure TForm6.FormActivate(Sender: TObject);

begin

form6.ADOTable1.Active:=false;

form6.ADOTable1.Active:=true;

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{

procedure TForm6.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ïðîäàæè', acViewPreview, EmptyParam, EmptyParam);

end;

procedure TForm6.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('ñ÷¸ò', acViewPreview, EmptyParam, 'íîìåð='+form6.ADOTable1.FieldByName('íîìåð').AsString);

end;

}

procedure TForm6.FormCreate(Sender: TObject);

begin

form6.ADOTable1.Active:=true;

end;

end.

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ComCtrls, StdCtrls, DBCtrls, Mask, Buttons;

type

TForm7 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

DateTimePicker1: TDateTimePicker;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox;

DBLookupComboBox3: TDBLookupComboBox;

Edit2: TEdit;

UpDown1: TUpDown;

Edit3: TEdit;

Edit1: TEdit;

BitBtn1: TBitBtn;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

procedure Edit2Change(Sender: TObject);

procedure Edit1Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.Edit2Change(Sender: TObject);

begin

edit3.Text:=formatFloat('# ### ##0.00ð.',strtofloat(edit1.Text)*strtofloat(edit2.Text));

end;

procedure TForm7.Edit1Exit(Sender: TObject);

begin

edit3.Text:=formatFloat('# ### ##0.00ð.',strtofloat(edit1.Text)*strtofloat(edit2.Text));

end;

procedure TForm7.Edit2Exit(Sender: TObject);

begin

edit3.Text:=formatFloat('# ### ##0.00ð.',strtofloat(edit1.Text)*strtofloat(edit2.Text));

end;

procedure TForm7.BitBtn1Click(Sender: TObject);

begin

try

form7.ADOQuery2.active:=false;

form7.ADOQuery2.Parameters.ParamByName('n').Value:=form7.DBLookupComboBox2.KeyValue;

form7.ADOQuery2.active:=true;

form7.Caption:=form7.ADOQuery2.FieldByName('Êîë').AsString;

if form7.ADOQuery2.FieldByName('Êîë').AsInteger>=strtoint(form7.Edit2.Text) then

begin

form7.ADOQuery1.Parameters.ParamByName('dp').Value:=form7.DateTimePicker1.Date;

form7.ADOQuery1.Parameters.ParamByName('ob').Value:=form7.DBLookupComboBox1.KeyValue;

form7.ADOQuery1.Parameters.ParamByName('tv').Value:=form7.DBLookupComboBox2.KeyValue;

form7.ADOQuery1.Parameters.ParamByName('zn').Value:=strtofloat(form7.Edit1.Text);

form7.ADOQuery1.Parameters.ParamByName('kl').Value:=strtoint(form7.Edit2.Text);

form7.ADOQuery1.Parameters.ParamByName('mg').Value:=form7.DBLookupComboBox3.KeyValue;

form7.ADOQuery1.ExecSQL;

form7.Close;

end

else

MessageDlg('Íåäîñòàòî÷íî òîâàðà',mtError, [mbOK], 0);

except

on exception do ShowMessage('Îøèáêà äîáàâëåíèÿ çàïèñè');

end;

end;

procedure TForm7.FormCreate(Sender: TObject);

begin

form7.ADOTable1.Active:=true;

form7.ADOTable2.Active:=true;

form7.ADOTable3.Active:=true;

end;

end.

unit Unit8;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, comobj,

AccessXP, OleServer, Access2000;

type

TForm8 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Panel1: TPanel;

BitBtn1: TBitBtn;

ADOTable1: TADOTable;

DataSource1: TDataSource;

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton1Click(Sender: TObject);

// procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

access: variant;

implementation

uses Unit9, Unit1;

{$R *.dfm}

procedure TForm8.BitBtn1Click(Sender: TObject);

begin

form9.show;

end;

procedure TForm8.FormActivate(Sender: TObject);

begin

form8.ADOTable1.Active:=false;

form8.ADOTable1.Active:=true;

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{

procedure TForm8.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Ïîñòàâêè', acViewPreview, EmptyParam, EmptyParam);

end;

procedure TForm8.SpeedButton2Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Àêò âûïîëíåííûõ ðàáîò', acViewPreview, EmptyParam, '[Ïîðÿäêîâûé íîìåð]='+form8.ADOTable1.FieldByName('Ïîðÿäêîâûé íîìåð').AsString);

end;

}

procedure TForm8.FormCreate(Sender: TObject);

begin

form8.ADOTable1.Active:=true;

end;

end.

unit Unit9;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ADODB, StdCtrls, Buttons, ComCtrls, DBCtrls, DB;

type

TForm9 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

DateTimePicker1: TDateTimePicker;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox;

DBLookupComboBox3: TDBLookupComboBox;

Edit2: TEdit;

UpDown1: TUpDown;

Edit3: TEdit;

Edit1: TEdit;

BitBtn1: TBitBtn;

DateTimePicker2: TDateTimePicker;

Label8: TLabel;

ADOQuery1: TADOQuery;

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

{$R *.dfm}

procedure TForm9.BitBtn1Click(Sender: TObject);

begin

try

form9.ADOQuery1.Parameters.ParamByName('dp').Value:=form9.DateTimePicker1.Date;

form9.ADOQuery1.Parameters.ParamByName('pk').Value:=form9.DBLookupComboBox1.KeyValue;

form9.ADOQuery1.Parameters.ParamByName('tv').Value:=form9.DBLookupComboBox2.KeyValue;

form9.ADOQuery1.Parameters.ParamByName('zn').Value:=strtofloat(form9.Edit1.Text);

form9.ADOQuery1.Parameters.ParamByName('kl').Value:=strtoint(form9.Edit2.Text);

form9.ADOQuery1.Parameters.ParamByName('st').Value:=form9.DBLookupComboBox3.KeyValue;

form9.ADOQuery1.Parameters.ParamByName('ds').Value:=form9.DateTimePicker2.Date;

form9.ADOQuery1.ExecSQL;

form9.Close;

except

on exception do ShowMessage('Îøèáêà äîáàâëåíèÿ çàïèñè');

end;

end;

procedure TForm9.Edit1Exit(Sender: TObject);

begin

edit3.Text:=formatFloat('# ### ##0.00ð.',strtofloat(edit1.Text)*strtofloat(edit2.Text));

end;

procedure TForm9.Edit2Exit(Sender: TObject);

begin

edit3.Text:=formatFloat('# ### ##0.00ð.',strtofloat(edit1.Text)*strtofloat(edit2.Text));

end;

procedure TForm9.FormCreate(Sender: TObject);

begin

form9.ADOTable1.Active:=true;

form9.ADOTable2.Active:=true;

form9.ADOTable3.Active:=true;

end;

end.

unit Unit10;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, Buttons, comobj,

AccessXP, OleServer, Access2000, StdCtrls, Mask;

type

TForm10 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

ADOTable1: TADOTable;

DataSource1: TDataSource;

Panel1: TPanel;

ADOQuery1: TADOQuery;

Label1: TLabel;

DataSource2: TDataSource;

DBEdit1: TDBEdit;

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form10: TForm10;

access: variant;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm10.FormActivate(Sender: TObject);

begin

form10.ADOTable1.Active:=false;

form10.ADOTable1.Active:=true;

form10.ADOQuery1.Active:=false;

form10.ADOQuery1.Active:=true;

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm10.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{procedure TForm10.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Îáîðîòíî-ñàëèäîâàÿ âåäîìîñòü (ðàçâ¸ðíóòàÿ)', acViewPreview, EmptyParam, EmptyParam);

end;

}

procedure TForm10.FormCreate(Sender: TObject);

begin

form10.ADOTable1.Active:=true;

end;

end.

unit Unit11;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, comobj,

AccessXP, OleServer, Access2000, Buttons, StdCtrls, Mask;

type

TForm11 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

ADOTable1: TADOTable;

DataSource1: TDataSource;

Panel1: TPanel;

Label1: TLabel;

DBEdit1: TDBEdit;

ADOQuery1: TADOQuery;

DataSource2: TDataSource;

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

// procedure SpeedButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form11: TForm11;

access: variant;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm11.FormActivate(Sender: TObject);

begin

form11.ADOTable1.Active:=false;

form11.ADOTable1.Active:=true;

form11.ADOQuery1.Active:=false;

form11.ADOQuery1.Active:=true;

{try

Access := GetActiveOleObject('Access.Application');

except

on exception do

begin

Access := CreateOleObject('Access.Application');

end;

end; }

end;

procedure TForm11.FormClose(Sender: TObject; var Action: TCloseAction);

begin

{try

Access.CloseCurrentDatabase;

Access.Quit(acQuitSaveAll);

except

;

end; }

end;

{procedure TForm11.SpeedButton1Click(Sender: TObject);

begin

Access.Visible := True;

access.opencurrentdatabase(form1.dbpath, true);

access.docmd.openreport('Îáîðîòíî-ñàëüäîâàÿ âåäîìîñòü', acViewPreview, EmptyParam, EmptyParam);

end;

}

procedure TForm11.FormCreate(Sender: TObject);

begin

form11.ADOTable1.Active:=true;

end;

end.

unit Unit12;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TForm12 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

ADOTable1: TADOTable;

DataSource1: TDataSource;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

{$R *.dfm}

procedure TForm12.FormCreate(Sender: TObject);

begin

form12.ADOTable1.Active:=true;

end;

end.

unit Unit13;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;

type

TForm13 = class(TForm)

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.FormActivate(Sender: TObject);

begin

form13.ADOQuery1.Active:=false;

form13.ADOQuery1.Active:=true;

end;

end.