Автоматизация работы аквапарка
ВВЕДЕНИЕ
Данная курсовая работа посвящена автоматизации работы аквапарка. В нем
предоставляются разнообразные услуги для отдыха и развлечений с семьей и
друзьями. И для того чтобы их отдых был без всяких проблем необходимо точно и
оперативно автоматизировать работу. Автоматизировать весь аквапарк полностью мы
не будем, мы возьмем лишь часть его, а точнее произойдет автоматизация работы с
клиентами.
Создание базы данных и программы для работы с клиентами более актуальна и
необходима, чем другие из-за того, что ежедневно через аквапарк проходят сотни
людей и если оставить регистрацию ручной, то в конечном итоге накопится очень
много записей, в которых будет очень трудно ориентироваться сотрудникам
аквапарка, что приведет к снижению уровня обслуживания и производительности.
Представьте себе очереди в аквапарке только из-за того, что сотрудник не
может сразу ответить на какое время он может зарегистрировать клиента, ему для
этого необходимо просмотреть кучу бумаг, найти тот или иной аттракцион,
посмотреть его график работы и количество свободных мест. При
автоматизированной работе человек просто вносит данные, а компьютер производит
их быструю обработку и выдает результат. Например, вы вводите фамилию клиента и
компьютер выдает вам всех, кто записан на посещение в тот или иной день, и вы
можете быстро внести изменения или дополнить новой записью эти данные.
Ещё одно преимущество автоматизированной работы в том, что для неё
необходим только компьютер и сотрудник, а для ручной необходимы десятки
журналов и как минимум несколько человек для того, чтобы успевать обрабатывать
данные.
Основная структура этой базы состоит в том, что приходит клиент и
сотрудник по работе с клиентами, занимающийся регистрацией, регистрирует его,
после чего выдает билет на необходимое ему время и дату, по этому билету
происходит оплата. Также сотрудник предоставляет каждому клиенту прейскурант с
перечнем аттракционов и цен на них.
Компьютерное оснащение данного предприятия можно ограничить 4-6
персональными компьютерами, находящимися в распоряжении менеджера и директора
компании, операторов и бухгалтера. Таким образом, автоматизируется наибольшая
часть работы по обработке документации.
1.
АНАЛИЗ
ИНФОРМАЦИОННЫХ СИСТЕМ В ОБЛАСТИ АВТОМАТИЗАЦИИ ДЕЯТЕЛЬНОСТИ
КУЛЬТУРНО-РАЗВЛЕКАТЕЛЬНЫХ ЦЕНТРОВ
1.1 Описание предметной области
Предметной областью моей работы является работа аквапарка. Аквапарк
представляет собой организацию, предоставляющую различные услуги в области
развлечения и отдыха. Приходя в такой аквапарк клиент должен получить полный
сервис обслуживания для того чтобы он ещё не раз сюда вернулся.
Клиент, приходя в аквапарк, на первом этапе проходит регистрацию. Для
того чтобы её пройти необходимо зарегистрироваться у специализированного
человека, отвечающего за работу с клиентами. Специалист по работе с клиентами
при оформлении клиента должен внести в базу данных фамилию, имя, отчество, год
рождения, заполнив эти данные, клиенту в базе присваивается код, который в
дальнейшем будет использоваться для оформления заказа. После того как клиент был
оформлен ему предоставляется прейскурант с полным перечислением всех услуг
аквапарка.
В прейскуранте должны быть указаны цены. Когда клиент выбрал необходимые
развлечения, выполняется регистрация заказа. Для того чтобы зарегистрировать
заказ оператору необходимо внести дату и время заказа, код клиента и код
выбранной услуги. После регистрации услуга выполняется.
После того как услуга была выполнена, заполняется билет и выдается
клиенту. По данному билету он обязан оплатить услугу. Именно эту область работы
аквапарка необходимо автоматизировать и упростить.
Необходимо создать программу, которая будет упрощать работу специалиста
по работе с клиентами. Эта программа также сможет упростить работу и
бухгалтерам с помощью выходной документации (отчетов), они смогут гораздо
быстрее подсчитать необходимые данные.
1.2 Анализ существующих программных средств
Концепция Delphi 1 была реализована в конце
1994 года, когда вышла первая версия среды разработки. В основу этого
программного продукта легли концепции объектно-ориентированного
программирования (ООП) на базе языка Object Pascal и визуального подхода
к построению приложений.
После
выхода Delphi 1 все компьютерные издания писали об этой среде, как об
«убийце Visual Basic». Появление Delphi 2 (32-разрядной) ознаменовало
новую эпоху, - появился доступ к возможностям программных интерфейсов Windows
NT и Windows 95. Delphi 2 стала средством разработки
полноценных приложений клиент/сервер. Вскоре Delphi 3 предоставила
разработчикам средства создания распределенных многоуровневых приложений и
полноценный инструментарий проектирования приложений для Internet и Intranet.
Появилась полноценная поддержка com - модели объектов, ставшей
краеугольным камнем современного программирования. Четвертая версия Delphi
позволяет полностью интегрировать ваши разработки с объектами com.
Поддержка архитектуры corba (common object request broker
architecture) открывает перед приложениями, созданными в delphi для
платформы wintel (windows + intel), мир других
операционных систем (unix, os/2, wms
<#"871240.files/image001.jpg">
Рисунок 1.1 - Отношения между CLR, CTS, CLS и библиотеками базовых классов
C#
(Си-шарп) - объектно-ориентированный язык программирования для платформы .NET.
Разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером
Гольде под эгидой Microsoft Research. Основным постулатом С#
является высказывание: "всякая сущность есть объект". Язык основан на
строгой компонентной архитектуре и реализует передовые механизмы обеспечения
безопасности кода. C# был создан специально для технологии ASP.NET.
В то же время на C# полностью написана и сама ASP.NET.
C#
- это полнофункциональный объектно-ориентированный язык, который поддерживает
все три «столпа» объектно-ориентированного программирования: инкапсуляцию,
наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен
и устойчив благодаря использованию «сборки мусора», обработки исключений,
безопасности типов.
Язык C# разрабатывался "с нуля" и вобрал в себя много
полезных свойств таких языков, как C++, Java, Visual Basic, а также Pascal,
Delphi и др. При
этом необходимость обратной совместимости с предыдущими версиями отсутствовала,
что позволило языку C# избежать многих отрицательных сторон своих
предшественников.
Разрабатывать приложения с помощью языка C# легче, чем с помощью C++,
потому что синтаксис этого языка является более простым. Однако при этом С# все
равно остается мощным языком, и существует очень мало вещей, которые может
потребоваться делать на С++ из-за того, что их нельзя сделать на C#.
Несмотря на это, те функциональные возможности языка C#, которые
предлагаются параллельно более усовершенствованным функциональным возможностям
языка С++, вроде прямого получения доступа к системной памяти и
манипулирования ею, могут реализовываться только применением кода с пометкой unsafe.
Этот усовершенствованный прием программирования является потенциально опасным,
поскольку существует вероятность перезаписывания критических для системы блоков
памяти.
В .NET не существует никаких ограничений касательно того,
приложения какого типа можно создавать. Перечислим наиболее распространенные из
них.
- Приложения Windows. К приложениям этого типа относятся
приложения, которые имеют знакомый пользователям Windows внешний вид и
поведение, как, например, приложение Microsoft Office.
Достигается такой внешний вид и поведение применением модуля .NET Framework
под названием Windows Forms, по сути, представляющего собой
библиотеку элементов управления (вроде кнопок, панелей инструментов, меню и
т.п.), с помощью которых можно создавать пользовательский интерфейс Windows.
- Web-приложения. К приложениям этого типа относятся Web-страницы, вроде тех, что могут
просматриваться посредством любого Web-браузера. В состав .NET Framework входит
мощная система для генерации Web-содержимого динамическим образом,
обеспечивающая персонализацию, безопасность и многое другое. Называется она ASP.NET
(Active Server Pages .NET), и благодаря ей, язык C# можно использовать
для создания приложений ASP.NET с применением Web-форм.
- Web-службы.
Этот тип является новым и интересным способом для создания разнообразных
распределенных приложений. С помощью Web-служб через интернет можно
обмениваться практически любыми данными, используя тот же самый простой
синтаксис, независимо от того, какой язык применялся для создания Web-службы,
и того, на какой системе она расположена.
Приложениям любого из этих типов может также понадобиться доступ к базам
данных, обеспечиваться который может либо с помощью такого средства самого
языка C#, как LINQ (Language Integrated Query - язык интегрированных запросов). Помимо
этого еще могут быть задействованы и многие другие ресурсы, а именно -
инструменты для создания сетевых компонентов, вывода графических объектов,
выполнения сложных математических операций и т.д.
Рассмотрим ключевые функциональные возможности языка C#, которые присутствуют во всех его
версиях.
– Не требуется использование указателей. В программах C# обычно не возникает необходимости в
манипулировании указателями напрямую, хотя это и возможно.
– Управление памятью осуществляется автоматически посредством
сборки мусора. По этой причине ключевое слово delete в C# не поддерживается.
– Предлагаются формальные синтаксические конструкции для классов,
интерфейсов, структур, перечислений и делегатов.
– Предоставляется аналогичная С++ возможность перегружать операции
для пользовательских типов
– Предлагается поддержка для программирования с использованием
атрибутов. Такой подход в сфере разработки позволяет снабжать типы и их членов
аннотациями и тем самым еще больше уточнять их поведение.
В C# была унифицирована система типов, теперь можно рассматривать
каждый тип как объект. Несмотря на то, используется класс, структура, массив
или встроенный тип, можно обращаться к нему как к объекту. Объекты собраны в
пространства имен (namespaces), которые позволяют программно обращаться
к чему-либо. Это значит, что вместо списка включаемых файлов заголовков в своей
программе нужно написать какие пространства имен для доступа к объектам и
классам внутри них планируется использовать. В C# выражение using
позволяет не писать каждый раз название пространства имен, когда используется
класс из него. Например, пространство имен System содержит несколько
классов, в том числе и Console. Можно писать либо название пространства
имен перед каждым обращением к классу, либо использовать using.
Microsoft Office Access или просто Microsoft Access - реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные
запросы, связь с внешними таблицами и базами данных. Благодаря встроенному
языку VBA, в самом Access можно писать приложения, работающие с
базами данных.
Основные компоненты MS Access:
· построитель таблиц;
· построитель экранных форм;
· построитель SQL-запросов (язык
SQL в MS Access не соответствует стандарту ANSI);
· построитель отчётов, выводимых на
печать.
Они могут вызывать скрипты на языке VBA,
поэтому MS Access позволяет разрабатывать приложения и БД практически «с
нуля» или написать оболочку для внешней БД.
Microsoft Jet Database Engine
<#"871240.files/image002.jpg">
Рисунок 2.1 - «Схема данных»
3.
ПРОГРАММНАЯ
РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОГО РАБОЧЕГО МЕСТА
3.1 Выбор и обоснование среды разработки
В качестве среды разработки требуемого ПО было решено остановиться на
системе программирования Delphi 7, располагающей широкими возможностями
по созданию приложений, взаимодействующих с базами данных.
Delphi занимает одно из ведущих мест среди большого разнообразия продуктов для
разработки приложений. С помощью Delphi написано огромное количество
приложений. Для Delphi
постоянно разрабатываются дополнительные компоненты, некоторые из них
использовались и в данном проекте.
Delphi, как никакая другая система программирования, удовлетворяет самые
различные требования. Приложения с помощью Delphi разрабатываются
быстро, причем взаимодействие разработчика с интерактивной средой Delphi
не вызывает внутреннего отторжения, а наоборот, оставляет ощущение комфорта. Delphi-приложения
эффективны. Эти приложения надежны и при эксплуатации обладают предсказуемым
поведением.- продолжение линии компиляторов языка Pascal корпорации Borland.
Pascal как язык очень прост, а строгий контроль типов данных
способствует раннему обнаружению ошибок и позволяет быстро создавать надежные и
эффективные программы.
Богатство палитры объектов для построения пользовательского интерфейса -
один из ключевых факторов при выборе инструмента визуального программирования.
При этом для пользователя имеет значение как число элементов, включенных
непосредственно в среду, так и доступность элементов соответствующего формата
на рынке.
Особенностью Delphi является возможность не только использовать
визуальные компоненты для строительства приложений, но и создание новых
компонент. Такая возможность позволяет разработчикам не переходить в другую
среду разработки, а наоборот, встраивать новые инструменты в существующую
среду. Кроме того, можно улучшить или полностью заменить существующие по
умолчанию в Delphi компоненты.
Классы объектов построены в виде иерархии, состоящей из абстрактных,
промежуточных, и готовых компонент. Разработчик может пользоваться готовыми
компонентами, создавать собственные на основе абстрактных или промежуточных, а
также создавать собственные объекты.
Гибкость Delphi при работе с базами данных основана на низкоуровневом
ядре - процессоре баз данных Borland Database Engine (BDE).
BDE позволяет осуществлять доступ к данным как с использованием
традиционного record-ориентированного (навигационного) подхода, так и с
использованием set-ориентированного подхода, используемого в SQL-серверах
баз данных.
Существуют специальные наборы компонент, отвечающих за доступ к данным, и
компонент, отображающих данные. Компоненты доступа к данным позволяют
осуществлять соединения с БД, производить выборку, копирование данных, и т.п.
Компоненты визуализации данных позволяют отображать данные в виде таблиц,
полей, списков. Отображаемые данные могут быть текстового, графического или
произвольного формата.
Среда программирования представляет собой несколько отдельных окон: меню
и инструментальные панели, Object Inspector (в котором можно видеть
свойства объекта и связанные с ним события), окна визуального построителя
интерфейсов (Visual User Interface Builder), Object Browser
(позволяющее изучать иерархию классов и просматривать списки их полей, методов
и свойств), окна управления проектом (Project Manager) и редактора.
Процесс построения приложения достаточно прост. Нужно выбрать форму (в
понятие формы входят обычные, диалоговые, родительские и дочерние окна MDI),
задать ее свойства и включить в нее необходимые компоненты (видимые и, если
понадобится, неотображаемые): меню, инструментальные панели, строку состояния и
т. п., задать их свойства и далее написать (с помощью редактора исходного кода)
обработчики событий.
Projeсt Manager - это отдельное окно, где перечисляются модули и формы,
составляющие проект. При каждом модуле указывается маршрут к каталогу, в
котором находится исходный текст. Жирным шрифтом выделяются измененные, но еще
не сохраненные части проекта. В верхней части окна имеется набор кнопок:
добавить, удалить, показать исходный текст, показать форму, задать опции и
синхронизировать содержимое окна с текстом файла проекта, т. е. с головной
программой на языке Pascal.
Опции, включая режимы компиляции, задаются для всего проекта в целом. В
этом отношении традиционные make-файлы, используемые в компиляторах
языка C, значительно более гибки.
Для соединения с базой данных используется технология ADO, которая позволяет соединиться с
базой данных без задания псевдонимов. ADO компоненты могут связываться с провайдером напрямую
или с помощью компонента ADOConection.
3.2 Создание меню, реализующего основные функции информационной
системы
delphi программный язык информационный модель
Проект содержит следующие формы:
1. Главное меню, с помощью которого можно переходить на другие
модальные формы (рисунок 3.1).
2. Оформление нового клиента-меню, где вводятся данные о новом
клиенте (рисунок 3.2, рисунок 3.3).
. Предоставление информации об аттракционах (рисунок 3.4).
. Заказ - оформление билета клиента (рисунок 3.5).
А также формирует следующие отчеты:
1. Отчет о клиентах (рисунок 3.6).
2. Отчет о билетах (рисунок 3.7).
. Индивидуальный билет клиента (рисунок 3.8).
Рисунок 3.2 - Меню работы с клиентами
Рисунок 3.3 - Меню регистрации нового клиента
Рисунок 3.4 - Оформление билета клиента
Рисунок 3.5 - Информация о тарифах на аттракционы
Рисунок 3.6 - Отчет по клиентам
Рисунок 3.7 - Отчет по билетам
Рисунок 3.8 - Индивидуальный билет клиента
3.3 Описание работы системы и верификация
программы
Верификация - это подтверждение соответствия конечного
продукта предопределённым эталонным требованиям.
Чтобы убедиться в правильности работы программы и достоверных полученных
данных разработаем самостоятельно индивидуальный билет клиента и тем самым
убедимся в правильности расчетов программы.
Мы имеем в наличие информацию о клиенте, в том числе данные о скидке,
которая предоставляется клиента аквапарком, а также о желаемых услугах клиента,
а именно аттракционах.
Итак, приведем стоимость аттракционов (Рисунок 3.9):
Рисунок 3.9 - Стоимость аттракционов
Пусть клиент хотел бы получить все услуги аквапарка, кроме горки
«Скоростной спуск», а также ему предоставлялась скидка(льгота) 30%. Рассчитаем
стоимость предоставляемых ему услуг:
(100+200+400+600)×0,3=390
По результатам расчетов мы видим, что клиент должен уплатить сумму в 390
единиц.
Сверим их с результатами расчета программы (Рисунок 3.10):
Рисунок 3.10 - Индивидуальный билет клиента, сформированный программой
При верификации полученных результатов видно, что билет, разработанный с
помощью программы выглядит гораздо красивее из-за того что она имеет постоянный
шаблон и результаты в нее вносятся автоматически, нежели это все формировалось
бы вручную. Все полученные данные совпадают и, следовательно, программа
работает корректно.
От себя могу добавить, что разработка временного техпроцесса в приложение
происходит быстрее, нежели, чем вручную.
ЗАКЛЮЧЕНИЕ
Данная программа написана для удобного учета клиентов, их быстрого
поиска, вывода списка услуг, получение квитанции и т. д. Обеспечивает удобный
интерфейс, надежность хранения данных, позволяет вести отчетность, формировать
итоги работы за некоторый промежуток времени. Одним словом, для людей, идущих в
одну ногу со временем.
Компьютерное оснащение данного предприятия можно ограничить наличием 2-3
персональных компьютеров, которые находятся в распоряжении служебного
персонала.
Таким образом, автоматизируется наибольшая часть работы по обработке
документации. То есть важная информация, связанная с клиентом.
Список использованных источников
1. Вендров А.М. Case - технологии. Современные методы
и средства проектирования информационных систем. - Internet, http/www.citforum.ru/case....
-158 с., ил.
. Марка Д., МакГоуэн К. Методология структурного анализа и
проектирования: Пер. с англ. - М.: 1999. - 240 с., ил.
. Шумаков П.В. Delphi 5 и разработка приложений баз
данных. - М.: “Нолидж”, 2001. - 704 с., ил.
. Грабер М. Введение в SQL: Пер. с англ. - М.: “ЛОРИ”, 1996.
- 341с., ил.
. Дейт К. Дж. Введение в системы баз данных: Пер. с англ. -
6-е изд. - К.: Диалектика, 1998. - 784с., ил.
. Калянов Г.Н. Case-средства. Структурный и системный
анализ (автоматизация и применение). - М.: “ЛОРИ”, 1999. - 249 с., ил.
Приложение А
IDEF0
диаграмма
Приложение Б
IDEF0
диаграмма. Деразбиение 1 уровня
Приложение В
Рисунок - IDEF0 диаграмма.
Деразбиение 2 уровня
Приложение Г
Листинг программы
unit Unit1;
interface
, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,, Menus, jpeg, ExtCtrls, StdCtrls;
= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;:
TMenuItem;: TTimer;: TImage;: TMenuItem;: TMenuItem;: TMenuItem;N2Click(Sender:
TObject);N5Click(Sender: TObject);Timer1Timer(Sender: TObject);N6Click(Sender:
TObject);N7Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm1;:Boolean;
Unit2, Unit4, Unit6, Unit7, Unit8;
{$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;;
.
, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,, DB, Grids, DBGrids, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls,;
= class(TForm): TADOTable;: TADOConnection;: TDBGrid;:
TDataSource;: TBitBtn;: TBitBtn;: TBitBtn;DSDesigner:
TWideStringField;DSDesigner2: TWideStringField;DSDesigner3:
TWideStringField;DSDesigner4: TWideStringField;DSDesigner5: TWideStringField;DSDesigner6:
TWideStringField;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TRadioGroup;: TEdit;: TGroupBox;:
TBitBtn;: TEdit;: TButton;BitBtn2Click(Sender: TObject);BitBtn3Click(Sender:
TObject);BitBtn4Click(Sender: TObject);BitBtn5Click(Sender:
TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);N4Click(Sender:
TObject);BitBtn6Click(Sender: TObject);BitBtn7Click(Sender:
TObject);BitBtn8Click(Sender: TObject);BitBtn9Click(Sender:
TObject);RadioGroup1Click(Sender: TObject);ADOTable1FilterRecord(DataSet:
TDataSet;Accept: Boolean);Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm2;:string;
Unit3, Unit4, Unit1, Unit5, Unit8;
{$R *.dfm}
TForm2.BitBtn2Click(Sender: TObject);WWW:string;MessageDlg('Вы действительно хотите
удалить эту запись ???',mtWarning,[mbYes,mbNo],0)=MRyes
then:=Form2.ADOTable1.FieldByName('Код клиента').Value;.ADOTable1.Delete;Form3.ADOTable1
do.ADOTable1.First;not eof do
//Form3.ADOTable1.Edit;Form3.ADOTable1.FieldByName('Код клиента').Value=WWW
then (Form3.ADOTable1.Delete);.ADOTable1.Next;;;;;
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.RadioGroup1Click(Sender:
TObject);.ADOTable1.Filtered:=false;radiogroup1.ItemIndex of
:begin:='Фамилия';.ADOTable1.Filtered:=true;;
:begin:='Год рождения' ;.ADOTable1.Filtered:=true;;
:begin:='Возраст';.ADOTable1.Filtered:=true;;;;TForm2.ADOTable1FilterRecord(DataSet:
TDataSet;Accept: Boolean);radiogroup1.ItemIndex of
:Accept:=DataSet[po]=Edit6.Text;
:Accept:=DataSet[po]=Edit6.Text;
:Accept:=DataSet[po]=Edit6.Text;;;
TForm2.Button1Click(Sender: TObject);.Terminate;;
.
Unit3;
, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ComCtrls, Menus,,
ExtCtrls;
= class(TForm): TADOConnection;: TADOTable;: TDataSource;:
TDBGrid;: TCheckBox;: TCheckBox;: TCheckBox;: TCheckBox;: TCheckBox;:
TCheckBox;: TCheckBox;: TCheckBox;: TCheckBox;: TCheckBox;: TGroupBox;:
TGroupBox;: TGroupBox;: TGroupBox;: TGroupBox;: TMonthCalendar;: TBitBtn;:
TGroupBox;: TGroupBox;: TCheckBox;: TCheckBox;: TEdit;: TEdit;: TLabel;:
TLabel;DSDesigner: TWideStringField;DSDesigner2: TWideStringField;DSDesigner3:
TWideStringField;DSDesigner4: TWideStringField;DSDesigner5:
TWideStringField;DSDesigner6: TWideStringField;DSDesigner7:
TWideStringField;DSDesigner8: TWideStringField;DSDesigner9:
TWideStringField;DSDesigner10: TWideStringField;DSDesigner11: TDateTimeField;:
TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;:
TMenuItem;: TBitBtn;: TButton;: TEdit;: TBitBtn;: TLabel;CheckBox1Click(Sender:
TObject);CheckBox2Click(Sender: TObject);CheckBox3Click(Sender:
TObject);CheckBox4Click(Sender: TObject);CheckBox5Click(Sender:
TObject);CheckBox6Click(Sender: TObject);CheckBox7Click(Sender:
TObject);CheckBox8Click(Sender: TObject);CheckBox9Click(Sender:
TObject);CheckBox10Click(Sender: TObject);BitBtn1Click(Sender:
TObject);CheckBox11Click(Sender: TObject);CheckBox12Click(Sender:
TObject);BitBtn5Click(Sender: TObject);BitBtn2Click(Sender:
TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender:
TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);BitBtn6Click(Sender:
TObject);Button1Click(Sender: TObject);BitBtn7Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm3;: 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;,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:=Form8.Edit1.Text;.ADOTable1.FieldByName('Код клиента').Value:=Form8.Edit1.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:=Form8.Edit1.Text;.ADOTable1.FieldByName('Обоснование льготы').Value:=Form3.Edit1.Text;.ADOTable1.FieldByName('Процент скидки').Value:=Form3.Edit2.Text;.ADOTable1.Post;;CheckBox12.Checked=True
then.ADOTable1.Insert;.ADOTable1.FieldByName('Код билета').Value:=Form8.Edit1.Text;.ADOTable1.FieldByName('Код клиента').Value:=Form8.Edit1.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:='-//-//-';.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.Edit1.Enabled:=True;.Edit1.Color:=clWindow;.Edit2.Enabled:=True;.Edit2.Color:=clWindow;.CheckBox12.Checked:=False;;
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.Edit1.Color:=cl3DLight;.Edit1.Enabled:=False;.Edit2.Color:=cl3DLight;.Edit2.Enabled:=False;.CheckBox11.Checked:=False;
;;
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.ADOTable1.First;not eof doForm2.ADOTable1.FieldByName('Код клиента').Value=WWW
then (Form2.ADOTable1.Delete);.ADOTable1.Next;;;;;
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:='';;
.
Unit4;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB,
ADODB, jpeg, ExtCtrls, StdCtrls, Buttons,;
= class(TForm):
TADOConnection;: TADOTable;: TDataSource;: TDBGrid;: TEdit;: TEdit;: TEdit;:
TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TCheckBox;: TBitBtn;:
TEdit;: TMainMenu;: TMenuItem;: TMenuItem;CheckBox1Click(Sender:
TObject);BitBtn1Click(Sender: TObject);N2Click(Sender: TObject);
{ Private
declarations }
{ Public
declarations };
: TForm4;
Unit2, Unit1;
{$R *.dfm}
TForm4.CheckBox1Click(Sender:
TObject);CheckBox1.Checked=False
then.Edit1.Enabled:=False;.Edit2.Enabled:=False;.Edit3.Enabled:=False;.Edit4.Enabled:=False;.Edit5.Enabled:=False;
//Если не поставлена галочка
"Изменить" в "Тариф" то Edit 1-5 становятся др.
цвета-неактивными
Form4.Edit1.Color:=cl3DLight;.Edit2.Color:=cl3DLight;.Edit3.Color:=cl3DLight;.Edit4.Color:=cl3DLight;.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;
begin.Edit1.Enabled:=True;.Edit2.Enabled:=True;.Edit3.Enabled:=True;.Edit4.Enabled:=True;.Edit5.Enabled:=True;
//Если поставлена галочка
"Изменить" в "Тариф" то Edit 1-5 становятся др.
цвета-активными
Form4.Edit1.Color:=clWindow;.Edit2.Color:=clWindow;.Edit3.Color:=clWindow;.Edit4.Color:=clWindow;.Edit5.Color:=clWindow;;;
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;;
.
Unit5;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB,
ADODB, Menus, StdCtrls, Buttons, ExtCtrls;
= class(TForm):
TADOConnection;: TADOTable;: TDataSource;: TDBGrid;: TMainMenu;: TMenuItem;:
TMenuItem;: TGroupBox;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TRadioGroup;:
TEdit;: TGroupBox;: TBitBtn;: TEdit;N2Click(Sender:
TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender:
TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender:
TObject);RadioGroup1Click(Sender: TObject);ADOTable1FilterRecord(DataSet:
TDataSet;Accept: Boolean);BitBtn5Click(Sender: TObject);
{ Private
declarations }
{ Public
declarations };
: TForm5;:string;
Unit1;
{$R *.dfm}
TForm5.N2Click(Sender:
TObject);.Visible:=False;.Visible:=True;;
TForm5.BitBtn1Click(Sender:
TObject);.First;;
TForm5.BitBtn2Click(Sender:
TObject);.Prior;;
TForm5.BitBtn3Click(Sender:
TObject);.Next;;
TForm5.BitBtn4Click(Sender:
TObject);.Last;;
TForm5.RadioGroup1Click(Sender:
TObject);.ADOTable1.Filtered:=false;radiogroup1.ItemIndex of
:begin:='Обоснование льготы';.ADOTable1.Filtered:=true;;
:begin:='Процент скидки'
;.ADOTable1.Filtered:=true;;;;TForm5.ADOTable1FilterRecord(DataSet:
TDataSet;Accept: Boolean);RadioGroup1.ItemIndex of
:Accept:=DataSet[po]=Edit1.Text;
:Accept:=DataSet[po]=Edit1.Text;;;TForm5.BitBtn5Click(Sender:
TObject);.ADOTable1.Locate('Код клиента',Edit2.Text,[loCaseInsensitive,loPartialKey]);;
.
Unit6;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, QuickRpt,
QRCtrls, ExtCtrls;
= class(TForm):
TQuickRep;: TQRBand;: TQRBand;: TQRSysData;: TQRSubDetail;: TADOTable;:
TDataSource;: TQRShape;: TQRDBText;: TQRShape;: TQRShape;: TQRShape;:
TQRShape;: TQRShape;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;:
TQRDBText;: TQRBand;: TQRLabel;: TQRSysData;: TQRShape;: TQRShape;: TQRShape;:
TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;:
TQRShape;: TQRLabel;
{ Private
declarations }
{ Public
declarations };
: TForm6;
{$R *.dfm}
.
Unit7;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, QuickRpt, QRCtrls,
ExtCtrls, DB, ADODB;
= class(TForm):
TQuickRep;: TQRBand;: TQRBand;: TQRSysData;: TQRSubDetail;: TDataSource;:
TADOTable;: TQRDBText;: TQRShape;: TQRBand;: TQRSysData;: TQRLabel;: TQRShape;:
TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;:
TQRLabel;: TQRLabel;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;:
TQRLabel;: TQRLabel;: TQRLabel;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;:
TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRShape;:
TQRShape;: TQRShape;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;:
TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;
{ Private
declarations }
{ Public
declarations };
: TForm7;
{$R *.dfm}
.
Unit8;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, Grids, DBGrids,
ADODB, StdCtrls, Buttons, jpeg, ExtCtrls,;
= class(TForm):
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TBitBtn;: TEdit;: TEdit;:
TEdit;: TEdit;: TEdit;BitBtn1Click(Sender: TObject);
{ Private
declarations }
{ Public
declarations };
: TForm8;
Unit2;
{$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:='';;
. unit Unit8;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, Grids, DBGrids,
ADODB, StdCtrls, Buttons, jpeg, ExtCtrls,;
= class(TForm):
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TBitBtn;: TEdit;: TEdit;:
TEdit;: TEdit;: TEdit;BitBtn1Click(Sender: TObject);
{ Private
declarations }
{ Public
declarations };
: TForm8;
Unit2;
{$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:='';;
.
Unit9;
, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, QRCtrls,
QuickRpt, ExtCtrls;
= class(TForm):
TADOTable;: TDataSource;: TQuickRep;: TQRSubDetail;: TQRDBText;: TQRDBText;:
TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;:
TQRDBText;: TQRBand;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;:
TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;:
TQRSysData;: TQRLabel;: TQRLabel;
{ Private declarations
}
{ Public
declarations };
: TForm9;
{$R *.dfm}
.