Проектирование автоматизированной системы обслуживания кафе

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,83 Мб
  • Опубликовано:
    2014-02-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование автоматизированной системы обслуживания кафе

Введение


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

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

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

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

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

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

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

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

оперативное управление и анализ деятельности предприятия общественного питания;

ускорение процесса обслуживания клиентов

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

уменьшение ошибок планирования и управленческой деятельности;

уменьшение злоупотреблений со стороны персонала и т.д.

Как правило, организуются три вида автоматизированных рабочих мест (АРМ): место кассира (официанта), место менеджера (администратора, бухгалтера) и место для обслуживания информационной базы данных системы.

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

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

провести исследование деятельности рассматриваемого предприятия, описать его основные бизнес-процессы, обосновать необходимость разработки автоматизированной системы;

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

спроектировать информационную базу программного решения;

реализовать программное решение и привести контрольный пример;

разработать инструкцию пользователя.

 


1. Обследование предприятия общественного питания

1.1   Общая характеристика предприятия


Объектом автоматизации в данной дипломной работе является предприятие общественного питания кафе.

Тип предприятия - кафе-бар. Это предприятие общественного питания с широким ассортиментом блюд. Назначение - обслуживание потребителей.

Организационная форма предприятия - индивидуальный предприниматель. Производственная структура кафе представлена на рисунке.

автоматизация программный кафе

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

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

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

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

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

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

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

Структура предприятия четко определена.

Всех сотрудников можно дифференцировать на три основные категории: руководители, специалисты, исполнители.

Руководители: директор кафе, администратор кафе.

Специалисты: 1 шеф-повар, 1 технолог, 2 бухгалтера, 2 менеджера зала, 1 менеджер по снабжению.

Технические исполнители: 4 повара, 6 официантов, 2 кассира, 2 бармена, 1 уборщица, 1 гардеробщик.

Таким образом, система не перегружена специалистами и техническими исполнителями.

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

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

Нижний уровень управления является источником информации для принятия управленческих решений на более высоком уровне. Если рассматривать поток информации от уровня к уровню, то количество информации, выраженное в числе символов, уменьшается с повышением уровня, но при этом увеличивается ее смысловое (семантическое) содержание [14, с. 118].

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

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

1.2 Обоснование необходимости автоматизации рабочего места


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

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

Он управляет списками блюд для каждого конкретного АРМа официанта, а также списками блюд, которые должны печататься на удалённых (кухонных) принтерах.

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

Рассмотрим бизнес-процессы кафе «У тещи», в которых принимает активное участие администратор.

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

1.  Бронирование зала для проведения банкетов и других мероприятий.

2.      Обслуживание клиента в зале.

Рассмотрим, какие функции предполагается автоматизировать с помощью АРМ «Администратор кафе»:

прием заказов клиентов с указанием зала, стола и количества гостей (бронирование столиков);

прием заказов на обслуживание (бронирование зала кафе).

Дальнейшее развитие АРМ «Администратор кафе» предполагает разработку АРМ «Официант», при этом будет обеспечено взаимодействие администратора и официанта.

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

 



1.3 Обзор существующих систем управления предприятием питания


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

Готовые решения предназначены для полной автоматизации деятельности кафе.

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

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

Недостатком данного продукта является его высокая стоимость, оплата постоянного сопровождения. Так, стоимость 1С Ресторан на 01.11.2013 составляет 124 000 тенге (по данным сайта фирмы 1С [20]). Также программа нуждается в регулярном обслуживании, для этого необходимо заключить договор на обслуживание с компанией - франчайзи фирмы 1С, например, too «1-С». По самому дешевому тарифному плану «Стандартный» обслуживание составляет 1050 тенге / месяц, в год обслуживание составит 12600 тенге. При этом данная сумма не предусматривает консультаций по программному продукту, если у сотрудников что-то не будет получаться, программа не будет функционировать правильно или работники будут испытывать трудности при работе с программой, потребуется вызов специалиста, который будет оплачиваться отдельно по часовой ставке 1100 тен./час (данные взяты с сайта компании 1-С): [22]

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

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

отсутствие ненужных («лишних») модулей;

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

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

приемлемая стоимость программного решения.

Сравнение языков программирования их плюсы и минусы показаны в Таблице 1.

Таблица 1. Сравнение языков программирования

Параметры

Delphi

Си ++

Visual Basic

Общие сведения

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

Процедурный язык программирования, который был разработан в 1970х годах. Он создавался для использования в ОС UNIX.

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

Плюсы языка

Мощная и удобная интегрированная среда (IDE). Ни один компилятор C++, включая Visual C++, не предоставляет столь дружественной, интуитивно понятной, простой в использовании и вместе с тем столь многофункциональной оболочки как Delphi. В Delphi введены мощные средства поддержки работы с данными, позволяющие очень просто создавать приложения, связанные с базами данных.

Минимализм, обширный набор функций и лаконичность

Быстрое создание приложения для Windows с графическим интерфейсом; лёгкий синтаксис, который позволяет быстро освоить язык; предусмотрена защита от ошибок, связанных с доступом к памяти и применением указателей

Минусы языка

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

Некоторые элементы потенциально опасны, а предсказать последствия их использования практически невозможно. Многие уязвимости невозможно увидеть ни при компиляции, ни во время исполнения. Язык чрезмерно сложен.

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




2. Разработка автоматизиорованной системы

2.1 Анализ требований к автоматизированной системе


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

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

. Система должна содержать 5 справочников:

Клиенты;?

Сотрудники?

Статистика?

Меню и ингредиенты?

Обслуживание?

Рисунок 2. Схема функционирования автоматизированной системы обслуживания клиентов

2.2 Базы данных и Delphi 7

Для работы с базами в Delphi есть несколько наборов компонент. Каждый набор очень хорошо подходит для решения определённого круга задач. Почему такое разнообразие компонентов? Все они используют разные технологии доступа к данным и отличаются по возможностям. В отличие от Microsoft, которая встроила в свои продукты разработки только технологию доступа к данным ADO собственной разработки, фирма Borland дала нам разнообразие средств работающих через разные технологии и не ограничивает нас только своими разработками. Такое положение вещей даёт нам громадные преимущества перед другими программистами. Помимо этого есть группы, которые могут использоваться в любом случае, и здесь я попробую дать краткий обзор доступных нам средств.

На закладке Data Access расположены основные компоненты доступа к данным. Эти компоненты общие для всех и могут использоваться совместно с другими группами компонентов.

Рисунок 3. Закладка Data Access палитры компонентов

На закладке Data Controls расположены компоненты для отображения и редактирования данных в таблицах. Эти компоненты так же используются в не зависимости от используемой технологии доступа к данным.

Рисунок 4. Закладка Data Controls палитры компонентов


Закладка BDE содержит компоненты, позволяющие получить доступ к базам данных по технологии, разработанной фирмой Borland под названием Borland Database Engine.

Эта технология сильно устарела и поставляется только для совместимости со старыми версиями. Не смотря на это, она хорошо работает со старыми типами баз данных, такими как Paradox и dBase.

Рисунок 5. Закладка BDE палитры компонентов

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

Рисунок 6. Закладка dbExpress палитры компонентов

(Active Data Objects) - технология доступа к данным, разработанная корпорацией Microsoft. Очень хорошая библиотека, но я рекомендую её использовать только с базами данных Microsoft, а именно MS Access или MS SQL Server. Её так же можно использовать, если у тебя специфичный сервер баз данных, который может работать только через ODBC.


Рисунок 7. Закладка ADO палитры компонентов

Работа с базами данных Access идёт через специальную надстройку DAO, которая может устанавливаться на компьютер вместе с программой Office или идти как отдельная установка. Так что если твоя программа не будет работать на компьютере клиента, то надо позаботиться о установке DAO на этот компьютер.

2.3 Создание базы данных кафе в Access

Сейчас я постараюсь подробно рассказать, как создавал и использовал базы данных Access. Для последующей работы необходимо, чтобы на компьютере был установлен MS Office и его компонент MS Access. Именно в нём и создавалась база, а вот работать с ними мы будем уже из Delphi.

Запусти Access и выбери в меню Файл->Создать. В мастере создания базы выбери пункт «База данных» и нажми «ОК». Тебе предложат выбрать имя базы и место расположения, укажи что угодно, а назвал свой файл hd.mdb.

После этого Access создаст базу и сохранит её по указанному пути. Первым находится пункт «Таблицы» (он выделен по умолчанию) который и будет нас интересовать. Если этот объект у тебя не выделен, то выдели его. В окне справа находится три пункта:

. Создание таблицы в режиме конструктора

. Создание таблицы с помощью мастера

. Создание таблицы путём ввода данных

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

Колонки в таблицах называются полями, и по ним определяется, какие именно данные хранятся в таблице.

Для начала создадим таблицу клиенты для нашей базы.

Рисунок 8.таблица ассортименты

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

• Масксимальная длинна поля. Для текстового поля размер не может быть больше 255. Если текст длинее, то надо использовать «Поле Memo».

• Формат поля. Здесь ты можешь указать внешний вид данных. Например, поле может выглядить как «Yes/No» для логических полей, или например «mm yyyy» для поля даты.

• Маска ввода. Здесь мы вводим маску, которая отвечает за отображение поля при редактировании. Если ты щёлкнешь на кнопке с точками»…» в строке «Маска ввода», то увидишь мастер создания маски.

• Значение по умолчанию. Умолчание, оно и в африке по умолчанию.

• Обязательное поле. Если пользователь не введёт сюда значение, то появится сообщение об ошибке. Такое поле не может быть пустым.

• Пустые строки. Похоже на предыдущий, потому что это поле тоже не может быть пустым.

• Индексированное поле. Может быть неиндексированным, индексированным с допуском совпадений, и индексированным без допуска совпадений. Основной индекс всегда без допуска совпадений. Остальные желательно с допуском.

• Сжатие Юникод - позволяет сжать данные в соответствии с Юникод.

Создаем восемь полей:

. Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

. Имя поля - Наименование. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

Имя поля - Описание. Тип - текстовый. Размер поля - 10. Индексированное поле - «Да (Допускаются совпадения)».

Имя поля - цена. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

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

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

Теперь выдели первое поле (код), щёлкни правой кнопкой мыши и выбери пункт «Ключевое поле» (рисунок 2). Задание ключевого поля является обязательным действием, если ты этого не сделаешь, то таблица не сможет редактироваться, а это значит, что в неё нельзя будет добавить строки.

Рисунок 9. Задание ключевого поля

Всё, теперь таблицу можно сохранять и закрывать. На вопрос: «Сохранить таблицу» отвечай положительно и сохраняй под именем «Ассортименты». Наша первая база данных готова.

Рисунок 10.таблица должность

Создаем шесть полей:

. Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

. Имя поля - Наименование. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

3 Имя поля - Описание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Оклад. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Процент от продаж. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Инструкция. Тип - мемо. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

Рисунок 11.таблица категории

Создаем пять полей:

. Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

. Имя поля - ассортимент. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. имя поля - описание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - код предложения. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - количество. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».


Рисунок 12. таблица клиенты

Создаем семь полей:

. Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

. Имя поля - Фамилия. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Имя. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Отчество. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Адрес. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Паспорт. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Дата регистрации. тип поля - дата / время.


Рисунок 13.таблица предложение

Создаем пять полей:

. Имя поля - код. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - Наименование. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

Имя поля - код типа Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - цена. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - описание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

Рисунок 14. таблица реализация

Создаем шесть полей:

. Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

. Имя поля - код услуги. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - код клиента. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - код сотрудника. Тип - числовой. Размер поля - Длинное целое. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - дата. Тип - дата / время.

6. Имя поля - замечание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

Рисунок 15. Таблица сотрудники

Создаем восемнадцать полей:

.        Имя поля - код. Тип - счётчик. Это у нас будет ключик. Размер поля - «Длинное целое». Индексированное поле - «Да (Совпадения не допускаются)».

2.      Имя поля - фамилия. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - имя. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - отчество. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - дата приема. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - адрес. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - телефон. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - паспорт. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - фотография. Тип - поле обекта OLE.

.        Имя поля - замечание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - код должности. Тип - числовой.

.        Имя поля - табельный номер. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - ИНН. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - пенсионное свидетельство. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - пол. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - дата рождения. Тип - дата / время.

.        Имя поля - место рождения. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

.        Имя поля - образование. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».


Рисунок 16. таблица Тип

Создаем три поля:

. Имя поля - код. Тип - счетчик.

. Имя поля - наименование. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

. Имя поля - описание. Тип - текстовый. Размер поля - 50. Индексированное поле - «Да (Допускаются совпадения)».

Инфологическая модель

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

Ядром инфологической модели является описание объектов предметной области и связей между ними (сущность-связь). [14]


Рисунок 17. схема данных Db.mdb

2.4 Управление отображением данных

Мы пишем программу, которая будет работать с базой данных MS Access. Я уже говорил, что для разработок от MS лучше всего использовать ADO. Давай напишем наше для работы с базой данных.

 - ADOConnection.

Создан новый проект. На форме компонент ADOConnection с закладки ADO палитры компонентов. Теперь настроим соединение с сервером, которое должно быть прописано в свойстве ConnectionString. Для этого надо дважды щёлкнуть по строке ConnectionString и перед нами открывается окно, как на рисунке 17

Рисунок 18. Окно создания подключения к базе

. Использовать специальный файл (Use Data Link File);

. Использовать строку подключения (Use Connection String).

Второе, на мой взгляд, более предпочтительно, поэтому я покажу, как создать строку подключения. Для этого щёлкаем кнопку Build и перед нами открываеться ещё одно окно, показанное на рисунке 10.

Рисунок 19. Окно создания строки подключения


На закладке Provider перечислены все доступные ADO драйверы доступа к базам данных. Если какого-то драйвера нет, то можно попробовать выделенный по умолчанию «Microsoft OLE DB Provider for ODBC Drivers». Этот драйвер позволяет получить доступ к базе данных через ODBC драйвер, которые есть к большинству существующих баз данных (единственное, он может быть не установленным на твоём компьютере).

В нашем случае, для доступа к базам данных MS Access используется драйвер «Microsoft Jet OLE DB Provider». Такой драйвер обязательно устанавливается на машину вместе с MS Office, а в последних версиях Windows он устанавливается по умолчанию.

На моей машине установлено сразу две версии этого драйвера, поэтому я выберу более новый - «Microsoft Jet 4.0 OLE DB Provider». После этого нажимаем кнопку Next, или переходим на закладку «Connection».

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

Первым делом, в этом окне надо ввести имя (если надо то и путь) базы данных в строку «Select or enter a database name». Если база данных будет располагаться в той же директории, что и запускной файл, то путь указывать не надо. Я вообще советую хранить базы в одной директории с запускными файлами. Если ты будешь держать отдельно от запускного, то тебе придётся указывать полный путь, а это может вызвать проблемы при переносе программы на другой компьютер. Ведь там программа будет искать базу по казанному пути, который может измениться. Если хочешь держать файлы в другой директории, то указывай относительный путь относительно текущей директории.


Рисунок 20. Закладка Connection

Чтобы легче было выбрать файл базы данных необходимо щёлкнуть по кнопке с точками справа от строки ввода.

Помимо этого нам надо заполнить следующие поля:

. Имя пользователя (User name), можно оставить по умолчанию, если не заданно иное при создании базы в MS Access;

. Пароль (Password) - если база имеет пароль, то его необходимо указать;

. Пустой пароль (Blank password) - если пароль не нужен, то здесь желательно поставить галочку;

. Позволять сохранять пароль (Allow saving password). Если здесь поставить галочку, то пароль может быть сохранён.

Как только выберешь базу данных, нажми кнопку Test Connection, чтобы протестировать соединение. Если всё указано правильно, то ты должен увидеть сообщение «Test connection succeeded». Всё, можно нажать ОК, чтобы закрыть окно создания строки подключения и ещё раз ОК, чтобы закрыть окно редактора строки подключения (тот, что был на рисунке 11).

Теперь в свойствах компонента ADOConnection отключил свойство LoginPrompt, выставив его в False. Это нужно для того, чтобы при каждом обращении к базе нас не грузили окном ввода пароля. А теперь выставил свойство Connected в True, чтобы произошло соединение с базой. На этом соединение можно считать оконченным. Теперь нам надо получить доступ к созданной нами базе. Для этого брось на форму компонент ADOTable с закладки ADO палитры компонентов.

 - TADOTable.

В этом компоненте тоже есть свойство ConnectionString и его так же можно настраивать. Почему «можно»? Да потому что, чтобы этого не делать мы поставили на форму компонент ADOConnection. Теперь мы можем указать у нашего компонента в свойстве Connection, созданный нами компонент соединения с базой данных.

Щёлкни по выпадающему списку в свойстве Connection и выбери там единственный пункт ADOConnection1. Теперь нам не надо заполнять свойство ConnectionString.

Теперь в свойстве TableName нужно выбрать имя нашей таблицы. Всё,

таблица и соединение указаны, можно подключатся. Для этого выставь свойство Active в true.- этот метод проверяет правильность закладки. В качестве единственного параметра нужно указать закладку типа TBookmark и если она является действительной, то результатом будет true.- отменить обновления сохранённые в кэш памяти. - сравнение двух закладок. У метода два параметра типа TBookmark. Эти две закладки сравниваются. Если закладки равны, то результат равен нулю. Если первая меньше второй, то результат будет -1. Если первая больше второй, то результат равен единице.- удалить записи. У метода один параметр - какие записи удалять. Ты можешь указать следующие значения в качестве параметра:

arCurrent удалить только текущую запись.

arFiltered удалить записи удовлетворяющие установленному фильтру.

arAll - все записи.

arAllChapters удалить записи во всех разделах ADO.- добавить новую запись в конец таблицы.- отменить изменения текущей строки, если изменения ещё не были сохранены с помощью метода Post.- закрыть таблицу.- удалить текущую строку.- перейти в режим редактирования. После этого можно изменять значения полей.- найти поле по имени. В качестве единственного параметра нужно указать имя поля виде строки и в результате получаем ссылку на поле в виде объекта TField.- перейти на первую строку в таблице.- вставить новую строку в таблицу.- если метод вернёт true то в таблице нет записей.- перейти на последнюю запись в таблице.- перейти на следующую запись.- принять все изменения.- двигаться на предыдущую запись в таблице.- обновить информацию о данных.- обновить текущую запись.

 - TDataSource

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

 - DBGrid

Всё!!! Все приготовления готовы, можно приступать к реальному отображению данных. Самый простой способ отобразить таблицу - установить компонент DBGrid. Это компонент-сетка, которая может отображать данные в виде таблицы. В этом же компоненте можно добавлять, удалять и редактировать строки нашей таблицы.

И последний этап создания нашего приложения - связывание компонента сетки с компонентом отображения таблицы. Для этого в свойстве DataSuorce компонента DBGrid нужно указать созданный нами компонент DataSource1.

2.5 Разработка формы

Разместите на форме компонент MainMenu категории Standard и создайте меню, представленное на рис. 22.

Рисунок 22. Меню программы


На главную форму установил следующие компоненты: Image bitbtn с закладки additional.

Компонент отображает на форме графическое изображение и обеспечивает работу с ним. Основные cвойсва:- содержит отображаемый графический объект;- будет ли картинка изменяться пропорционально при увеличении размеров;- должны ли изменяться размеры изображения, подгоняясь под размеры компонента. Учтите, что изменение размеров изображения приведет к его искажению, если соотношение сторон графического объекта и компонента TImage не одинаково;- должен ли быть цвет фона изображения прозрачным, чтобы сквозь него было видно нижележащее изображение;- должно ли изображение центрироваться в поле компонента, если его размеры меньше размеров поля. При значении False изображение располагается в верхнем левом углу поля. Свойство не действует, если AutoSize установлено в true или если Stretch установлено в true и Picture содержит не пиктограмму;- Указывает, изменяется ли автоматически размер компонента, подстраиваясь под размер изображения. По умолчанию False - не подстраивается.

Свойство Picture типа TPicture содержит отображаемый графический объект типа битовой матрицы, пиктограммы, метафайла или определенного пользователем типа. Свойство Canvas позволяет создавать и редактировать изображения.является контейнером любого графического объекта TGraphic, тип которого указывается свойством Graphic.В зависимости от типа хранимого объекта - битовой матрицы, пиктограммы, метафайла, определены соответствующие свойства Bitmap, Icon или Metafile, указывающие на графический объект.

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

Компонент Delphi BitBtn это пиктографическая кнопка, представляющая собой один из вариантов стандартной кнопки Button. В отличие от последней кнопкаDelphi BitBtn умеет отображать на своей поверхности не только надпись, но и изображение, которое задаётся свойством Glyph. В состав Delphi входит большое количество готовых изображений, которые можно размещать на кнопках Delphi BitBtn. В стандартном случае они располагаются по адресу C:\Program Files\Common Files\Borland Shared\Images\Buttons.

Свойство Kind компонента Delphi BitBtn определяет один из стандартных вариантов кнопки BitBtn:

Рисунок 22.Виды кнопок

Нажатие на любую из них (кроме кнопок со свойством BitBtn. Kind, равнымbkCustom или bkHelp) приводит к закрытию модального окна, в котором она установлена, а результат, возвращаемый в программу равен mrName (Name - Yes, Abort, Cancel и т.д. - название кнопки). Отличие есть у кнопки Close, её нажатие (после закрытия модального окна) приводит к возвращению не mrClose а mrCancel, а для главное окно программы просто закрывается, поэтому работа программы сразу завершается.

В случае если пиктограмма Glyph у кнопки Delphi BitBtn была изменена, система Delphi автоматически изменит и её значение BitBtn. Kind, которое станет равным bkCustom

Специфические свойства компонента - пиктографической кнопки Delphi BitBtn перечислены в таблице:

Glyph: TBitmap

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

Kind

Определяет одну из разновидностей кнопки BitBtn (см. рисунок вверху).

Layout

Определяет к какому краю кнопки будет прижиматься пиктограмма: · blGlyphLeft - к левому; · blGlyphRight - к правому; · blGlyphBottom - к нижнему; · blGlyphTop - к верхнему.

Margin

Определяет расстояние в пикселах, на котором будет располагаться пиктограмма от края кнопки.

NumGlyph

Определяет сколько растровых изображений размещается в файле, содержащем пиктограмму (*см. ниже).

Spacing

Определяет расстояние в пикселах от рисунка до текста на кнопке.

Style

Определяет как выглядит кнопка в зависимости от стиля предпочтительной операционной системы. Значение bsNewсоответствует современным вариантам Windows. Стиль bsAutoDetectприводит оформление кнопки к стилю операционной системы, управляющей работой программы в настоящий момент.


Рисунок с изображениями для кнопки может состоять из нескольких (до 4-х) частей. Стандартная пиктограмма имеет размер 16х16 пикселов. Соответственно, если рисунок состоит из 2-х частей (для активного или неактивного состояния кнопки - именно такие изображения содержатся в стандартной поставке Delphi), то рисунок будет иметь размер 32х16. Количество пиктограмм задаётся свойствомGlyph. Однако, если изображение состоит из нескольких квадратных пиктограмм одного размера, система Delphi сама распознает их количество.

Если в растре задана только одна пиктограмма, то Delphi сама может менять её изображение: в состоянии «нажата» изображение на кнопке смещается на 1 пиксель вниз-вправо, а в состоянии «недоступная» (Enabled=False) все цвета, кроме чёрного, меняются на светло-серый, а чёрный - на белый, что создаёт эффект вдавленности.

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

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

Теперь выбери из меню File->New->Data Module (рисунок 12). Этим ты заставишь Delphi создать специальное окно Data Module, которое удобно подходит для хранения компонентов доступа к базам данных.

Рисунок 23. Создание модуля Data Module

Теперь выбери из меню Edit пункт Paste, чтобы вставить в это окно вырезанные нами компоненты. Расположи теперь эти компоненты в окне так, как тебе будет удобно. Я сделал это так, как показано на рисунке 14.

Рисунок 24. Окно Data Module

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

Теперь создадим новую форму и сохрани форму в модуле под именем fmMain.

Рисунок 25. главная форма программы

Меню программы:

Меню:

мастер

выход

Отчеты

Документы:

Прайс лист

карточки клиентов

карточки сотрудников

Действия:

работа с клиентами

редактировать сотрудников

редактировать ассортимент

редактировать предложение

оформить покупку

Рисунок 26. Форма сотрудники

Данная форма предоставляет возможность ввода и редактирования данных о сотрудниках.


Рисунок 27.Форма клиенты

Данная форма предоставляет возможность редактирования клиентов организации.

Рисунок 28. Форма товары и услуги

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

Рисунок 29. Форма реализация

Данная форма предоставляет возможность оформления и редактирования продаж товаров и услуг.

2.6 Создание отчетности в Quick Reports

Создания отчётов которое входит в поставку Delphi - это Quick Reports. Он не является самым быстрым, и в сети Internet можно найти множество более быстрых, как платных, так и бесплатных генераторов отчётов. Но Quick Reports очень мощный и уже установлен в Delphi и готов к работе. Именно поэтому я выбрал его, Где бы ты не сел за Delphi, этот генератор уже будет установленным и его можно использовать.

Все компоненты Quick Reports находятся на закладке QReport палитры компонентов.

Сначала посмотрим на головной компонент Quick Reports - TQuickRep. Этот компонент - основа любого отчёта. Он представляет собой холст листа будущего отчёта.

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

Давай посмотрим на объектный инспектор и разберёмся с полями нашего отчёта:- здесь ты можешь указать, что должен иметь будущий документ, а он может содержать:- Заголовки колонок. Если твой отчёт будет содержать таблицу, то она должна иметь шапку, где будут описаны названия колонок. Вот именно эту шапку создают в этой части документа. Так что если тебе нужна будет таблица, то этому свойству нужно будет присвоить true.- если в отчёте есть таблица, то вид строк делается в этом разделе.- в этом разделе создаётся нижний колонтитул.- здесь создаётся заголовок документа.- содержимое этого раздела печатается один раз в конце отчёта (на последней странице).- в этом разделе делается заголовок отчёта.

Попробуй создать новый проект и бросить на форму один компонент QuickRep. Теперь включи какие-нибудь разделы и посмотри на результат. На форме должны

появиться области очерченные пунктирной линией и внизу этой области должно быть написано её предназначение. Так ты легко можешь отличить их между собой. Любую область можно выделить и растянуть или уменьшить.- здесь указывается набор данных (таблица) из которой отчёт будет брать данные.- шрифт, который будет использоваться по умолчанию.- здесь ты указываешь параметры рамки.- здесь тебе доступны три параметра. Если FirstPageHeader равно true, то заголовок печатается только на первой странице отчёта. Если LastPageFooter равен true, то нижний колонтитул печатается только на последней странице отчёта. Если установить свойство Compression в true, то отчёт будет сохраняться в сжатом виде.- здесь тебе доступны все необходимые опции для контроля над бумагой отчёта. Ты можешь установить её размеры, отступы и ориентацию.- здесь находятся настройки принтера. С принтером мы уже работали, да и настройки практически не требуют пояснения.- здесь находится заголовок печатаемого документа.- если этот параметр равен true то во время печати тебе будет доступен индикатор хода выполнения печати.- нужно ли выравнивать компоненты по установленной сетке.- масштаб отображения данных.

Если дважды щёлкнуть по компоненту QuickRep, то перед тобой откроется окно, в котором все эти настройки представлены в одном окне и в очень удобном виде. Они

достаточно понятны и легко разобраться со всем самостоятельно (смотри рисунок 23).

Я предпочитаю пользоваться именно этим окном, потому что здесь всегда можно увидеть будущий результат и если что, то все изменения можно отменить нажатием кнопки Cancel.


Рисунок 30. Окно настроек отчёта

На форме (тест) установил компонент QuickRep. Выдели этот компонент и в объектном инспекторе включи параметры HasTitle и HasDetail свойства Bands.

Теперь нужно в этих секциях расположить компоненты, которые будут отображать нужную нам информацию. На закладке QReport палитры компонентов доступны следующие компоненты, которые можно располагать в этих разделах:- надпись. Этот компонент похож на стандартный компонент TLabel и просто отображает нужные данные.- данные. Этот компонент тоже похож на TLabel, только он предназначен для отображения значения какого либо поля из базы данных. Тип поля базы данных должен быть совместим с текстом, т.е. может быть целым числом, строкой, датой, но не может быть картинкой или бинарными данными.- системная информация. Это опять копия TLabel только с возможностью отображать системную информацию - дату, время, номер страницы, номер строки в таблицы, общее количество страниц и т.д.- набор строк. Этот компонент уже похож на TMemo и способен отображать Memo данные из базы данных.- компонент для создания обрамлений. Он чем то похож на стандартный TShape.

Перед тобой откроется окно предварительного просмотра, как на рисунке 31.

Рисунок 31. печать результатов


3. Экономическое обоснование проекта

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

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

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

В экономической литературе эффективность трактуется по-разному, как:

отношение между полученными результатами и затратами средств и труда,

вероятность выполнения поставленных перед системой задач,

количественная мера удовлетворительного поведения объекта и т.д.

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

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

Поэтому выделить в чистом виде зависимость экономических показателей от ввода в эксплуатацию ИС практически невозможно.

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

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

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

Эобщ = Экосв + Эпр

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

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

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

Можно выделить три вида косвенного эффекта:

совершенствование выполнений функций управления;

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

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

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

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

3.2 Расчет экономической эффективности внедрения автоматизированной системы «Кафе»


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

Подсчет стоимости программиста будет произведен из расчета 25 тысяч тенге в месяц. Тогда оплата составит:

при нормальном ходе событий разработка длится 2,5 месяца, и оплата труда программиста составит 25000 * 2,5 = 62500 тенге;

в случае возникновения неблагоприятных обстоятельств разработка длится 3,5 месяца, и оплата труда составит 25000 * 3,5 = 87500 тенге;

при благоприятном ходе событий разработка длится 2 месяца, и оплата труда программиста составит 25000 * 2 = 50000 тенге.

Заработная плата облагается социальным налогом. В соответствии с действующим законодательством. Ставка социального налога составляет 21%. Сумма социального налога состав

при нормальном ходе событий тенге;

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

при благоприятном ходе событий тенге.

Рассчитаем амортизацию оборудования, то есть персонального компьютера. Первоначальная стоимость персонального компьютера AMD Sempron 2200 МГц, 768 Мбайт ОЗУ, HDD 120 Гб, 52х CD-R\RW\DVD-R\RW ROM составляла 100000 тенге. Первоначальная стоимость видеоплаты MiroSystem DC10+ составляла 80000 тенге.

Месячную норму амортизации можно рассчитать по формуле:

,          (1)

где НА - месячная норма амортизации, %;

СЭ - срок эксплуатации оборудования, лет.

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

Тогда месячная норма амортизации равна%

Сумму амортизационных отчислений за период можно вычислить по формуле:

,    (2)

где СА - сумма амортизационных отчислений за месяц, тенге;

СТ - первоначальная стоимость оборудования, тенге;

НА - месячная норма амортизации, %

К - количество месяцев.

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

при нормальном ходе событий

тенге;

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

тенге;

при благоприятном ходе событий

тенге.

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

при нормальном ходе событий:

тенге;

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

тенге;

при благоприятном ходе событий

тенге.

Итого амортизационных отчислений:

при нормальном ходе событий 5250 + 4200 = 9450 тенге;

в случае возникновения неблагоприятных обстоятельств 7350 + 5880 = 13230 тенге;

при благоприятном ходе событий 4200 + 3360 = 7560 тенге.

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


Таблица 2. Объем денежных средств, необходимых для реализации проекта

Статья затрат

Сумма, тенге


При нормальном ходе событий

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

При благоприятном ходе событий

Оплата труда разработчика

62500

87500

50000

Социальный налог

13125

18375

10500

Амортизация оборудования

9450

13230

7560

Реклама готового продукта

10000

15000

7000

Получение лицензии, подтверждающее авторское право




право разработчика на данный продукт

5000

5000

5000

Итого:

100075

139105

80060


Необходимо установить цену программного продукта с учетом 40% годовой нормы прибыли и полугодовым сроком окупаемости программного обеспечения. При этом все вычисления будут делаться из расчета 4 клиента в год, то есть 2 клиента за полгода. Цена будет складываться из следующих составляющих:

затраты на разработку продукта;

стоимость внедрения;

заработная плата программиста;

реклама;

налог на добавленную стоимость;

норма прибыли.

Цена будет рассчитана из этих составляющих. Поскольку срок внедрения программного обеспечения составляет 1 месяц, то необходимо учесть заработную плату программиста за 2 месяца (2 клиента за полгода). Согласно действующему налоговому законодательству, ставка налога на добавленную стоимость составляет 16%. Годовая норма прибыли составляет 40%, следовательно, полугодовая норма составляет 20%. С учетом всех этих показателей и будет рассчитана стоимость программного обеспечения.

Необходимо привести методику расчета стоимости программного продукта.

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

СБ = Р + СВ + ЗП + РКЛ,     (3)

Где СБ - сумма расходов по реализации программного продукта, тенге;

Р - расходы на разработку, первичную рекламу и лицензирование, тенге;

ЗП - заработная плата программиста, тенге;

РКЛ - текущие расходы на рекламу, тенге.

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

,      (4)

где СП - сумма дохода от реализации программного продукта с учетом нормы прибыли, тенге;

СБ - сумма расходов по реализации программного продукта, тенге;

НП - норма прибыли, %.

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

,         (5)

где СНДС - сумма дохода от реализации программного продукта с учетом налога на добавленную стоимость, тенге;

СП - сумма дохода от реализации программного продукта с учетом нормы прибыли, тенге;

Ставка НДС - ставка налога на добавленную стоимость согласно действующему налоговому законодательству, %.

Стоимость программного продукта можно получить, разделив доход от его реализации на количество клиентов:

,  (6)

где С - стоимость программного продукта, тенге;

СНДС - доход от реализации программного продукта за полгода с учетом полугодовой нормы прибыли и налога на добавленную стоимость, тенге;

К - количество клиентов.

Таблица 3. Расчет стоимости программного продукта

Составляющая цены

Сумма, тенге


При нормальном ходе событий

При наличии неблагоприятных обстоятельств

При благоприятном ходе событий

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

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

100075

139105

80060

Стоимость внедрения без учета налога на добавленную стоимость (для двух клиентов)

70000

70000

70000

Заработная плата программиста (за два месяца)

50000

50000

50000

Реклама (из расчета 2000 тенге в месяц)

12000

12000

12000

Расходы по реализации программного продукта

232075

271105

212060

Сумма дохода от реализации программного продукта с учетом нормы прибыли

278490

325326

254472

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

323048

377378

295187

Стоимость программного продукта

161524

188689

147593

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

Стоимость одного внедрения

35000

35000

35000

Стоимость одного внедрения с учетом налога на добавленную стоимость

40600

40600

40600

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

120924

148089

106993


С учетом возможного финансового риска (изменение ставки налога, инфляция) и необходимости разработки системы скидок, средняя цена программного продукта будет увеличена до 200000 тенге с учетом внедрения и 150000 тенге без внедрения. Указанная цена может варьироваться от 180000 до 220000 тенге в зависимости от сложности ситуации.

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

В первый год после разработки программного продукта планируется привлечь, как минимум, четырех клиентов. Следовательно, годовой доход от реализации и внедрения программного обеспечения составит, как минимум, от 600000 до 800000 тенге. Кроме того, предполагается, по крайней мере, два клиента заключат договоры на сопровождение на срок до 2 месяцев, а остальным клиентам могут потребоваться разовые консультации. Сумма дополнительного дохода составит около 180000 тенге. Из этой суммы необходимо вычесть расходы (заработанную плату программиста, стоимость разработки продукта). Необходимо также учесть вероятность появления неблагоприятных обстоятельств, которые могут снизить доход (меньшее количество клиентов, договоров на внедрение и сопровождение, более длительный срок внедрения). Благоприятный ход событий, напротив, может способствовать увеличения дохода и росту количества клиентов. Анализ доходности представлен в таблице 4.

 
Таблица 4. Анализ годового дохода от реализации и внедрения

Сумма, тенге


При нормальном ходе событий

При наличии неблагоприятных обстоятельств

При благоприятном ходе событий

Доходы

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

800000

800000

800000

Договоры на сопровождение и разовые консультации

176000

80000

200000

Итого доходов

976000

680000

1000000

Расходы

Заработная плата программиста

100000

150000

110000

Социальный налог на заработную плату программиста (21% от суммы заработной платы)

21000

31500

15750

Реклама

24000

24000

24000

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

100075

139105

80060

Сумма налога на добавленную стоимость

156160

108800

32000

Итого расходов

401235

453405

261810

Чистый доход или убыток (разность доходов и расходов)


574765

226595

738190




Оценка риска

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

увеличение налога на добавленную стоимость;

увеличение социального налога;

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

Риск будет оцениваться для наихудшего варианта развития событий, приведенного в таблице 33 Для выяснения степени риска предполагается, что ставка налога на добавленную стоимость будет составлять 20 процентов, ставка социального налога составит 21 процент. А зарплата программиста будет увеличена с 25000 до 35000 тенге. Результаты оценки степени риска приведены в таблице 5.

 
Таблица 5. Результаты оценки степени риска

Фактор, увеличивающий степень риска

Сумма без учета фактора степени риска, тенге

Сумма с учетом фактора риска, тенге

Сумма, на которую увеличиваются расходы, тенге

Увеличение ставки налога на добавленную стоимость до 20 процентов

162667

113333

49334

Увеличение заработной платы программиста

150000

210000

60000

Увеличение ставки социального налога до 25 процентов с учетом увеличившейся заработной платы программиста

31500

52500

20000

Итого сумма увеличения расходов:

129334


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

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

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

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

 
Таблица 6. Поквартальный прогноз количества договоров

Период


Первый год

Второй год


II кв.

III кв.

IIII кв.

VIVкв.

II кв.

III кв.

IIII кв.

IIV кв.

Количество договоров на приобретение и внедрение программного обеспечения

1

1

1

1

1

1

2

2

Количество договоров на сопровождение программного обеспечения

0

1

2

1

2

3

3

4

Количество разовых консультаций

0

10

10

15

15

20

30

45


Таблица 6 составлена с учетом того, что количество привлеченных клиентов в первый год равно четырем, а во второй - шести.

На основе расчетов, приведенных в разделе «Затраты на разработку проекта» разработан план доходов и расходов, приведенный в таблице 7.

Таблица 7. Анализ доходов и расходов от продажи, внедрения и сопровождения программного обеспечения


Сумма, тенге


Первый год

Второй год

Итого


IIкв.

IIIкв.

IIIIкв.

IIVкв.

IIкв.

IIIкв.

IIIIкв.

IVкв.


Доходы

Продажа и внедрение

200000

200000

200000

200000

200000

200000

400000

400000

2000000

Сопровождение

0

30000

60000

30000

60000

90000

90000

120000

4800000

Разовые консультации

0

16000

16000

24000

24000

32000

48000

72000

232000

Итого доходов

200000

246000

276000

254000

284000

284000

322000

538000

2712000

Расходы

Заработная плата

25000

25000

25000

25000

25000

50000

50000

250000

Социальный налог

5250

5250

5250

5250

5250

5250

10500

10500

52500

Реклама

6000

6000

6000

6000

6000

6000

6000

6000

48000

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

56250

56250

0

0

0

0

0

0

112500

Сумма налога на добавленную стоимость

27586

33931

38069

35034

39172

44414

74207

81655

374068

Итого расходов

120086

126431

74319

71284

75422

80664

140707

148155

837068

Чистый доход

79914

119569

201681

182716

208578

241356

397293

443845

1874932

 


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


Заключение


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

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

проведено исследование деятельности рассматриваемого предприятия, описаны его основные бизнес-процессы, обоснована необходимость разработки АРМ;

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

спроектирована информационная база программного решения;

реализовано программное решение и приведен контрольный пример;

разработана инструкция пользователя.

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

Система обеспечивает:

графическое представление информации и построение диаграмм;

отчеты по заказам (по сотрудникам, по клиентам, по категориям, по ассортименту);

формирование отчетов по персоналу и клиентам;

формирование личной карточки для сотрудников и клиентов;

формирование прайс-листа;

формирование чека для каждой реализации;

расчет выплат сотрудникам (оклад + возможен процент от продаж).

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

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

Для реализации программного решения было предложено использовать среду программирования Delphi и базу данных Access.

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

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

 


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


1.     Аакер, Д. Стратегическое рыночное управление. - 7-е изд., пер. с англ./ под ред. С.Г. Божук/ Д. Аакер. - СПб.: Питер, 2007.

2.      Автоматизированные информационные технологии в экономике. Учебник. Под ред. Г.А. Титоренко. М.: ЮНИТИ. 2002 г.

.        Аникин, Б.А. Высший менеджмент для руководителя: уч. пособие/ Б.А. Аникин. - М.: ИНФРА-М, 2000.

.        Балдин, К.В. Информационные системы в экономике/ К.В. Балдин, В.Б. Уткин. - М.: ИТК «Дашков и Ко», 2004.

.        Бородакий, Ю.В. Информационные технологии. Методы, процессы, системы/ Ю.В. Бородакий, Ю.Г. Лободинский. - М.: Радио и связь, 2002.

.        Васильев, Г.А. Управленческое консультирование: учеб. пособие/ Г.А. Васильев, Е.М. Деева. - М.: ЮНИТИ-ДАНА, 2004.

.        Веревченко, А.П. Информационные ресурсы для принятия решений: уч. пособие/ А.П. Веревченко, В.В. Горчаков, И.В. Иванов, О.В. Голодова. - М.: Академический Проект; Екатеринбург: Деловая книга, 2002. - 560 с.

.        Годин, В.В. Информационное обеспечение управленческой деятельности: учебник/ В.В. Годин, И.К. Гордеев. - М.: Мастерство: Высшая школа, 2001.

.        Гущина, И.Э. Управленческий учет: основы теории и практики: уч. посо-бие/ И.Э. Гущина, Н.М. Балакирева. - М.: КНОРУС, 2004.

10.   Дейт К., «Введение в системы баз данных», М.:, «Hаука», 2006 г.

11.    Джеффри Д. Ульман, Дженнифер Уидом. Основы реляционных баз данных. М.: «Лори», 2007 г.

12.   Избачков Ю., Петров В. Информационные системы 2-е издание ПИТЕР, 2005 г.

Приложение

 

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

Модуль «Главное окно программы»

unit Restaurant;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, Grids, DBGrids, DBTables, Menus, StdCtrls, DBCtrls, RpCon,, RpDefine, RpRave, jpeg, ExtCtrls;

= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TImage;: TMenuItem;N6Click (Sender: TObject);N8Click (Sender: TObject);N7Click (Sender: TObject);FormCreate (Sender: TObject);N2Click (Sender: TObject);N3Click (Sender: TObject);Image1Click (Sender: TObject);N4Click (Sender: TObject);FormClose (Sender: TObject; var Action: TCloseAction);N9Click (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm1;

Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;

{$R *.dfm}

TForm1.N6Click (Sender: TObject);. Show;;

TForm1.N8Click (Sender: TObject);. Close;;

TForm1.N7Click (Sender: TObject);. Show;;

TForm1. FormCreate (Sender: TObject);:=TForm4. Create(Application); {Создание формы для заставки}. ShowModal; {Показать форму модально}. Free; {Закрыть форму с заставкой}

end;

TForm1.N2Click (Sender: TObject);. Show;;

TForm1.N3Click (Sender: TObject);. Show;;

TForm1. Image1Click (Sender: TObject);. Show;;

TForm1.N4Click (Sender: TObject);. Show;;

TForm1. FormClose (Sender: TObject; var Action: TCloseAction);

beginMessageDlg ('Вы действительно хотите выйти из программы?', mtConfirmation,

[mbYes, mbNo], 0) = mrYes then:= caFree:= caNone;;

TForm1.N9Click (Sender: TObject);. Show;;.

Модуль «О программе»

unit Unit2;

interface

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, jpeg, ExtCtrls;

= class(TForm): TButton;: TImage;: TLabel;: TBevel;: TBevel;: TBevel;: TBevel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;Button1Click (Sender: TObject);FormCreate (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm2;

{$R *.dfm}TForm2. Button1Click (Sender: TObject);;;

 

Модуль «Об авторе»

unit Unit3;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, jpeg, ExtCtrls;

= class(TForm): TImage;: TLabel;: TLabel;: TLabel;: TButton;: TLabel;Button1Click (Sender: TObject);FormCreate (Sender: TObject);

{Private declarations}

{Public declarations};: TForm3;

{$R *.dfm}

TForm3. Button1Click (Sender: TObject);;;.

Модуль «Заставка»

unit Unit4;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, jpeg;

= class(TForm): TImage;: TLabel;: TTimer;FormCreate (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm4;

{$R *.dfm}

TForm4. FormCreate (Sender: TObject);;;.

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

unit Unit5;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, DBCtrls, DB, DBTables, Grids, DBGrids, StdCtrls;

= class(TForm): TDBGrid;: TDataSource;: TTable;: TDBNavigator;: TButton;: TEdit;: TLabel;: TButton;: TRadioGroup;Button1Click (Sender: TObject);Button2Click (Sender: TObject);RadioGroup1Click (Sender: TObject);FormCreate (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm5;

{$R *.dfm}

TForm5. Button1Click (Sender: TObject);. Locate ('Familiya', edit1.text, [loCaseInsensitive, loPartialKey]);TForm5. Button2Click (Sender: TObject);. Close;;

TForm5. RadioGroup1Click (Sender: TObject);RadioGroup1. ItemIndex of

: Table1. IndexName:= '_data_rogden';

: Table1. IndexName:= 'Kod_dolgnosti';;;

Модуль «Постоянные клиенты»

unit Unit6;

interface

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

= class(TForm): TDBGrid;: TDataSource;: TTable;: TDBNavigator;: TLabel;: TEdit;: TButton;: TButton;Button1Click (Sender: TObject);FormCreate (Sender: TObject);Button2Click (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm6;

{$R *.dfm}

TForm6. Button1Click (Sender: TObject);Ysl, Field2: String;edit1. Text<>'' then edit1. Text:=Chr(39)+Edit1. Text+Chr(39);:='Procent_skidki';:=Field2+'='+Edit1.text;. Filtered:=True;. FilterOptions:=[foCaseInsensitive];. Filter:=Ysl;;TForm6. FormCreate (Sender: TObject);. Filtered:=False;;

TForm6. Button2Click (Sender: TObject);. Close;;.

Модуль «Ассортимент блюд»

unit Unit7;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, QRCtrls, QuickRpt, ExtCtrls, RpCon, RpConDS, RpDefine, RpRave,, StdCtrls, DBCtrls, DB, DBTables, Grids, DBGrids, Mask, jpeg;

= class(TForm): TDataSource;: TDBMemo;: TLabel;: TMainMenu;: TMenuItem;: TRvProject;: TRvDataSetConnection;: TLabel;: TEdit;: TButton;: TButton;: TDBGrid;: TTable;: TLabel;: TDBGrid;: TDataSource;: TTable;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TDBEdit;: TButton;: TButton;: TButton;: TButton;: TImage;: TButton;: TQuery;: TDataSource;Kod_bluda: TAutoIncField;Naimen_bluda: TStringField;Soderganie: TStringField;Kalorinost: TIntegerField;Ves_bluda: TIntegerField;Vremya_prigot: TStringField;Stoimost_rub: TIntegerField;Kod_vida: TIntegerField;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TQuery;: TDataSource;: TDataSource;: TQuery;: TQuery;: TDataSource;: TDataSource;: TDataSource;: TQuery;: TQuery;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;Button1Click (Sender: TObject);FormCreate (Sender: TObject);Button2Click (Sender: TObject);Button4Click (Sender: TObject);Button5Click (Sender: TObject);Button6Click (Sender: TObject);Button7Click (Sender: TObject);Button8Click (Sender: TObject);C1Click (Sender: TObject);N2Click (Sender: TObject);N4Click (Sender: TObject);N3Click (Sender: TObject);N5Click (Sender: TObject);N6Click (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm7;

Restaurant;

{$R *.dfm}

TForm7. Button1Click (Sender: TObject);Field1, Yslovie: String;edit1. Text<>'' then edit1. Text:=Chr(39)+Edit1. Text+Chr(39);:='Kod_vida';:=Field1+'='+Edit1.text;. Filtered:=True;. FilterOptions:=[foCaseInsensitive];. Filter:=Yslovie;;

TForm7. FormCreate (Sender: TObject);. FilterOptions:=[foCaseInsensitive];. Filtered:=False;;

TForm7. Button2Click (Sender: TObject);. Filtered:=false;;TForm7. Button4Click (Sender: TObject);Table1. State = dsBrowse THEN. Insert;;

TForm7. Button5Click (Sender: TObject);Table1. State = dsBrowse THEN. Edit;;

TForm7. Button6Click (Sender: TObject);Table1. State = dsBrowse THENMessageDlg ('Подтвердите удаление записи!', mtConfirmation, [mbYes, mbNo], 0) = mrYes THEN. Delete;;

TForm7. Button7Click (Sender: TObject);Table1. State in [dsInsert, dsEdit] THEN. Post;;

TForm7. Button8Click (Sender: TObject);. Close;; TForm7.C1Click (Sender: TObject);. Execute;;

TForm7.N2Click (Sender: TObject);. Execute;;

TForm7.N4Click (Sender: TObject);. Execute;;

TForm7.N3Click (Sender: TObject);. Execute;;

TForm7.N5Click (Sender: TObject);. Execute;;

TForm7.N6Click (Sender: TObject);. Execute;;.

Модуль «Заказы»

unit Unit8;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, RpCon,, RpDefine, RpRave, ExtCtrls;

= class(TForm): TDataSource;: TTable;: TQuery;: TDataSource;: TDBEdit;: TDBEdit;: TButton;: TButton;: TButton;: TRvProject;: TRvDataSetConnection;: TButton;: TButton;: TRvProject;: TRvDataSetConnection;: TDataSource;: TTable;: TDBGrid;: TRvProject;: TRvDataSetConnection;: TButton;: TLabel;: TDBEdit;: TDBEdit;: TLabel;: TDBGrid;: TDataSource;: TDBGrid;: TTable;: TEdit;: TLabel;: TButton;: TQuery;: TDataSource;: TDBGrid;: TDBGrid;: TBevel;Button1Click (Sender: TObject);Button2Click (Sender: TObject);Button3Click (Sender: TObject);Button4Click (Sender: TObject);Button5Click (Sender: TObject);Button6Click (Sender: TObject);Button8Click (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm8;

{$R *.dfm}

TForm8. Button1Click (Sender: TObject);Table1. State = dsBrowse THEN. Insert;;

TForm8. Button2Click (Sender: TObject);Table1. State in [dsInsert, dsEdit] THEN. Post;;

TForm8. Button3Click (Sender: TObject);. Close;.SQL. Clear;.SQL. Add ('SELECT T. Naimen_bluda, K. Kolichestvo, T. Stoimost_rub, (K. Kolichestvo * T. Stoimost_rub) As Stoimost');.SQL. Add ('FROM Menu T, Zakazu K');.SQL. Add ('WHERE T. Kod_bluda=K. Kod_bluda');. Open;;

TForm8. Button4Click (Sender: TObject);Query1. FieldByName ('Naimen_bluda').Text<>'' thenQuery1. FieldByName('Kolichestvo').Text<>'' thenQuery1. FieldByName ('Stoimost_rub').Text<>'' thenQuery1. FieldByName('Stoimost').Text<>'' thenDbEdit2. Text<>'' thenDbEdit4. Text<>'' then. Execute;('Заказ отсутствует!');DbEdit2. Text='' then ShowMessage ('Некому принять заказ');DbEdit4. Text='' then ShowMessage ('Некого обслужить');;

TForm8. Button5Click (Sender: TObject);. Close;;

TForm8. Button6Click (Sender: TObject);Table1. State = dsBrowse THEN. Delete;;

procedure TForm8. Button8Click (Sender: TObject);Table3. Locate ('Kod_klienta', edit1.text, [loCaseInsensitive, loPartialKey])=True then('Наличие скидки');. Active:=True;('Cкидки нет');

end;.

Похожие работы на - Проектирование автоматизированной системы обслуживания кафе

 

Не нашел материал для своей работы?
Поможем написать качественную работу
Без плагиата!