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

Проектирование реализации операций бизнес-процесса «Управление товарными потоками»

Содержание

Введение 3

1 глава. Аналитическая часть. 6

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

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

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

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

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

2 глава. Проектная часть. 20

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

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

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

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

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

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

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

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

Заключение 39

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

Приложение 41

Введение

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

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

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

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

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

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

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

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

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

Объектом и предметом исследования является процесс управления товарными потоками.

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

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

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

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

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

  1. - Провести анализ и описание предметной области;
  2. - Создать хранилище данных;
  3. - Обеспечить систему функцией контроля правильности оформления документов;
  4. - Изучить особенности работы пользователя и области применения информационной системы;
  5. Обеспечить максимальную безопасность данных в системе;
  6. Разработать интерфейс пользователя, учитывающий особенности специфики работы пользователя;

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

1 глава. Аналитическая часть.

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

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

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

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

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

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

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

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

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

Обязанности кладовщика входит:

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

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

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

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

Можно представить следующую классификацию бизнес-процессов реализации товаров:

Основные бизнес-процессы:

- принять товар;

- проверить срок годности;

- продать товар;

-сформировать документы.

Процессы управления:

- обеспечение соблюдения технологии обработки кадровых данных и порядка документооборота.

- анализ движения лекарств

Автоматизации в нашем случае подлежат следующие процессы:

- принять товар;

- проверить срок годности;

- продать товар;

-сформировать документы.

Построим модель Как есть (рис. 1, 2).

Рис. 1.1. Функциональная модель нулевого уровня «Управление товарными потоками» AS-IS

Взаимодействие системы с окружающей средой описывается с помощью входов (данные о поступлении товара, Данные о продажах, Сертификаты), выходов (Отчеты, Возврат), управления (лицензия на торговлю, Устав предприятия) ресурсов (Директор, Продавец).

Исполнителями процесса являются Директор и Продавец

Рис.1. 2. Функциональная модель первого уровня «Управление товарными потоками» AS-IS

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

Построим модель Как будет (рис. 3, 4).

На для процессов:

- принять товар;

- проверить срок годности;

- продать товар;

-сформировать документы.

добавляется ИС

Рис. 1.3. Функциональная модель нулевого уровня «Управление товарными потоками TO-BE

Программа участвует во всех бизнес-процессах на складе, что приводит к значительной экономии времени

Рис. 1.4. Функциональная модель первого уровня «Управление товарными потоками» TO-BE

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

Основными документами в рассматриваемой задаче являются Поступление товара и Продажа товара. Схема документооборота приведена в таб. 1.1

Таблица1.1

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

Продавец

Бухгалтер

Архив

Поступление товара

Приходная накладная

Приходная накладная

Отгрузка товара

Расходная накладная

Расходная накладная

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

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

Временные характеристики описанных процессов приведены в таблице 1.2.

Таблица 1.2

Характеристики описанных процессов

Действие

Среднее количество

за рабочий день

Время, необходимое для выполнении одного действия, минут

Общее время, минут

Поступление товара

10

15

150

Отгрузка товара

5

30

150

ИТОГО, минут:

300

Таким образом, ежедневно, в среднем, 300 минут или 5 часов , сотрудник занят занесением необходимых сведений в книги учета, а также, при необходимости анализом и поиском нужных сведений. Учитывая, что продолжительность рабочего дня составляет 8 часов, делаем вывод, что на выполнение остальных обязанностей остается менее 40 % рабочего времени, что крайне неэффективно.

Для данного способа также характерны следующие недостатки:

  • Невысокая скорость и точность выполнения расчетов.
  • Неэффективное использование рабочего времени.
  • Возможность потери важных документов.
  • Бюрократия – увеличивающийся «поток» бумажной работы.

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

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

Проведем расчет ожидаемого эффекта от внедрения средств автоматизации. В таблице 1.3 произведен расчет эффекта внедрения.

Таблица 1.3

Расчет эффекта внедрения

Действие

Среднее количество

за рабочий день

Время, необходимое для выполнения одного действия, минут

Общее время, минут

Поступление товара

100

1

100

Отгрузка товара

50

2

100

ИТОГО, минут:

200

Таким образом, ожидаемая экономия рабочего времени составляет около 3 часов ежедневно, что позволяет увеличить эффективность работы бухгалтерии.

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

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

В состав информационного обеспечения должны входить:

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

..

В состав классификаторов входят следующие:

  • Справочник "Категории"
  • Справочник "Товары"
  • Справочник "Поставщики"
  • Справочник "Сотрудники"

В список первичных документов входят:

  • Поставка
  • Продажа

В результате должны формироваться следующие документы:

  • Отчет по товару;
  • Отчет по поставщикам;
  • Отчет по продажам.

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

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

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

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

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

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

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

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

При проектировании программного продукта были рассмотрены существующие программные продукты аналогичной тематики. Ниже представлены некоторые из них.

Memo Sclad 4x4 - Склад и магазин . Универсальная программа для учета в торговле.

Достоинства:

  • Подготовка полного комплекта оперативных документов для торговой деятельности.
  • Раздельный учет товарных остатков и заказов по отделам (складам).
  • Ведение основных и вспомогательных видов документов для товарного учета.
  • Гибкая реализация различных бизнес-схем торговли и производства.
  • Формирование цен реализации товаров по форумулам расчета;
  • Ведение баланса взаиморасчетов с контрагентами и подготовка актов сверки.
  • Учет внутреннего оборота товаров (перемещение, списание, зачисление).
  • Проведение инвентаризации и формирование накладных на выравнивание остатков.

Недостатки:

  • Сложность в освоении программного интерфейса.
  • Несовместимость с другими операционными системами.
  • Наличие лишней информации.
  • Отсутствие системы авторизации.

Тирика-Магазин. Подходит для магазина любого профиля: магазина продуктов, магазина стройматериалов, магазина автозапчастей, магазина одежды.

Достоинства:

  • В программе реализована поддержка ЕГАИС.
  • Программа может работать на одном компьютере, в компьютерной сети и через интернет.
  • Регистрирует продажи и закупки, ведет остатки товаров.
  • Печатает первичные документы (товарный чек, счет-фактуру и т.п.)
  • Обладает развитой системой отчетов, позволяющих считать прибыльность и товарооборот магазина.

Недостатки:

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

МойСклад - облачный сервис для управления торговлей и сервис для розничной торговли.

Достоинства:

  • Мобильность.
  • Ценовая доступность и удобство использования.
  • Данные о продажах моментально поступают в бэк-офис остатки товара в нем корректируются.
  • При приемке товара с помощью МоегоСклада данные в режиме онлайн появляются в Своем Магазине. Такой обмен позволяет пользователям Своего Магазина, имеющим несколько розничных точек, вести централизованный учет продаж.
  • Помимо этого пользователи Своего Магазина получают возможность получать целый спектр аналитических отчетов из сервиса МойСклад.

Недостатки:

  • Отсутствие системы авторизации.
  • Несовместимость с более современными операционными системами.

2 глава. Проектная часть.

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

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

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

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

В созданной конфигурации имеются следующие справочники (таб. 2.1)

Таблица 2.1

Сводная таблица справочников

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

Ответственный за его ведение;

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

Средняя частота актуализации;

Средний объем актуализации (в записях или в процентах);

Тип товара

Бухгалтер

200

1 раз в месяц

10

Поставщик

Бухгалтер

20

1 раз в месяц

20

Товар

Бухгалтер

10

1 раз в год

10

Менеджеры

Бухгалтер

10

1 раз в месяц

20

В таб. 2.2 описаны характеристики справочника Тип товара

Таблица 2.2

Тип товара

«Тип товара»

Имя поля

Тип данных

Значение

Id_tip_tovara

Счетчик

Код типа товара

Naimenovanie

Текстовый(100)

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

В таб. 2.3 описаны характеристики справочника Поставщик

Таблица 2.3

Поставщик

Имя поля

Тип данных

Значение

Id_postavshika

Счетчик

Код поставщика

Naimenovanie

Текстовый(100)

Название поставщика

Rasch_scet

Текстовый(100)

Расчетный счет

Telephon

Текстовый(100)

Телефон

В таб. 2.4 описаны характеристики справочника Товар

Таблица 2.4

«Товар»

Имя поля

Тип данных

Значение

Id_tovara

Счетчик

Код товара

Naimenovanie

Текстовый(100)

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

Firma

Текстовый(100)

Название фирмы

Strana

Текстовый(100)

Название страны

tip_tovara

Числовой

тип товара

Cena

Денежный

Стоимость

postavshik

Числовой

поставщик

В таб. 2.5 описаны характеристики справочника Менеджеры

Таблица 2.5

«Менеджеры»

Имя поля

Тип данных

Значение

Id_manager

Счетчик

Код менеджера

Familiya

Текстовый(100)

Фамилия

Imya

Текстовый(100)

Имя

Otchestvo

Текстовый(100)

Отчество

Data_r

Дата/Время

Дата рождения

Adres

Текстовый(100)

Адрес

Telephon

Текстовый(100)

Телефон

Ser_pas

Текстовый(100)

Серия паспорта

Nom_pas

Текстовый(100)

Номер паспорта

На рисунке 2.2- отражена форма справочника Менеджеры

Рисунок 2.2 Справочник Менеджеры

Остальные формы справочников выглядят аналогично.

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

Экранные формы размещения данных описаны в таблице 2.6

Таблица 2.6

Описание входных документов

№ пп

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

Реквизиты

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

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

1

Приход

  • Номер
  • Дата
  • Тип товара
  • Товар
  • Цена
  • Количество
  • Поставщик
  • Товар
  • Поставщик
  • По мере необходимости

2

Продажи

  • Номер
  • Дата
  • Менеджер
  • Тип товара
  • Товар
  • Цена
  • Количество
  • Товар
  • Менеджеры
  • По мере необходимости

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

Экранные формы отчетов описаны в таблице 2.7

Таблица 2.7

Описание выходных документов

№ пп

Номенклатура

Реквизиты

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

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

1

Отчет о товаре

  • Номер
  • Наименование
  • Фирма
  • Страна
  • Тип товара
  • Цена
  • Товар
  • Ежемесячно

2

Поставки

  • Номер
  • Дата
  • Тип товара
  • Товар
  • Цена
  • Количество
  • Поставщик

Приход

  • Ежемесячно

3

Продажи

  • Номер
  • Дата
  • Менеджер
  • Тип товара
  • Товар
  • Цена
  • Количество

Продажи

  • Ежемесячно

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

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

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

В разработанной программе предусмотрены пользователь –Бухгалтер. Дерево диалога изображено на рисунке 2.4

Рис. 2. 4. Дерево диалога

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

Описание таблиц базы данных

Таблица 2.8. –

«Тип товара»

Имя поля

Тип данных

Значение

Id_tip_tovara

Счетчик

Код типа товара

Naimenovanie

Текстовый(100)

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

Таблица 2.9

«Поставщик»

Имя поля

Тип данных

Значение

Id_postavshika

Счетчик

Код поставщика

Naimenovanie

Текстовый(100)

Название поставщика

Rasch_scet

Текстовый(100)

Расчетный счет

Telephon

Текстовый(100)

Телефон

Таблица 2.10. –

«Товар»

Имя поля

Тип данных

Значение

Id_tovara

Счетчик

Код товара

Naimenovanie

Текстовый(100)

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

Firma

Текстовый(100)

Название фирмы

Strana

Текстовый(100)

Название страны

Id_tip_tovara

Числовой

Код типа товара

Cena

Денежный

Стоимость

Id_postavshika

Числовой

Код поставщика

Таблица 2.11. –

«Продажи»

Имя поля

Тип данных

Значение

Id_prodazi

Счетчик

Код продажи

Data_prodazi

Дата/Время

Дата продажи

Id_tovara

Числовой

Код товара

Kol

Числовой

Количество

Id_manager

Числовой

Код менеджера

Таблица 2.12. –

«Приход»

Имя поля

Тип данных

Значение

Id_prihoda

Счетчик

Код прихода

Id_tovara

Числовой

Код товара

Data_ozidaniya

Дата/Время

Дата ожидаемая

Data_fact

Дата/Время

Дата фактическая

Kol

Числовой

Количество

Id_manager

Числовой

Код менеджера

Таблица 2.13. –

«Менеджеры»

Имя поля

Тип данных

Значение

Id_manager

Счетчик

Код менеджера

Familiya

Текстовый(100)

Фамилия

Imya

Текстовый(100)

Имя

Otchestvo

Текстовый(100)

Отчество

Data_r

Дата/Время

Дата рождения

Adres

Текстовый(100)

Адрес

Telephon

Текстовый(100)

Телефон

Ser_pas

Текстовый(100)

Серия паспорта

Nom_pas

Текстовый(100)

Номер паспорта

Получили схему данных

Рис 2.5 Схема данных

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

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

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

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

Главный

модуль

Товар

Отгрузки

Поставки

Поставщики

Категории

Сотрудники

Авторизация

Экспорт

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

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

Модуль «Авторизация» содержит информацию о логине и пароле пользователей. Выполняет вход в основное окно программы.

Главный модуль.

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

  • содержит в себе переходы на другие модули приложения: товар, отгрузки, поставки, поставщики, категории, сотрудники, экспорт.

Модуль «Товар».

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

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

Модуль «Отгрузки».

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

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

Модуль «Поставки».

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

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

Модуль «Поставщики».

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

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

Модуль «Категории».

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

  • содержит информацию о наименовании категории.
  • добавление, удаление, изменение информации о категории;
  • поиск категории товара по наименованию;
  • фильтрация категории товара по наименованию;
  • сортировка категории товара по наименованию.

Модуль «Сотрудники».

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

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

Модуль «Экспорт». Предназначен для экспорта информации в форматы: MS Excel, MS Access, RTF, HTML, XML, SQL

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

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

Рисунок 2.6 – Авторизация

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

Рисунок 2.7 – Главное окно программы

Рисунок 2.8 – Товар

Рисунок 2.9 – Отгрузки

Рисунок 2.10 – Поставки

Рисунок 2.11 – Поставщики

Рисунок 2.12 – Категории

Рисунок 2.13 – Сотрудники

Рисунок 2.14 – Экспорт отчета

Рисунок 2.15 – Добавление менеджера

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

Рисунок 2.16 – Отчет о товаре

Рисунок 2.17– Закрытие программы

Заключение

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

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

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

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

  1. ГОСТ 34.602-89. «Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Техническое задание на создание автоматизированной системы».
  2. Абрамов Г.В., Медведкова И.Е., Коробкова Л.А. «Проектирование информационных систем» - Воронеж:ВГУИТ, 2012. - 172 с.
  3. Аверченков В.И., Лозбинев Ф.Ю., Тищенко А.А. «Информационные системы в производстве и экономике» - М.:ФЛИНТА, 2011. - 274 с.
  4. Братищенко В.В. «Проектирование информационных систем» - Иркутск: Изд-во БГУЭП, 2010. - 84 с.
  5. Вендеров А.М. «Проектирование программного обеспечения экономических информационных систем» - М.: Финансы и статистика, 2012.
  6. Гвоздева Т.В., Баллод Б.А. «Проектирование информационных систем» - М.:Феникс, 2011. - 512 с.
  7. Гвоздева В.А., Лаврентьева И.Ю. «Основы построения АИС» - М.: ИД «ФОРУМ»: ИНФРА-М, 2010. – 320с.
  8. Калянов Г.Н. «Стратегическое управление информационными системами» - М.:БИНОМ, 2010. - 510 с.
  9. Коровкина Н.Л. «Проектирование информационных систем» - М.: Инетрнет-университет информационных технологий - ИНТУИТ. ру, 2013.
  10. Мишенин А.И. «Теория экономических информационных систем» - М.: Финансы и статистика, 2011. - 240 с.
  11. Соловьев И.В., Майоров А.А. «Проектирование информационных систем» - М.:Академический проект, 2011. - 400 с.
  12. Титоренко Г.А. «Информационные системы и технологии управления» - М.:ЮНИТИ-ДАНА, 2012. - 591 с.
  13. Черемных С.В. «Моделирование и анализ систем» - М.: Финансы и статистика, 2013. - 192 с.

Приложение

Enter.pas

unit Enter;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, acPNG, acImage;

type

TF_Login = class(TForm)

BitBtn2: TBitBtn;

DBGrid1: TDBGrid;

Login: TEdit;

Pass: TEdit;

Button1: TButton;

Label3: TLabel;

Label4: TLabel;

BitBtn1: TBitBtn;

Edit1: TEdit;

OpenDialog1: TOpenDialog;

procedure FormCreate(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure PassKeyPress(Sender: TObject; var Key: Char);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_Login: TF_Login;

BDS:string;

implementation

uses DataModule, Liza_Gazprom;

{$R *.dfm}

function GoLogs(str:string):boolean;

var

f:TextFile;

FileDir:String;

today:TDateTime;

begin

today:=Now;

FileDir:='logs.log';

AssignFile(f,FileDir);

if not FileExists(FileDir) then

begin

Rewrite(f);

CloseFile(f);

end;

Append(f);

Writeln(f,DateToStr(today)+' '+TimeToStr(today)+' '+str);

Flush(f);

CloseFile(f);

end;

procedure TF_Login.FormCreate(Sender: TObject);

begin

BDS:='Database.mdb';

ShowModal;

end;

procedure TF_Login.BitBtn2Click(Sender: TObject);

begin

Application.Terminate;

end;

procedure TF_Login.Button1Click(Sender: TObject);

begin

if (Login.Text = 'Administrator') Then Begin GoLogs('Пользователь '+Login.Text+' вошел в систему'); Makynin.Select_DB(BDS,Login.Text,Pass.Text); Close; end else

Begin

Makynin.Select_DB(BDS,'User','');

if (DBGrid1.DataSource.DataSet.Locate('Familiya;Nom_pas', VarArrayOf([Login.Text,Pass.Text]), [])) Then

Begin

GoLogs('Пользователь '+Login.Text+' вошел в систему');

Makynin.N15.Enabled:=false;

Makynin.N3.Enabled:=false;

Makynin.N11.Enabled:=false;

Makynin.MainMenu1.Tag:=DM.ManagersId_manager.AsInteger;

Close;

End

else Begin GoLogs('Попытка входа под пользователем - '+Login.Text); showmessage('Ошибка входа не верный логин или пароль'); end;

End;

end;

procedure TF_Login.PassKeyPress(Sender: TObject; var Key: Char);

begin

if Key = #13 Then Button1Click(Sender);

end;

procedure TF_Login.BitBtn1Click(Sender: TObject);

begin

DM.Connection.Connected:=false;

if OpenDialog1.execute Then

if CopyFile(Pchar(OpenDialog1.FileName), Pchar(ExtractFilePath(Application.ExeName)+'Data\Database.mdb'), false) then

ShowMessage('База успешно восстановлена.')

else

ShowMessage('Ошибка: база не восстановлена.');

end;

end.

Tovar.pas

unit Tovar;

interface

uses

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

Dialogs, StdCtrls, DBCtrls, Buttons, ExtCtrls;

type

TF_Tovar = class(TForm)

Naimenovanie: TEdit;

Label2: TLabel;

Firma_proizvod: TEdit;

Label3: TLabel;

Strana_proizvod: TEdit;

Label4: TLabel;

Label5: TLabel;

Id_tip_technic: TDBLookupComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Price: TEdit;

Label9: TLabel;

Label11: TLabel;

Id_postavshika: TDBLookupComboBox;

ComboBox1: TComboBox;

procedure FormActivate(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure PriceKeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_Tovar: TF_Tovar;

implementation

uses DataModule, DB, ADODB;

{$R *.dfm}

procedure TF_Tovar.FormActivate(Sender: TObject);

begin

Naimenovanie.SetFocus;

end;

procedure TF_Tovar.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TF_Tovar.BitBtn1Click(Sender: TObject);

begin

Strana_proizvod.Text:=Combobox1.Text;

if Naimenovanie.Text='' then begin

Application.MessageBox('ƒл¤ добавлени¤ товара необходимо указать наименование','',MB_OK+MB_ICONWARNING);

Abort;

end

else if Id_tip_technic.KeyValue=-1 then begin

Application.MessageBox('ƒл¤ добавлени¤ товара необходимо указать тип товара','',MB_OK+MB_ICONWARNING);

Abort;

end

else if Id_postavshika.KeyValue=-1 then begin

Application.MessageBox('ƒл¤ добавлени¤ товара необходимо указать поставщика','',MB_OK+MB_ICONWARNING);

Abort;

end;

if Tag=1 then begin

with DM.For_AE do begin

SQL.Clear;

SQL.Add('INSERT INTO Tovar(Naimenovanie,Firma,Strana,Id_tip_tovara,Cena,Ostalos,Ojidaetsya,Id_postavshika)');

SQL.Add('VALUES(:Naimenovanie,:Firma,:Strana,:Id_tip_tovara,:Cena,:Ostalos,:Ojidaetsya,:Id_postavshika)');

end;

end

else begin

with DM.For_AE do begin

SQL.Clear;

SQL.Add('UPDATE Tovar SET Naimenovanie=:Naimenovanie,Firma=:Firma,Strana=:Strana,Id_tip_tovara=:Id_tip_tovara,');

SQL.Add('Cena=:Cena,Ostalos=:Ostalos,Ojidaetsya=:Ojidaetsya,Id_postavshika=:Id_postavshika WHERE Id_tovara=:Id_tovara');

end;

end;

with DM.For_AE do begin

Parameters.ParamByName('Naimenovanie').Value:=Naimenovanie.Text;

Parameters.ParamByName('Firma').Value:=Firma_proizvod.Text;

Parameters.ParamByName('Strana').Value:=Strana_proizvod.Text;

Parameters.ParamByName('Id_tip_tovara').Value:=Id_tip_technic.KeyValue;

Parameters.ParamByName('Cena').Value:=Price.Text;

if F_Tovar.Tag=1 then begin

Parameters.ParamByName('Ostalos').Value:=0;

Parameters.ParamByName('Ojidaetsya').Value:=0;

end;

Parameters.ParamByName('Id_postavshika').Value:=Id_postavshika.KeyValue;

if F_Tovar.Tag=0 then Parameters.ParamByName('Id_tovara').Value:=DM.TovarId_tovara.AsInteger;

ExecSQL;

end;

DM.Tovar.Close;

DM.Tovar.Open;

if Tag=1 then DM.Tovar.Last;

Close;

end;

procedure TF_Tovar.PriceKeyPress(Sender: TObject; var Key: Char);

begin

if Not (Key in ['0'..'9']) and (Ord(Key)<>8) and (Key<>',') then Key:=#0;

end;

end.

Prodagi.pas

unit Prodazi;

interface

uses

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

Dialogs, ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, ComObj;

type

TF_Prodazi = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

DBGrid1: TDBGrid;

Panel4: TPanel;

Label1: TLabel;

DBGrid2: TDBGrid;

Panel5: TPanel;

Label2: TLabel;

BitBtn1: TBitBtn;

Edit1: TEdit;

BitBtn2: TBitBtn;

Label3: TLabel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

Bevel2: TBevel;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

Bevel1: TBevel;

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_Prodazi: TF_Prodazi;

Itog:double;

implementation

uses DataModule, ADODB, Liza_Gazprom, DB;

{$R *.dfm}

procedure TF_Prodazi.BitBtn4Click(Sender: TObject);

begin

if Not DM.Tovar.Eof then begin

DBGrid1.Tag:=1;

Edit1.Enabled:=True;

BitBtn1.Enabled:=True;

BitBtn2.Enabled:=True;

BitBtn4.Enabled:=False;

BitBtn5.Enabled:=False;

BitBtn6.Enabled:=False;

end;

end;

procedure TF_Prodazi.BitBtn1Click(Sender: TObject);

begin

DM.For_AE.SQL.Clear;

if (Edit1.Text='') then begin

Application.MessageBox('Количество покупки должно быть больше 0','',MB_OK);

Abort;

end;

if (StrToInt(Edit1.Text)<1) then begin

Application.MessageBox('Количество покупки должно быть больше 0','',MB_OK);

Abort;

end;

if (DBGrid1.Tag=1) then DM.For_AE.SQL.Add('INSERT INTO Prodazi(Data_prodazi,Id_tovara,Kol,Id_manager) VALUES(:Data_prodazi,:Id_tovara,:Kol,:Id_manager)')

else DM.For_AE.SQL.Add('UPDATE Prodazi SET Data_prodazi=:Data_prodazi,Id_tovara=:Id_tovara,Kol=:Kol,Id_manager=:Id_manager WHERE Id_prodazi=:Id_prodazi');

with DM.For_AE.Parameters do begin

ParamByName('Data_prodazi').Value:=FormatDateTime('dd/mm/yy',Now);

if DBGrid1.Tag=1 then ParamByName('Id_tovara').Value:=DM.TovarId_tovara.AsInteger

else ParamByName('Id_tovara').Value:=DM.For_ProdaziTId_tovara.AsInteger;

ParamByName('Kol').Value:=StrToInt(Edit1.Text);

ParamByName('Id_manager').Value:=Makynin.MainMenu1.Tag;

if DBGrid1.Tag=0 then ParamByName('Id_prodazi').Value:=DM.For_ProdaziId_prodazi.AsInteger;

end;

if DBGrid1.Tag=1 then Itog:=Itog+(DM.TovarCena.AsFloat*StrToInt(Edit1.Text))

else Itog:=Itog-(DM.For_ProdaziCena.AsFloat*(DM.For_ProdaziKol.AsInteger-StrToFloat(Edit1.Text)));

DM.For_AE.ExecSQL;

DM.For_AE.SQL.Clear;

DM.For_AE.SQL.Add('UPDATE Tovar SET Ostalos=:Kolichestvo WHERE Id_tovara=:Id_tovara');

DM.For_AE.Parameters.ParamByName('Id_tovara').Value:=DM.TovarId_tovara.AsInteger;

if DBGrid1.Tag=1 then

DM.For_AE.Parameters.ParamByName('Kolichestvo').Value:=DM.TovarOstalos.AsInteger-StrToInt(Edit1.Text)

else

DM.For_AE.Parameters.ParamByName('Kolichestvo').Value:=DM.TovarOstalos.AsInteger-DM.For_ProdaziKol.AsInteger-StrToInt(Edit1.Text);

DM.For_AE.ExecSQL;

DM.Tovar.Close;

DM.Tovar.Open;

Edit1.Clear;

Edit1.Enabled:=False;

BitBtn1.Enabled:=False;

BitBtn2.Enabled:=False;

BitBtn4.Enabled:=True;

BitBtn5.Enabled:=True;

BitBtn6.Enabled:=True;

BitBtn3.SetFocus;

DM.Prodazi.Close;

DM.Prodazi.Open;

DM.For_Prodazi.Close;

DM.For_Prodazi.Open;

end;

procedure TF_Prodazi.BitBtn5Click(Sender: TObject);

begin

if Not DM.For_Prodazi.Eof then begin

DBGrid1.Tag:=0;

Edit1.Enabled:=True;

BitBtn1.Enabled:=True;

BitBtn2.Enabled:=True;

BitBtn4.Enabled:=False;

BitBtn5.Enabled:=False;

BitBtn6.Enabled:=False;

end;

end;

procedure TF_Prodazi.BitBtn2Click(Sender: TObject);

begin

Edit1.Clear;

Edit1.Enabled:=False;

BitBtn1.Enabled:=False;

BitBtn2.Enabled:=False;

BitBtn4.Enabled:=True;

BitBtn5.Enabled:=True;

BitBtn6.Enabled:=True;

end;

procedure TF_Prodazi.BitBtn6Click(Sender: TObject);

begin

if Not DM.For_Prodazi.Eof then begin

DM.For_AE.SQL.Clear;

DM.For_AE.SQL.Add('DELETE * FROM Prodazi WHERE Id_prodazi=:Id_prodazi');

DM.For_AE.Parameters.ParamByName('Id_prodazi').Value:=DM.For_ProdaziId_prodazi.AsInteger;

DM.For_AE.ExecSQL;

DM.For_AE.SQL.Clear;

DM.For_AE.SQL.Add('UPDATE Tovar SET Ostalos=:Kolichestvo WHERE Id_tovar=:Id_tovar');

DM.For_AE.Parameters.ParamByName('Id_tovar').Value:=DM.TovarId_tovara.AsInteger;

DM.For_AE.Parameters.ParamByName('Kolichestvo').Value:=DM.TovarOstalos.AsInteger+DM.For_ProdaziKol.AsInteger;

DM.For_AE.ExecSQL;

DM.Tovar.Close;

DM.Tovar.Open;

DM.Prodazi.Close;

DM.Prodazi.Open;

DM.For_Prodazi.Close;

DM.For_Prodazi.Open;

end;

end;

procedure TF_Prodazi.BitBtn3Click(Sender: TObject);

Var XLApp,Sheet,Colum:Variant;

index,i:integer;

begin

if DM.For_Prodazi.RecordCount>0 then begin

XLApp:=CreateOleObject('Excel.Application');

XLApp.Visible:=False;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Товарная накладная';

Colum:=XLApp.Workbooks[1].WorkSheets['Товарная накладная'].Columns;

Colum.Columns[1].ColumnWidth:=15;//Дата продажи

Colum.Columns[2].ColumnWidth:=50;//Наименование

Colum.Columns[3].ColumnWidth:=15;//Продавец

Colum.Columns[4].ColumnWidth:=10;//Количество

Colum.Columns[5].ColumnWidth:=10;//Артикул

Colum.Columns[6].ColumnWidth:=15;//Фирма

Colum.Columns[7].ColumnWidth:=10;//Кол. в упак.

Colum.Columns[8].ColumnWidth:=10;//Цена

Colum:=XLApp.Workbooks[1].WorkSheets['Товарная накладная'].Rows;

XLApp.Range['A1:G1'].Select;

XLApp.Selection.MergeCells:=True;

XLApp.Selection.HorizontalAlignment:=3;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clRed;

Colum.Font.Size:=12;

Sheet:=XLApp.Workbooks[1].WorkSheets['Товарная накладная'];

Sheet.Cells[1,1]:='Мобильные телефоны';

Sheet.Cells[2,1]:='Дата продажи';

Sheet.Cells[2,2]:='Наименование';

Sheet.Cells[2,3]:='Фирма';

Sheet.Cells[2,4]:='Страна производитель';

Sheet.Cells[2,5]:='Количество';

Sheet.Cells[2,6]:='Цена';

index:=3;

DM.For_Prodazi.First;

for i:=0 to DM.For_Prodazi.RecordCount-1 do begin

Sheet.Cells[index,1]:=FormatDateTime('dd/mm/yy',DM.For_Prodazi.Fields[1].AsDateTime);

Sheet.Cells[index,2]:=DM.For_Prodazi.Fields[6].AsString;

Sheet.Cells[index,3]:=DM.For_Prodazi.Fields[7].AsString;

Sheet.Cells[index,4]:=DM.For_Prodazi.Fields[8].AsString;

Sheet.Cells[index,5]:=DM.For_Prodazi.Fields[3].AsString;

Sheet.Cells[index,6]:=DM.For_Prodazi.Fields[11].AsString;

Inc(index);

DM.For_Prodazi.Next;

end;

Sheet.Cells[index+1,1]:='Итого: '+FloatToStr(Itog)+' руб.';

Sheet.Cells[index+2,1]:='Продавец: '+DM.For_ProdaziFamiliya.AsString+' / _________ /';

if Application.MessageBox('Респечатать?','',MB_OKCANCEL)=ID_OK then

XLApp.ActiveSheet.PrintOut;

try

XLApp.Workbooks[1].SaveAs(ExtractFilePath(Application.ExeName)+'Otcheti\'+FormatDateTime('dd/mm/yy',Now)+'_'+DM.For_ProdaziId_prodazi.AsString+'.xls');

except

Abort;

end;

XLApp.Visible:=True;

end;

Close;

end;

procedure TF_Prodazi.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if Not (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

end.

Managers.pas

unit Managers;

interface

uses

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

Dialogs, StdCtrls, Mask, Buttons, ExtCtrls, ComCtrls;

type

TF_Manager = class(TForm)

Label2: TLabel;

Familiya: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

Adres: TEdit;

Label5: TLabel;

Telephon: TMaskEdit;

CheckBox1: TCheckBox;

Imya: TEdit;

Otchestvo: TEdit;

Label3: TLabel;

Label4: TLabel;

Data_r: TDateTimePicker;

Label6: TLabel;

Ser_pas: TEdit;

Label8: TLabel;

Nom_pas: TEdit;

Label9: TLabel;

procedure CheckBox1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Ser_pasKeyPress(Sender: TObject; var Key: Char);

procedure Nom_pasKeyPress(Sender: TObject; var Key: Char);

procedure FamiliyaKeyPress(Sender: TObject; var Key: Char);

procedure ImyaKeyPress(Sender: TObject; var Key: Char);

procedure OtchestvoKeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_Manager: TF_Manager;

implementation

uses DataModule, Postavshik;

{$R *.dfm}

procedure TF_Manager.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then Telephon.EditMask:='!8-999-999-99-99;1;_'

else Telephon.EditMask:='!99-99-99;1;_';

end;

procedure TF_Manager.BitBtn1Click(Sender: TObject);

begin

if Familiya.Text='' then begin

Application.MessageBox('Для добавления менеджера необходимо указать фамилию','',MB_OK);

Abort;

end

else if Imya.Text='' then begin

Application.MessageBox('Для добавления менеджера необходимо указать имя','',MB_OK);

Abort;

end

else if Otchestvo.Text='' then begin

Application.MessageBox('Для добавления менеджера необходимо указать отчество','',MB_OK);

Abort;

end;

if Tag=1 then begin

with DM.For_AE do begin

SQL.Clear;

SQL.Add('INSERT INTO Managers(Familiya,Imya,Otchestvo,Data_r,Adres,Telephon,Ser_pas,Nom_pas)');

SQL.Add('VALUES(:Familiya,:Imya,:Otchestvo,:Data_r,:Adres,:Telephon,:Ser_pas,:Nom_pas)');

end;

end

else begin

with DM.For_AE do begin

SQL.Clear;

SQL.Add('UPDATE Managers SET Familiya=:Familiya,Imya=:Imya,Otchestvo=:Otchestvo,Data_r=:Data_r,Adres=:Adres,Telephon=:Telephon,Ser_pas=:Ser_pas,Nom_pas=:Nom_pas WHERE Id_manager=:Id_manager');

end;

end;

with DM.For_AE do begin

Parameters.ParamByName('Familiya').Value:=Familiya.Text;

Parameters.ParamByName('Imya').Value:=Imya.Text;

Parameters.ParamByName('Otchestvo').Value:=Otchestvo.Text;

Parameters.ParamByName('Data_r').Value:=FormatDateTime('dd/mm/yy',Data_r.Date);

if (Telephon.Text='8- - - - ') or (Telephon.Text=' - - ') then

Parameters.ParamByName('Telephon').Value:=''

else Parameters.ParamByName('Telephon').Value:=Telephon.Text;

Parameters.ParamByName('Adres').Value:=Adres.Text;

Parameters.ParamByName('Ser_pas').Value:=Ser_pas.Text;

Parameters.ParamByName('Nom_pas').Value:=Nom_pas.Text;

if F_Manager.Tag=0 then Parameters.ParamByName('Id_manager').Value:=DM.ManagersId_manager.AsInteger;

ExecSQL;

end;

DM.Managers.Close;

DM.Managers.Open;

if Tag=1 then DM.Managers.Last;

Close;

end;

procedure TF_Manager.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TF_Manager.Ser_pasKeyPress(Sender: TObject; var Key: Char);

begin

if Not (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

procedure TF_Manager.Nom_pasKeyPress(Sender: TObject; var Key: Char);

begin

if Not (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

procedure TF_Manager.FamiliyaKeyPress(Sender: TObject; var Key: Char);

begin

if (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

procedure TF_Manager.ImyaKeyPress(Sender: TObject; var Key: Char);

begin

if (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

procedure TF_Manager.OtchestvoKeyPress(Sender: TObject; var Key: Char);

begin

if (Key in ['0'..'9']) and (Ord(Key)<>8) then Key:=#0;

end;

end.