Автоматизированное рабочее место специалиста по работе с клиентами санатория

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

Автоматизированное рабочее место специалиста по работе с клиентами санатория

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.        Описать предметную область.

.        Проанализировать существующие программные средства.

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

.        Построить информационную модель предметной области и описать поля таблиц.

.        Выбрать и обосновать среду разработки.

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

.        Описать работу системы и верификацию программы.

.        Провести верификацию программы.

При написании дипломного проекта были использованы труды отечественных и зарубежных авторов: А.М. Вендрова, Д.В. Марка, П.В. Шумакова, К.Д. Дейта.

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

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

1. АНАЛИЗ ИНФОРМАЦИОННЫХ СИСТЕМ В ОБЛАСТИ АВТОМАТИЗАЦИИ ДЕЯТЕЛЬНОСТИ КУЛЬТУРНО-РАЗВЛЕКАТЕЛЬНЫХ ЦЕНТРОВ

.1 Описание предметной области

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

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

Предмет исследования - автоматизация данного процесса путем создания программного обеспечения (ПО) автоматизированного рабочего места (АРМ) заведующего ПЦК КПОИиП.

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

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

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

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

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

.2 Анализ существующих программных средств

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

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

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

Для автоматизации рабочего места широко используются такие программы как: Delphi, С++ (си-шарп), 1C: Бухгалтерия, АРМ оператор 2.0, 1C: Предприятие, и т. д.

Потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку», среди которых можно выделить Borland Delphi. Delphi - это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код [3, с. 110-116].

Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL LINK, поэтому доступ к СУБД Oracle, Sybase, Informix и Interbase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние sql-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера). Если же он будет использовать локальный interbase for windows (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер [7, с. 83-87].

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре «клиент-сервер». Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно) [10, с. 39-42].

Одним из главных достоинств Delphi является то, что он представляет следующие новые свойства и усовершенствования:

. Новые расширения языка. В Delphi в язык Object Pascal включены динамические массивы, методы обработки переполнения, установка значения параметров по умолчанию, и многое другое.

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

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

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

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

. Усовершенствования Activex.

. Усовершенствования VCL. Иерархия объектов Delphi была расширена, чтобы включить новый компонент для Nt Service приложений.

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

. Объектно-ориентированная модель компонент.

. Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов.

. Масштабируемые средства для построения баз данных.

Недостатки Delphi:

. Низкий порог вхождения.

. Отсутствие сертификационных центров.

. Ошибки менеджмента.

. Отсутствие поддержки крупных вендоров, в отличии от конкурентов [5 с. 299-302].

АРМ оператор 2.0, предназначен для принятия заказов и обработки с последующим оформлением отчетов. Разработчиком является Software 123. Что касается программного комплекса АРМ оператор 2.0 предназначен для автоматизации процессов приема, оформления заказов клиента, управление документацией и формирования отчетности.

С помощью программы АРМ специалист может обрабатывать тексты, посылать и принимать сообщения, хранящиеся в памяти ЭВМ, вести личные архивы документов и т.д.

АРМ оператор 2.0 обеспечивает выполнение следующих функций:

взаимодействие со связующими компонентами посредством драйверов;

визуальное отображение текущих параметров и процессов систем организации;

формирование отчетов по значениям архивных параметров систем организации, просмотр и вывод на печать отчета;

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

Одними из главных достоинств АРМ оператор 2.0 являются:

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

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

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

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

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

. Функциональная избыточность из-за простого интерфейса.

. В журнале фиксируются только изменения от предыдущего состояния [12, с. 121-127].

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

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

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

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

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

аутентификация средствами 1С: Предприятия;

аутентификация средствами Windows.

Достоинства 1С: Предприятия:

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

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

Недостатки 1С: Предприятия:

. Невозможность ведения учета в динамике.

. Невысокая скорость проведения вычислений.

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

. Необходимость наличия встроенного языка, который должен отвечать стандартам высокоуровневых языков [9, с. 43-47].# (Си-шарп) - объектно-ориентированный язык программирования для платформы .NET. Разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером Гольде под эгидой Microsoft Research. # - это полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов.

Язык С расширяется введением гибких и эффективных средств, предназначенных для построения новых типов. Программист структурирует свою задачу, определив новые типы, которые точно соответствуют понятиям предметной области задачи. Такой метод построения программы обычно называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. С такими объектами можно работать надежно и просто даже в тех случаях, когда их тип нельзя установить на стадии трансляции. Программирование с использованием таких объектов обычно называют объектно-ориентированным. Если этот метод применяется правильно, то программы становятся короче и понятнее, а сопровождение их упрощается. Microsoft.NET - концепция быстрой и качественной разработки программных систем. Концепция .NET появилась в ответ на ситуацию в мире, в котором обостряется конкуренция, катастрофически не хватает программистов, а качественных и безопасных программ требуется все больше и больше.

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

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

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

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

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

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

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

. Отсутствие необходимости в представлении низкоуровневых деталей COM.

. Упрощенная модель развертывания. В .NET нет никакой необходимости заботиться о регистрации двоичной единицы в системном реестре. Более того, в .NET позволяется делать так, чтобы многочисленные версии одной и той же сборки *.dll могли без проблем сосуществовать на одной и той же машине [4, с. 175-192].

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

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

Приложениям любого из этих типов может также понадобиться доступ к базам данных, обеспечиваться который может либо с помощью такого средства самого языка C#, как LINQ (Language Integrated Query - язык интегрированных запросов).

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

Рассмотрим ключевые функциональные возможности языка C#, которые присутствуют во всех его версиях:

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

. Управление памятью осуществляется автоматически посредством сборки мусора. По этой причине ключевое слово delete в C# не поддерживается.

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

. Предоставляется аналогичная С++ возможность перегружать операции для пользовательских типов.

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

В C# была унифицирована система типов, теперь можно рассматривать каждый тип как объект. Несмотря на то, используется класс, структура, массив или встроенный тип, можно обращаться к нему как к объекту. Объекты собраны в пространства имен (namespaces), которые позволяют программно обращаться к чему-либо [8, с. 56].

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

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

построитель таблиц;

построитель экранных форм;

построитель SQL-запросов (язык SQL в MS Access не соответствует стандарту ANSI);

построитель отчётов, выводимых на печать.

Они могут вызывать скрипты на языке VBA, поэтому MS Access позволяет разрабатывать приложения и БД практически «с нуля» или написать оболочку для внешней БД.

Microsoft Jet Database Engine <#"896538.files/image001.jpg">

Рисунок 2.1 - Схема данных

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

1. Реализация возможности просмотра информации о клиентах санатория;

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

. Осуществление поиска участника по заданным критериям;

. Вывод на печать списка клиента, сформированные чеки и т. д.

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

3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОГО РАБОЧЕГО

.1 Выбор и обоснование среды разработки

В качестве основной среды разработки использовалась среда разработки Borland Delphi 7.0. Delphi 7.0 - одна из самых мощных систем, позволяющих на самом современном уровне создавать как отдельные прикладные программы, так и разветвленные комплексы, предназначенные для работы в корпоративных сетях и в Internet. В качестве основного языка программирования в Delphi применяется Object Pascal. Это объектно-ориентированный язык программирования позволяющий организовать современный подход к построению программ и систем разного уровня сложности.

Следующий важный аспект применения Delphi заключается в широком использовании технологии быстрой разработки приложений (RAD). Это позволяет разрабатывать приложения в несколько раз быстрее более традиционных способов разработки. Например, при использовании традиционных методов программирования, создание графического интерфейса программы, включая обработку событий мыши, клавиатуры, включение в программу изображений и звука даже при использовании специальных API занимало довольно большую часть времени программиста и зачастую программный код, отвечающий за интерфейс, занимал около 85-95% от общего кода программы [12, с. 30-35].

Одним из методов решения стало появление концепции визуальных языков программирования, где разработка интерфейса приложений упрощалась за счет библиотеки стандартных элементов управления. Такая концепция была впервые реализована в языке Microsoft Visual Basic. Но компания Borland пошла гораздо дальше и расширила ее до RAD. Тем самым, внедрив возможность не только быстро строить из готовых элементов интерфейс приложения, но так же включать другие объекты, реализующие различные аспекты логики программы, например, объекты доступа к базам данных или взаимодействия с сетью [3, с. 45-49].

Система Delphi обеспечивает возможность визуального программирования на нем с помощью библиотеки визуальных компонентов VCL.

Библиотека визуальных компонентов (Visual Component Library, VCL) содержит большое количество классов, предназначенных для быстрой разработки приложений. Библиотека написана на Object Pascal и имеет непосредственную связь с интегрированной средой разработки приложений Delphi. Несмотря на название, в VCL содержатся главным образом не визуальные компоненты, однако имеются и визуальные. При этом все компоненты являются классами, но не все классы являются компонентами. Все классы VCL расположены на определенном уровне иерархии и образуют дерево (иерархию) классов [9, с. 98-102].сt Manager - это отдельное окно, где перечисляются модули и формы, составляющие проект. При каждом модуле указывается маршрут к каталогу, в котором находится исходный текст. Жирным шрифтом выделяются измененные, но еще не сохраненные части проекта. В верхней части окна имеется набор кнопок: добавить, удалить, показать исходный текст, показать форму, задать опции и синхронизировать содержимое окна с текстом файла проекта, т. е. с головной программой на языке Pascal.

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

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

Для соединения с базой данных используется технология ADO, которая позволяет соединиться с базой данных без задания псевдонимов. ADO компоненты могут связываться с провайдером напрямую или с помощью компонента ADOConection [5, с. 423-428].

С помощью Delphi 7.0 можно:

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

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

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

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

создавать приложения, которые управляют другими приложениями, в частности, такими программами, как Word и Excel, Access;

создавать кросс-платформенные приложения, которые можно эксплуатировать как в Windows, так и в Linux;

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

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

создавать отчеты, библиотеки, компоненты.

Это список, только самых основных возможностей Delphi 7.0. Большинство из них соответствует поставленной перед нами задаче о разработке мультиплатформенного приложения, работающего с большими объемами данных, и взаимодействующего с другими приложениями [9, с. 206-207].

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

Разработка пользовательского интерфейса была проведена с помощью средств программной среды Borland Delphi 7.0. Интерфейс основан на принципе иерархии форм.

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

. Главное меню, с помощью которого можно переходить на другие модальные формы (рисунок 3.1).

. Оформление нового клиента-меню, где вводятся данные о новом клиенте (рисунок 3.2, рисунок 3.3).

. Заказ - оформление чека клиента (рисунок 3.4).

. Перечень услуг в действующих ценах (рисунок 3.5).

. Расчет стоимость поездки (рисунок 3.7).

. Рабочий персонал (рисунок 3.8).

А также формирует следующие отчеты:

.        Отчет о клиентах (рисунок 3.10).

.        Отчет о чеках (рисунок 3.11).

.        Индивидуальный чек клиента (рисунок 3.6 и 3.9).

Разработка пользовательского интерфейса была проведена с помощью средств программной среды Borland Delphi 7.0. Интерфейс основан на принципе иерархии форм. При запуске приложения на экране монитора появляется главная форма под названием «Главное меню». Работа в этой форме происходит при помощи кнопок: «Регистрация клиентов», «Стоимость поездки», «Сотрудники», «Отчеты», «Выход», и т. д. (рис. 3.1).

Рисунок 3.1 - Главное меню программы

При нажатии на кнопку «Регистрация клиентов» откроется форма с данными, а именно «Меню регистрация клиента» (рисунок 3.2). По середине формы располагаются первичные данные о клиентах (код клиента, Ф.И.О., год рождения, возраст). На форме имеются кнопки для поиска записей и о заказе услуг клиентам. В верхней части меню имеется добавление и удаление полей. Для реализации этих функций необходимо нажать на соответствующую вкладку.

Рисунок 3.2 - Меню работы с клиентами

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

Рисунок 3.3 - Меню регистрации нового клиента

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

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

Рисунок 3.4 - Меню оформления чека

Рисунок 3.5 - Перечень услуг в действующих ценах

Рисунок 3.6 - Индивидуальный чек клиента

Далее рассмотрим форму под названием «Расчет стоимости поездки» которая подключается из главного меню. На форме расчета слева по центру видна исходная информация, которая находится на форме «Рабочий персонал» (рисунок 3.8). Если нажать на клавишу «Вычислить» программа произведет расчет стоимость поездки, а кнопкой «Показать чек» непосредственно переходит к оформлению чека стоимости поездки (рисунок 3.9). В этой форме применяется компонент DBNavigator в котором отражаются все операции связанные с добавлением, удалением записей таблицы, а также переключением полей.

Рисунок 3.7 - Расчет стоимости поездки

Рисунок 3.8 - Рабочий персонал

Рисунок 3.9 - Индивидуальный чек клиента

Что касается первой формы, а именно «Главное меню» происходит отображение отчетов таких как ( отчет по клиентам, отчет по сотрудникам, отчет по чекам). Данные которых отбираются, и добавляются из баз данных разработанные в среде СУБД Access и с помощью Borland Delphi 7. Сформированные отчеты печатаются на бумаге формата А3.

Рисунок 3.10 - Отчет по клиентам

Рисунок 3.11 - Отчет по чекам

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

. Реализация возможности просмотра информации об участниках санатория такой, как: Ф.И.О., год рождения, возраст.

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

. Осуществление поиска участника по заданным критериям.

. Формирование чека клиента с выбранным критерием запроса.

.Вывод на печать исходной информации в виде отчетов.

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

4. ВЕРИФИКАЦИЯ ПРОГРАММЫ ДЕЯТЕЛЬНОСТИ СПЕЦИАЛИСТА ПО РАБОТЕ С КЛИЕНТАМИ САНАТОРИЯ

.1 Описание работы системы

Верификация - это подтверждение соответствия конечного продукта предопределённым эталонным требованиям.

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

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

. Формализованный контроль и проверка работоспособности программы.

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

Мы имеем в наличии информацию о клиенте взятую из формы «Меню регистрации клиента», а именно из таблицы MS Access путем подключения к базе данных через ADOConnection. ADOTable 1, а именно таблица клиенты показывает перечень реквизитов, необходимых для осуществления добавления, удаления, редактирования записей, а так же их поиска. Что в конечном итоге приведет к формированию отчета и приобретения индивидуального чека клиента.

Запускаем на рабочем столе файл с именем Project1. Через главную форму выходим на меню регистрации клиента. Далее нажимаем на кнопку «Заказать» (рисунок 4.1).

Рисунок 4.1 - Меню регистрации клиента

На форме «Меню оформления чека» (рисунок 4.2) для чека под кодом 21 вводим следующие реквизит код клиента, методом выбора двух клавиш расположенных в Chekbox, происходит алгоритм принятия решений. Через программный код приложение и будет считать цены взятые из таблицы базы данных «Услуги», помимо услуг пользователь может оформлять скидки и прописывать причину, которая отчетливо видна в крайнем левом углу.

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

Рисунок 4.2 - Меню оформления чека

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

Рисунок 4.3 - Меню оформления чека

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

(30+90+50+100)×0,1=27

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

+90+50+100-27=243

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

Проверяем один из конечных итогов программы, а именно индивидуальный чек клиента (рисунок 4.4).

Рисунок 4.4 - Индивидуальный чек клиента, сформированный программой

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

Составим небольшую задачу. Пусть клиент захотел съездить в город за покупками, маршрут в 2 стороны обойдется в 150 километров. Стоимость бензина - 92 на сегодняшний момент составляет 8800 белорусских рублей. Смешанный расход топлива данной марки 9 литров на 100 километров. Рассчитаем стоимость поездки:

:100*9*8800=118800

Таким образом стоимость поездки составит 118800 белорусских рублей, или 118,8 тысяч белорусских рублей.

Рисунок 4.5 - Расчет стоимости поездки, сформированный программой

На клавише «Показать чек» виден сформированный программой «Чек на поездку».

Рисунок 4.6 - Чек на поездку, сформированный программой

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

Для автоматизации рабочего места широко используются такие программы как: Delphi, С++ (си-шарп), 1C: Бухгалтерия, АРМ оператор 2.0, 1C: Предприятие, и т. д.

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

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

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

Для организации хранения данных была использована СУБД MS Access, а приложения пользователя было реализовано средствами системы Borland Delphi 7. Для обеспечения комфортной работы пользователей большое внимание уделено разработке пользовательского интерфейса.

В процессе выполнения дипломного проекта:

.        Изучена предметная область санатория.

.        Проанализированы существующие программные средства.

.        Построена информационная модель предметной области и описаны поля таблиц.

.        Выбрана и обоснована среда обработки.

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

.        Проведена верификация программы.

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

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

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

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

1. Вендров А.М. Case - технологии. Современные методы и средства проектирования информационных систем. - Internet, http/www.citforum.ru/case.... -158 с., ил.

. Винокуров Р.Д., Пархомов В.А. Компьютерные технологии в кадровых службах. - И.: “ИГЭА” 2000. - 190 с., ил.

. Гофман В., Хомоненко А. Delphi быстрый старт: Пер. с англ. - М.: “Нолидж”, 2007. - 290 с., ил.

. Грабер М. Введение в SQL: Пер. с англ. - М.: “ЛОРИ”, 1996. - 341с., ил.

. Дейт К. Дж. Введение в системы баз данных: Пер. с англ. - 6-е изд. - К.: Диалектика, 1998. - 784с., ил.

. Калянов Г.Н. Case-средства. Структурный и системный анализ (автоматизация и применение). - М.: “ЛОРИ”, 1999. - 249 с., ил.

. Корняков В. Программирование документов и приложений в Delphi. -М.:“БХВ”, 2005. - 490 с., ил.

. Марка Д., МакГоуэн К. Методология структурного анализа и проектирования: Пер. с англ. - М.: 1999. - 240 с., ил.

. Хрусталева Е.Ю. Язык запросов “1С:предприятия” - М.: “1С-Паблишинг”, 2010. - 107 с., ил.

. Чистов Д.В., Харитонов С.А. Практикум по программе “1С:предприятия”: Пер. с англ. 1-е изд. - М.: “1С-Паблишинг”, 2011. - 98 с., ил.

. Шумаков П.В. Delphi 5 и разработка приложений баз данных. - М.: “Нолидж”, 2001. - 704 с., ил.

. Шураков В.В., Ясеновский С.В. Автоматизированное рабочее место - М.: “Логистика”, 2000. - 190 с., ил.

ПРИЛОЖЕНИЯ

Приложение А

IDEF0 диаграмма. Контекстная диаграмма


Приложение Б

IDEF0 диаграмма. Декомпозиция учета услуг


Приложение В

IDEF0 диаграмма. Декомпозиция оперативной продажи чека


Приложение Г

IDEF0 диаграмма. Диаграмма дерева узлов


Приложение Д

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

unit Unit1;

interface

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

Dialogs, Menus, jpeg, ExtCtrls, StdCtrls;

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N5: TMenuItem;

Timer1: TTimer;

img1: TImage;

Jnxtns1: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N8: TMenuItem;

mniN9: TMenuItem;

mniN10: TMenuItem;

mniN11: TMenuItem;

mniN12: TMenuItem;

procedure N2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N151Click(Sender: TObject);

procedure mniN9Click(Sender: TObject);

procedure mniN10Click(Sender: TObject);

procedure mniN12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form1: TForm1;

i:Boolean;Unit2, Unit4, Unit6, Unit7, Unit8, Unit10, Unit12, Unit13, Unit15,

Unit19;

{$R *.dfm}TForm1.N2Click(Sender: TObject);kkk:integer;.Visible:=False;.Visible:=True;.ADOTable1.First;.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit2.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit3.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit4.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit5.Text:=Form4.ADOTable1.FieldByName('Цена').Value;;TForm1.N5Click(Sender: TObject);.Terminate;;TForm1.Timer1Timer(Sender: TObject);Form1.AlphaBlendValue <> 255 then.AlphaBlendValue:=Form1.AlphaBlendValue+3;;TForm1.N6Click(Sender: TObject);.QuickRep1.Preview;;TForm1.N7Click(Sender: TObject);.QuickRep1.Preview;;TForm1.N3Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm1.N4Click(Sender: TObject);.QuickRep1.Preview;;TForm1.N8Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm1.N151Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm1.mniN9Click(Sender: TObject);

begin('Автор: Нагорный Станислав Сергеевич ( группа ЗИС - 24)');

end;TForm1.mniN10Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm1.mniN12Click(Sender: TObject);.Terminate;;.Unit2;

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

Dialogs, DB, Grids, DBGrids, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls,

Menus;

TForm2 = class(TForm)

ADOTable1: TADOTable;

ADOConnection1: TADOConnection;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

BitBtn4: TBitBtn;

ADOTable1DSDesigner: TWideStringField;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TWideStringField;

ADOTable1DSDesigner4: TWideStringField;

ADOTable1DSDesigner5: TWideStringField;

ADOTable1DSDesigner6: TWideStringField;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

BitBtn6: TBitBtn;

BitBtn9: TBitBtn;

Edit7: TEdit;

Button1: TButton;

btn1: TBitBtn;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure BitBtn9Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

{ Private declarations }

public

{ Public declarations }

end;

Form2: TForm2;

po:string;Unit3, Unit4, Unit1, Unit5, Unit8, Unit17, Unit13;

{$R *.dfm}TForm2.BitBtn2Click(Sender: TObject);WWW:string;MessageDlg('Вы действительно хотите удалить эту запись ???',mtWarning,[mbYes,mbNo],0)=MRyes then:=Form2.ADOTable1.FieldByName('Код клиента').Value;.ADOTable1.Delete;Form3.ADOTable1 do

begin

Form3.ADOTable1.First;

while not eof do

begin

//Form3.ADOTable1.Edit;

if Form3.ADOTable1.FieldByName('Код клиента').Value=WWW then (Form3.ADOTable1.Delete);

Form3.ADOTable1.Next;

end;

end;

end;;TForm2.BitBtn3Click(Sender: TObject);: integer;Form2.ADOTable1.RecNo=-1 then Form8.Edit1.Text:='1' else.ADOTable1.Last;:=StrToInt(Form2.ADOTable1DSDesigner.value)+1;.Edit1.Text:=IntToStr(KKK);;.Show;;TForm2.BitBtn4Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm2.BitBtn5Click(Sender: TObject);.ADOTable1.Locate('Код клиента',Edit7.Text,[loCaseInsensitive,loPartialKey]);;TForm2.N2Click(Sender: TObject);.Visible:=False;.Visible:=True;TForm2.N3Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm2.N4Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm2.BitBtn6Click(Sender: TObject);.First;;TForm2.BitBtn7Click(Sender: TObject);.Prior;;TForm2.BitBtn8Click(Sender: TObject);.Next;;TForm2.BitBtn9Click(Sender: TObject);.Last;;TForm2.Button1Click(Sender: TObject);.Terminate;;TForm2.btn1Click(Sender: TObject);.ADOTable1.Locate('Код клиента',Edit7.Text,[loCaseInsensitive,loPartialKey]);;TForm2.N6Click(Sender: TObject);.Visible:=False;.Visible:=True;TForm2.N7Click(Sender: TObject);WWW:string;MessageDlg('Вы действительно хотите удалить эту запись ???',mtWarning,[mbYes,mbNo],0)=MRyes then:=Form2.ADOTable1.FieldByName('Код клиента').Value;.ADOTable1.Delete;Form2.ADOTable1 do

begin

Form2.ADOTable1.First;

while not eof do

begin

if Form2.ADOTable1.FieldByName('Код клиента').Value=WWW then (Form13.ADOTable1.Delete);

Form2.ADOTable1.Next;

end;

end;

end;;.Unit3;

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

Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ComCtrls, Menus,

jpeg, ExtCtrls, Mask, DBCtrls;

TForm3 = class(TForm)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

CheckBox9: TCheckBox;

CheckBox10: TCheckBox;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

GroupBox5: TGroupBox;

MonthCalendar1: TMonthCalendar;

BitBtn1: TBitBtn;

GroupBox7: TGroupBox;

GroupBox8: TGroupBox;

CheckBox11: TCheckBox;

CheckBox12: TCheckBox;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

ADOTable1DSDesigner: TWideStringField;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TWideStringField;

ADOTable1DSDesigner4: TWideStringField;

ADOTable1DSDesigner5: TWideStringField;

ADOTable1DSDesigner6: TWideStringField;

ADOTable1DSDesigner7: TWideStringField;

ADOTable1DSDesigner8: TWideStringField;

ADOTable1DSDesigner9: TWideStringField;

ADOTable1DSDesigner10: TWideStringField;

ADOTable1DSDesigner11: TDateTimeField;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

BitBtn6: TBitBtn;

Button1: TButton;

Edit6: TEdit;

BitBtn7: TBitBtn;

Label3: TLabel;

edt1: TEdit;

chk1: TCheckBox;

chk2: TCheckBox;

edt2: TEdit;

procedure CheckBox1Click(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure CheckBox4Click(Sender: TObject);

procedure CheckBox5Click(Sender: TObject);

procedure CheckBox6Click(Sender: TObject);

procedure CheckBox7Click(Sender: TObject);

procedure CheckBox8Click(Sender: TObject);

procedure CheckBox9Click(Sender: TObject);

procedure CheckBox10Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure CheckBox11Click(Sender: TObject);

procedure CheckBox12Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure ADOTable1CalcFields(DataSet: TDataSet);

procedure chk1Click(Sender: TObject);

procedure chk2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form3: TForm3;

po: string;Unit4, Unit2, Unit5, Unit1, Unit8, Unit7, Unit9;

{$R *.dfm}TForm3.CheckBox1Click(Sender: TObject);(Form3.CheckBox1.Checked=False)and(Form3.CheckBox2.Checked=False)Form3.CheckBox1.Checked:=True;Form3.CheckBox1.Checked=True then.CheckBox2.Checked:=False;.ADOTable1.First;.ADOTable1.MoveBy(1);.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;;;TForm3.CheckBox2Click(Sender: TObject);.Edit1.Text:='0';(Form3.CheckBox1.Checked=False)and(Form3.CheckBox2.Checked=False)Form3.CheckBox2.Checked:=True;Form3.CheckBox2.Checked=True then.CheckBox1.Checked:=False;;;TForm3.CheckBox3Click(Sender: TObject);(Form3.CheckBox3.Checked=False)and(Form3.CheckBox4.Checked=False)Form3.CheckBox3.Checked:=True;Form3.CheckBox3.Checked=True then.CheckBox4.Checked:=False;.ADOTable1.First;.ADOTable1.MoveBy(2);.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;;;TForm3.CheckBox4Click(Sender: TObject);.Edit2.Text:='0';(Form3.CheckBox3.Checked=False)and(Form3.CheckBox4.Checked=False)Form3.CheckBox4.Checked:=True;Form3.CheckBox4.Checked=True then.CheckBox3.Checked:=False;;;TForm3.CheckBox5Click(Sender: TObject);(Form3.CheckBox5.Checked=False)and(Form3.CheckBox6.Checked=False)Form3.CheckBox5.Checked:=True;Form3.CheckBox5.Checked=True then.CheckBox6.Checked:=False;.ADOTable1.First;.ADOTable1.MoveBy(3);.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;;;TForm3.CheckBox6Click(Sender: TObject);.Edit3.Text:='0';(Form3.CheckBox5.Checked=False)and(Form3.CheckBox6.Checked=False)Form3.CheckBox6.Checked:=True;Form3.CheckBox6.Checked=True then.CheckBox5.Checked:=False;;;TForm3.CheckBox7Click(Sender: TObject);(Form3.CheckBox7.Checked=False)and(Form3.CheckBox8.Checked=False)Form3.CheckBox7.Checked:=True;Form3.CheckBox7.Checked=True then.CheckBox8.Checked:=False;.ADOTable1.First;.ADOTable1.MoveBy(4);.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;;;TForm3.CheckBox8Click(Sender: TObject);.Edit4.Text:='0';(Form3.CheckBox7.Checked=False)and(Form3.CheckBox7.Checked=False)Form3.CheckBox8.Checked:=True;Form3.CheckBox8.Checked=True then.CheckBox7.Checked:=False;;;TForm3.CheckBox9Click(Sender: TObject);(Form3.CheckBox9.Checked=False)and(Form3.CheckBox10.Checked=False)Form3.CheckBox9.Checked:=True;Form3.CheckBox9.Checked=True then.CheckBox10.Checked:=False;;;TForm3.CheckBox10Click(Sender: TObject);.Edit5.Text:='0';(Form3.CheckBox9.Checked=False)and(Form3.CheckBox10.Checked=False)Form3.CheckBox10.Checked:=True;Form3.CheckBox10.Checked=True then.CheckBox9.Checked:=False;;;TForm3.BitBtn1Click(Sender: TObject);a,b,c,d,e:String;

x,ccc:Real;:=Form4.Edit1.Text;:=Form4.Edit2.Text;:=Form4.Edit3.Text;:=Form4.Edit4.Text;:=Form4.Edit5.Text;:=StrToFloat(Edit2.Text);CheckBox11.Checked=True then.ADOTable1.Insert;.ADOTable1.FieldByName('Код чека').Value:=Edt2.Text;.ADOTable1.FieldByName('Код клиента').Value:=Edt1.Text;Form3.CheckBox1.Checked=True then Form3.ADOTable1DSDesigner3.Value:=CheckBox1.Caption;Form3.CheckBox2.Checked=True then Form3.ADOTable1DSDesigner3.Value:=CheckBox2.Caption;Form3.CheckBox3.Checked=True then Form3.ADOTable1DSDesigner4.Value:=CheckBox3.Caption;Form3.CheckBox4.Checked=True then Form3.ADOTable1DSDesigner4.Value:=CheckBox4.Caption;Form3.CheckBox5.Checked=True then Form3.ADOTable1DSDesigner5.Value:=CheckBox5.Caption;Form3.CheckBox6.Checked=True then Form3.ADOTable1DSDesigner5.Value:=CheckBox6.Caption;Form3.CheckBox7.Checked=True then Form3.ADOTable1DSDesigner6.Value:=CheckBox7.Caption;Form3.CheckBox8.Checked=True then Form3.ADOTable1DSDesigner6.Value:=CheckBox8.Caption;Form3.CheckBox9.Checked=True then Form3.ADOTable1DSDesigner7.Value:=CheckBox9.Caption;Form3.CheckBox10.Checked=True then Form3.ADOTable1DSDesigner7.Value:=CheckBox10.Caption;Form3.CheckBox11.Checked=True then Form3.ADOTable1DSDesigner8.Value:=CheckBox11.Caption;Form3.CheckBox12.Checked=True then Form3.ADOTable1DSDesigner8.Value:=CheckBox12.Caption;.ADOTable1.FieldByName('Процент скидки').Value:=Edit2.Text;.ADOTable1.FieldByName('Дата покупки').Value:=Form3.MonthCalendar1.Date;.ADOTable1.FieldByName('Цена').Value:=FloatToStr((StrToFloat(a)+StrToFloat(b)+StrToFloat(c)+StrToFloat(d)+StrToFloat(e)-(StrToFloat(a)+StrToFloat(b)+StrToFloat(c)+StrToFloat(d)+StrToFloat(e))/100*x)); //FloatToStr(StrToFloat(a)+StrToFloat(b)+StrToFloat(c)+StrToFloat(d)+StrToFloat(e)-FloatToStr(StrToFloat(a)+StrToFloat(b)+StrToFloat(c)+StrToFloat(d)+StrToFloat(e)/100*x);.ADOTable1.Post;.ADOTable1.Insert;.ADOTable1.FieldByName('Обоснование льготы').Value:=Form3.Edit1.Text;.ADOTable1.FieldByName('Процент скидки').Value:=Form3.Edit2.Text;.ADOTable1.Post;;CheckBox12.Checked=True then.ADOTable1.Insert;.ADOTable1.FieldByName('Код чека').Value:=Form3.Edt2.Text;.ADOTable1.FieldByName('Код клиента').Value:=Form3.Edt1.Text;Form3.CheckBox1.Checked=True then Form3.ADOTable1DSDesigner3.Value:=CheckBox1.Caption;Form3.CheckBox2.Checked=True then Form3.ADOTable1DSDesigner3.Value:=CheckBox2.Caption;Form3.CheckBox3.Checked=True then Form3.ADOTable1DSDesigner4.Value:=CheckBox3.Caption;Form3.CheckBox4.Checked=True then Form3.ADOTable1DSDesigner4.Value:=CheckBox4.Caption;Form3.CheckBox5.Checked=True then Form3.ADOTable1DSDesigner5.Value:=CheckBox5.Caption;Form3.CheckBox6.Checked=True then Form3.ADOTable1DSDesigner5.Value:=CheckBox6.Caption;Form3.CheckBox7.Checked=True then Form3.ADOTable1DSDesigner6.Value:=CheckBox7.Caption;Form3.CheckBox8.Checked=True then Form3.ADOTable1DSDesigner6.Value:=CheckBox8.Caption;Form3.CheckBox9.Checked=True then Form3.ADOTable1DSDesigner7.Value:=CheckBox9.Caption;Form3.CheckBox10.Checked=True then Form3.ADOTable1DSDesigner7.Value:=CheckBox10.Caption;Form3.CheckBox11.Checked=True then Form3.ADOTable1DSDesigner8.Value:=CheckBox11.Caption;Form3.CheckBox12.Checked=True then Form3.ADOTable1DSDesigner8.Value:=CheckBox12.Caption;.ADOTable1.FieldByName('Процент скидки').Value:='0';.ADOTable1.FieldByName('Дата покупки').Value:=Form3.MonthCalendar1.Date;:=StrToFloat(a)+StrToFloat(b)+StrToFloat(c)+StrToFloat(d)+StrToFloat(e);Form3.ADOTable1.FieldByName('Скидка').Value = 'Да' then.ADOTable1.FieldByName('Цена').Value:=FloatToStr(ccc*(1-strtofloat(Form3.ADOTable1.FieldByName('Процент скидки').Value))).ADOTable1.FieldByName('Цена').Value:=FloatToStr(ccc*(1-strtofloat(Form3.ADOTable1.FieldByName('Процент скидки').Value)));.ADOTable1.Post;;;TForm3.CheckBox11Click(Sender: TObject);(Form3.CheckBox11.Checked=False)and(Form3.CheckBox12.Checked=False).CheckBox11.Checked:=True;.Edit1.Enabled:=False;.Edit2.Enabled:=False;;Form3.CheckBox11.Checked=True then

begin

Form3.Edit1.Enabled:=True;

Form3.Edit1.Color:=clWindow;

Form3.Edit2.Enabled:=True;

Form3.Edit2.Color:=clWindow;

Form3.CheckBox12.Checked:=False;

end

else;TForm3.CheckBox12Click(Sender: TObject);(Form3.CheckBox11.Checked=False)and(Form3.CheckBox12.Checked=False).CheckBox12.Checked:=True;.Edit1.Enabled:=False;.Edit2.Enabled:=False;;Form3.CheckBox12.Checked=True then

begin

Form3.Edit1.Color:=cl3DLight;

Form3.Edit1.Enabled:=False;

Form3.Edit2.Color:=cl3DLight;

Form3.Edit2.Enabled:=False;

Form3.CheckBox11.Checked:=False;

end;;TForm3.BitBtn5Click(Sender: TObject);.Last;;TForm3.BitBtn2Click(Sender: TObject);.First;;TForm3.BitBtn3Click(Sender: TObject);.Prior;;TForm3.BitBtn4Click(Sender: TObject);.Next;;TForm3.N2Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm3.N3Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm3.BitBtn6Click(Sender: TObject);WWW:string;MessageDlg('Вы действительно хотите удалить эту запись ???',mtWarning,[mbYes,mbNo],0)=MRyes then:=Form3.ADOTable1.FieldByName('Код клиента').Value;.ADOTable1.Delete;Form2.ADOTable1 do

begin

Form2.ADOTable1.First;

while not eof do

begin

if Form2.ADOTable1.FieldByName('Код клиента').Value=WWW then (Form2.ADOTable1.Delete);

Form2.ADOTable1.Next;

end;

end;

end;;TForm3.Button1Click(Sender: TObject);.Terminate;;TForm3.BitBtn7Click(Sender: TObject);.ADOTable1.Filtered:=false;.ADOTable1.Filter:='[Код чека]='+Form3.Edit6.Text;.ADOTable1.Filtered:=true;. QuickRep1.Preview;.ADOTable1.Filtered:=false;.Edit6.Text:='';;TForm3.ADOTable1CalcFields(DataSet: TDataSet);.ADOTable1.FieldByName('Код чека').AsInteger:=Form3.ADOTable1.Recno;;TForm3.chk1Click(Sender: TObject);(Form3.Chk1.Checked=False).Chk1.Checked:=True;.Edt1.Enabled:=False;;Form3.Chk1.Checked=True then

begin

Form3.Edt1.Enabled:=True;

Form3.Edt1.Color:=clWindow;

end

else;TForm3.chk2Click(Sender: TObject);(Form3.Chk2.Checked=False).Chk2.Checked:=True;.Edt2.Enabled:=False;;Form3.Chk2.Checked=True then

begin

Form3.Edt2.Enabled:=True;

Form3.Edt2.Color:=clWindow;

end

else;.Unit4;

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

Dialogs, Grids, DBGrids, DB, ADODB, jpeg, ExtCtrls, StdCtrls, Buttons,

Menus;

TForm4 = class(TForm)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Edit1: TEdit;

Edit2: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

CheckBox1: TCheckBox;

BitBtn1: TBitBtn;

Edit3: TEdit;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

Bitbutton1: TButton;

procedure CheckBox1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Bitbutton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form4: TForm4;Unit2, Unit1;

{$R *.dfm}TForm4.CheckBox1Click(Sender: TObject);CheckBox1.Checked=False then

begin

Form4.Edit1.Enabled:=False;

Form4.Edit2.Enabled:=False;

Form4.Edit3.Enabled:=False;

Form4.Edit4.Enabled:=False;

Form4.Edit5.Enabled:=False;

//Если не поставлена галочка "Изменить" в "Тариф" то Edit 1-5 становятся др. цвета-неактивными

Form4.Edit1.Color:=cl3DLight;

Form4.Edit2.Color:=cl3DLight;

Form4.Edit3.Color:=cl3DLight;

Form4.Edit4.Color:=cl3DLight;

Form4.Edit5.Color:=cl3DLight;

//Присвоение Edit`у значения.ADOTable1.First;.Edit1.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit2.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit3.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit4.Text:=Form4.ADOTable1.FieldByName('Цена').Value;.ADOTable1.Next;.Edit5.Text:=Form4.ADOTable1.FieldByName('Цена').Value;

end

else begin

Form4.Edit1.Enabled:=True;

Form4.Edit2.Enabled:=True;

Form4.Edit3.Enabled:=True;

Form4.Edit4.Enabled:=True;

Form4.Edit5.Enabled:=True;

//Если поставлена галочка "Изменить" в "Тариф" то Edit 1-5 становятся др. цвета-активными

Form4.Edit1.Color:=clWindow;

Form4.Edit2.Color:=clWindow;

Form4.Edit3.Color:=clWindow;

Form4.Edit4.Color:=clWindow;

Form4.Edit5.Color:=clWindow;

end;;TForm4.BitBtn1Click(Sender: TObject);.ADOTable1.First;.ADOTable1.Edit;.ADOTable1.FieldByName('Цена').Value:=Form4.Edit1.Text;.ADOTable1.Post;.ADOTable1.Next;.ADOTable1.Edit;.ADOTable1.FieldByName('Цена').Value:=Form4.Edit2.Text;.ADOTable1.Post;.ADOTable1.Next;.ADOTable1.Edit;.ADOTable1.FieldByName('Цена').Value:=Form4.Edit3.Text;.ADOTable1.Post;.ADOTable1.Next;.ADOTable1.Edit;.ADOTable1.FieldByName('Цена').Value:=Form4.Edit4.Text;.ADOTable1.Post;.ADOTable1.Next;.ADOTable1.Edit;.ADOTable1.FieldByName('Цена').Value:=Form4.Edit5.Text;.ADOTable1.Post;;TForm4.N2Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm4.Bitbutton1Click(Sender: TObject);.Terminate;;.Unit5;

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

Dialogs, Grids, DBGrids, DB, ADODB, Menus, StdCtrls, Buttons, ExtCtrls,

DBCtrls;

TForm5 = class(TForm)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

GroupBox2: TGroupBox;

BitBtn5: TBitBtn;

Edit2: TEdit;

Bitbutton1: TButton;

dbnvgr1: TDBNavigator;

procedure N2Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure Bitbutton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form5: TForm5;

po:string;Unit1;

{$R *.dfm}TForm5.N2Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm5.BitBtn5Click(Sender: TObject);.ADOTable1.Locate('Код клиента',Edit2.Text,[loCaseInsensitive,loPartialKey]);;TForm5.Bitbutton1Click(Sender: TObject);.Terminate;;.Unit6;

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

Dialogs, DB, ADODB, QuickRpt, QRCtrls, ExtCtrls;

TForm6 = class(TForm)

QuickRep1: TQuickRep;

TitleBand1: TQRBand;

PageFooterBand1: TQRBand;

QRSysData1: TQRSysData;

QRSubDetail1: TQRSubDetail;

ADOTable1: TADOTable;

DataSource1: TDataSource;

QRShape6: TQRShape;

QRDBText7: TQRDBText;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRShape5: TQRShape;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

PageHeaderBand1: TQRBand;

QRLabel1: TQRLabel;

QRSysData2: TQRSysData;

QRShape7: TQRShape;

QRShape9: TQRShape;

QRShape10: TQRShape;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRShape8: TQRShape;

QRLabel7: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

Form6: TForm6;

{$R *.dfm}.Unit7;

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

Dialogs, QuickRpt, QRCtrls, ExtCtrls, DB, ADODB;

TForm7 = class(TForm)

QuickRep1: TQuickRep;

TitleBand1: TQRBand;

PageFooterBand1: TQRBand;

QRSysData1: TQRSysData;

QRSubDetail1: TQRSubDetail;

DataSource1: TDataSource;

ADOTable1: TADOTable;

QRDBText2: TQRDBText;

QRShape1: TQRShape;

PageHeaderBand1: TQRBand;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRShape13: TQRShape;

QRShape14: TQRShape;

QRShape15: TQRShape;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

QRShape16: TQRShape;

QRShape17: TQRShape;

QRShape18: TQRShape;

QRShape19: TQRShape;

QRLabel17: TQRLabel;

QRLabel18: TQRLabel;

QRLabel19: TQRLabel;

QRLabel20: TQRLabel;

QRShape20: TQRShape;

QRShape21: TQRShape;

QRLabel21: TQRLabel;

QRLabel22: TQRLabel;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape22: TQRShape;

QRShape23: TQRShape;

QRShape25: TQRShape;

QRShape26: TQRShape;

QRShape27: TQRShape;

QRShape28: TQRShape;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

QRDBText13: TQRDBText;

QRDBText14: TQRDBText;

QRDBText15: TQRDBText;

QRDBText16: TQRDBText;

QRDBText17: TQRDBText;

QRDBText18: TQRDBText;

QRDBText19: TQRDBText;

private

{ Private declarations }

public

{ Public declarations }

end;

Form7: TForm7;

{$R *.dfm}.Unit8;

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

Dialogs, DB, Grids, DBGrids, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls,

Menus;

TForm8 = class(TForm)

Label1: TLabel;

Label10: TLabel;

Label9: TLabel;

Label8: TLabel;

Label7: TLabel;

Label6: TLabel;

BitBtn1: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Bitbutton1: TButton;

procedure BitBtn1Click(Sender: TObject);

procedure Bitbutton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form8: TForm8;Unit2, Unit14, Unit13;

{$R *.dfm}TForm8.BitBtn1Click(Sender: TObject);ppp:integer;.ADOTable1.Last; //перемещ. курсор на последнюю позицию:=Form2.ADOTable1.RecNo+1;.ADOTable1.Insert;PPP=0 then ppp:=1;.ADOTable1.Insert;.ADOTable1.FieldByName('Код клиента').Value:=Edit1.Text;.ADOTable1.FieldByName('Фамилия').Value:=Edit2.Text;.ADOTable1.FieldByName('Имя').Value:=Edit3.Text;.ADOTable1.FieldByName('Отчество').Value:=Edit4.Text;.ADOTable1.FieldByName('Год рождения').Value:=Edit5.Text;.ADOTable1.FieldByName('Возраст').Value:=IntToStr(2014-StrToInt(Form8.Edit5.Text));.ADOTable1.Post;.Close;.Edit2.Text:='';.Edit3.Text:='';.Edit4.Text:='';.Edit5.Text:='';.Visible:=False;.Visible:=True;;TForm8.Bitbutton1Click(Sender: TObject);.Visible:=False;.Visible:=True;;.Unit9;

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

Dialogs, DB, ADODB, QRCtrls, QuickRpt, ExtCtrls;

TForm9 = class(TForm)

ADOTable1: TADOTable;

DataSource1: TDataSource;

QuickRep1: TQuickRep;

QRSubDetail1: TQRSubDetail;

QRDBText2: TQRDBText;

QRDBText11: TQRDBText;

QRDBText13: TQRDBText;

QRDBText14: TQRDBText;

QRDBText15: TQRDBText;

QRDBText16: TQRDBText;

QRDBText17: TQRDBText;

QRDBText18: TQRDBText;

QRDBText19: TQRDBText;

PageHeaderBand1: TQRBand;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRLabel23: TQRLabel;

QRSysData2: TQRSysData;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel: TQRLabel;

QRLabel151: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

Form9: TForm9;

{$R *.dfm}.Unit10;

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

Dialogs, DB, ADODB, Menus, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons;

TForm10 = class(TForm)

Mainmenu1: TMainMenu;

DataSource1: TDataSource;

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

dbgrd1: TDBGrid;

btn1: TButton;

btn2: TButton;

btn4: TButton;

btn5: TButton;

btn3v: TButton;

btn: TButton;

ADOTable1DSDesigner: TWideStringField;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TWideStringField;

ADOTable1DSDesigner4: TWideStringField;

lbl1: TLabel;

N1: TMenuItem;

N2: TMenuItem;

Bitbutton1: TButton;

procedure btn2Click(Sender: TObject);

procedure btn3vClick(Sender: TObject);

procedure btn4Click(Sender: TObject);

procedure btn5Click(Sender: TObject);

procedure btnClick(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Bitbutton1Click(Sender: TObject);

{ Private declarations }

public

{ Public declarations }

end;

Form10: TForm10;

po:string;Unit11, Unit2, Unit1;

{$R *.dfm}TForm10.btn2Click(Sender: TObject);.Prior;;TForm10.btn3vClick(Sender: TObject);.Next;;TForm10.btn4Click(Sender: TObject);.First;;TForm10.btn5Click(Sender: TObject);.Last;;TForm10.btnClick(Sender: TObject);: integer;Form10.ADOTable1.RecNo=-1 then Form11.edt1.Text:='1' else.ADOTable1.Last;:=StrToInt(Form10.ADOTable1DSDesigner.value)+1;.edt1.Text:=IntToStr(KKK);;.Show;;TForm10.btn1Click(Sender: TObject);.Terminate;;TForm10.N2Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm10.Bitbutton1Click(Sender: TObject);WWW:string;

if MessageDlg('Вы действительно хотите удалить эту запись ???',mtWarning,[mbYes,mbNo],0)=MRyes then:=Form10.ADOTable1.FieldByName('Код клиента').Value;.ADOTable1.Delete;Form10.ADOTable1 do

begin

Form10.ADOTable1.First;

while not eof do

begin

if Form10.ADOTable1.FieldByName('Код клиента').Value=WWW then (Form10.ADOTable1.Delete);

Form10.ADOTable1.Next;

end;

end;

end;;.Unit11;

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

Dialogs, StdCtrls, Buttons, Menus;

TForm11 = class(TForm)

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

lbl5: TLabel;

edt1: TEdit;

edt2: TEdit;

edt3: TEdit;

edt4: TEdit;

btn1: TBitBtn;

Mainmenu1: TMainMenu;

mniN1: TMenuItem;

Bitbutton1: TButton;

procedure btn1Click(Sender: TObject);

procedure mniN1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form11: TForm11;Unit10, Unit3;

{$R *.dfm}TForm11.btn1Click(Sender: TObject);ppp:integer;.ADOTable1.Last; //перемещ. курсор на последнюю позицию:=Form10.ADOTable1.RecNo+1;.ADOTable1.Insert;PPP=0 then ppp:=1;.ADOTable1.Insert;.ADOTable1.FieldByName('Код сотрудника').Value:=edt1.Text;.ADOTable1.FieldByName('Фамилия').Value:=edt2.Text;.ADOTable1.FieldByName('Должность').Value:=edt3.Text;.ADOTable1.FieldByName('Зарплата тыс р').Value:=edt4.Text;.ADOTable1.Post;.Close;.edt2.Text:='';.edt3.Text:='';.edt4.Text:='';;TForm11.mniN1Click(Sender: TObject);.Visible:=False;.Visible:=True;;.Unit12;

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

Dialogs, QRCtrls, QuickRpt, ExtCtrls, DB, ADODB;

TForm12 = class(TForm)

ADOTable1: TADOTable;

DataSource1: TDataSource;

QuickRep1: TQuickRep;

PageFooterBand1: TQRBand;

QRSysData1: TQRSysData;

QRSubDetail1: TQRSubDetail;

QRShape6: TQRShape;

QRDBText7: TQRDBText;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

PageHeaderBand1: TQRBand;

QRLabel1: TQRLabel;

QRSysData2: TQRSysData;

qrbndTitleBand1: TQRBand;

qrshp1: TQRShape;

qrshp2: TQRShape;

qrshp3: TQRShape;

qrlbl1: TQRLabel;

qrlbl2: TQRLabel;

qrlbl5: TQRLabel;

qrshp5: TQRShape;

qrlbl6: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

Form12: TForm12;

{$R *.dfm}.Unit13;

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

Dialogs, DB, ADODB, Grids, DBGrids, Menus, StdCtrls, Buttons, ExtCtrls,

DBCtrls;

TForm13 = class(TForm)

Mainmenu: TMainMenu;

dbgrd1: TDBGrid;

DataSource1: TDataSource;

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

N1: TMenuItem;

N3: TMenuItem;

mniN5: TMenuItem;

mniN6: TMenuItem;

mniN7: TMenuItem;

btn2: TButton;

dbnvgr1: TDBNavigator;

procedure btn1Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure mniN6Click(Sender: TObject);

procedure mniN7Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form13: TForm13;Unit14, Unit16, Unit12, Unit11, Unit1, Unit2;

{$R *.dfm}TForm13.btn1Click(Sender: TObject);.Terminate;;TForm13.btn2Click(Sender: TObject);.Last;;TForm13.N3Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm13.mniN6Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm13.mniN7Click(Sender: TObject);.Visible:=False;.Visible:=True;;.Unit14;

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

Dialogs, DB, ADODB, QuickRpt, QRCtrls, ExtCtrls;

TForm14 = class(TForm)

qckrp1: TQuickRep;

qrsbdtl1: TQRSubDetail;

qrdbtxt1: TQRDBText;

qrdbtxt2: TQRDBText;

qrdbtxt3: TQRDBText;

qrdbtxt4: TQRDBText;

qrdbtxt5: TQRDBText;

qrdbtxt8: TQRDBText;

QRLabel152: TQRLabel;

QRLabel153: TQRLabel;

QRLabel154: TQRLabel;

QRLabel155: TQRLabel;

QRLabel156: TQRLabel;

QRLabel157: TQRLabel;

QRLabel1511: TQRLabel;

qrsysdt1: TQRSysData;

QRLabel1512: TQRLabel;

QRLabel1513: TQRLabel;

QRLabel: TQRLabel;

QRLabel15: TQRLabel;

qrbndPageHeaderBand1: TQRBand;

QRLabel1514: TQRLabel;

tbl1: TADOTable;

ds1: TDataSource;

private

{ Private declarations }

public

{ Public declarations }

end;

Form14: TForm14;

{$R *.dfm}.Unit19;

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

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

TForm19 = class(TForm)

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel; // поле вывода результата расчета

edt1: TEdit; // расстояние

edt2: TEdit; // цена литра бензина

edt3: TEdit; // потребление бензина на 100 км

chk1: TCheckBox; // True - поездка туда и обратно

Bitbutton1: TButton;

lbl5: TLabel;

lbl6: TLabel;

Bitbutton2: TButton;

Bitbutton3: TButton;

lbl7: TLabel;

dbgrd1: TDBGrid;

ds1: TDataSource;

Mainmenu2: TMainMenu;

con1: TADOConnection;

tbl1: TADOTable;

dbnvgr1: TDBNavigator;

edt4: TEdit;

wdstrngfldtbl1DSDesigner: TWideStringField;

wdstrngfldtbl1DSDesigner2: TWideStringField;

wdstrngfldtbl1DSDesigner1: TWideStringField;

wdstrngfldtbl1DSDesigner3: TWideStringField;

wdstrngfldtbl1DSDesigner4: TWideStringField;

wdstrngfldtbl1DSDesigner5: TWideStringField;

wdstrngfldtbl1DSDesigner6: TWideStringField;

mniN1: TMenuItem;

mniN2: TMenuItem;

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

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

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

procedure Bitbutton1Click(Sender: TObject);

procedure mniN2Click(Sender: TObject);

procedure Bitbutton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Form19: TForm19;

implementationUnit1, Unit14;

// проверяет, является ли символ допустимым

// во время ввода дробного числаIsFloat(ch : char; st: string) : Boolean;

if (ch >= '0') and (ch <= '9') // цифры

or (ch = #13) // клавиша <Enter>

or (ch = #8) // клавиша <Back Space>

then

begin

IsFloat := True; // символ верный

Exit; // выход из функции

end;

case ch of

'-': if Length(st) = 0 then IsFloat := True;

',': if ( Pos(',',st) = 0)

and (st[Length(st)] >= '0')

and (st[Length(st)] <= '9')

then // разделитель можно ввести только после цифры

// и если он еще не введен

IsFloat := True;

else // остальные символы запрещены

IsFloat := False;

end;;

{$R *.dfm}

// нажатие клавиши в поле Расстояние

procedure TForm19.edt1KeyPress(Sender: TObject; var Key: Char);

if Key = Char(VK_RETURN)

then Edt2.SetFocus // переместить курсор в поле Цена

else If not IsFloat(Key,Edt2.Text) then Key := Chr(0);

end;

// нажатие клавиши в поле Цена

procedure TForm19.edt2KeyPress(Sender: TObject; var Key: Char);Key = Char(VK_RETURN)

then Edt3.SetFocus // переместить курсор в поле Потребление

else If not IsFloat(Key,Edt2.Text) then Key := Chr(0);

end;

// нажатие клавиши в поле Потребление

procedure TForm19.edt3KeyPress(Sender: TObject; var Key: Char);Key = Char(VK_RETURN)

then BitButton1.SetFocus // // сделать активной кнопку Вычислить

else If not IsFloat(Key,Edt2.Text) then Key := Chr(0);;

// щелчок на кнопке ВычислитьTForm19.Bitbutton1Click(Sender: TObject);

rast : real; // расстояние

cena : real; // цена

potr : real; // потребление на 100 км

summ : real; // сумма

mes: string;

rast := StrToFloat(Edt1.Text);

cena := StrToFloat(Edt2.Text);

potr := StrToFloat(Edt3.Text);

summ := rast / 100 * potr * cena;

summ := summ * 2;

mes := 'Поездка на дачу';

if Chk1.Checked then

mes := mes + 'обойдется в ' + FloatToStrF(summ,ffGeneral,4,2)

+ ' руб.';

Lbl4.Caption := mes;;TForm19.mniN2Click(Sender: TObject);.Visible:=False;.Visible:=True;;TForm19.Bitbutton3Click(Sender: TObject);.tbl1.Filtered:=false;.tbl1.Filter:='[Код чека]='+Form19.Edt4.Text;.tbl1.Filtered:=true;.qckrp1.Preview;.tbl1.Filtered:=false;.Edt4.Text:='';

end;.

Похожие работы на - Автоматизированное рабочее место специалиста по работе с клиентами санатория

 

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