close

Вход

Забыли?

вход по аккаунту

?

1 (3)

код для вставкиСкачать
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
"ТОЛЬЯТТИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕРВИСА"
Кафедра "Прикладная информатика в экономике"
КУРСОВАЯ РАБОТА (ПРОЕКТ)
по дисциплине "Базы данных"
на тему: "Разработка базы данных и приложения для решения задачи: Автоматизация деятельности видеопроката"
Выполнил:. Руководитель: Тольятти, 2009г.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ3
1.АНАЛИТИЧЕСКАЯ ЧАСТЬ4
1.1.Описание предметной области.4
1.2. Описание технологии функционирования ИС.6
1.3.Требования к ИС.7
2. Проектирование базы данных.9
2.1. Концептуальная модель БД.9
2.2. Даталогическая (реляционная) модель БД11
2.3.Физическое проектирование БД.12
3. Создание приложения для работы с базой данных.17
3.1. Разработка функциональной модели СУБД.17
3.2. Разработка экранных форм ввода-вывода и отчетов.17
3.3. Разработка функциональных модулей24
ЗАКЛЮЧЕНИЕ25
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ26
Приложение27
Листинг программы27
Инструкция по работе с программой62
ВВЕДЕНИЕ
Видеопрокат - это организация, оказывающая услуги населению по прокату видеокассет, DVD-дисков, содержащих кино, концерты, мультфильмы.
Некоторые видеопрокаты работают с картотекой, созданной на бумаге, т.е. для чтобы клиент мог выбрать какое либо видео, он должен просмотреть каталог, состоящей из нескольких сотен страниц. Также и для работников видеопроката работа с бумажной базой приносит различные неудобства, так как бумага не долговечна, обновление данных о клиентах и о фильмах вызывает затруднение, поиск зарегистрированных клиентов а базе занимает много времени. Таким образом, автоматизация такой деятельности как работа видеопроката является необходимым и перспективным процессом. Комплексное использование современных информационных технологий позволяет значительно облегчить работу проката. Компьютеризированные технологии могут применяться на всех этапах работы видеопроката: учёт видео, добавление и обновление записей о клиентах, учёт по продаже видео.
Функциональные возможности программы должны быть таковы, чтобы охватывать все возможные ситуации в работе видеопроката. Это достигается грамотно проведенным обследованием предметной области, а также опытом разработки программ для нескольких видеопрокатов. Программа должна поддерживать ведение базы клиентов и базы кассет и обеспечивать правильное взаимодействие этих двух баз. Кроме того, необходимо обеспечивать всех пользователей программы нужной им информацией в удобной форме.
Целью данного курсового проекта является разработка программы для автоматизации работы видеопроката. Внедрение этого приложения значительно облегчает и усовершенствует ведение данных об имеющихся фильмах и клиентах.
Задачами курсового проекта являются:
* описание предметной области, * описание технологии функционирования ИС,
* построение концептуальной и даталогической (реляционная) модели БД, * физическое проектирование БД, * разработка функциональной модели СУБД, * разработка экранных форм ввода-вывода и отчета, * разработка функциональных модулей.
1.АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1.Описание предметной области.
Предметной областью называется фрагмент реальности, который описывается или моделируется с помощью БД и ее приложений. В предметной области выделяются информационные объекты - идентифицируемые объекты реального мира, процессы, системы, понятия и т.д., сведения о которых хранятся в БД.
Создаваемая программа предназначена для автоматизации пункта проката или продажи видеокассет, дисков. Она ведет учет выдаваемых видео-продуктов клиентам, учёт клиентов и сотрудников, формирует все необходимые документы и отчеты. В программе предусмотрена возможность учета выдачи чека, регистрации клиентов. Для ускорения обслуживания, работа может вестись с применением персональных карточек клиентов. С помощью создаваемой программы, видеопрокат может предлагать следующий перечень услуг:
* быстрый поиск видео по названию, жанру, режиссёру и т.п.;
* персональные карточки, с помощью которых клиент может получить скидку;
* резервирование видео.
В базе данных разрабатываемого программного продукта будут хранится данные о клиенте:
* код клиента (номер персональной карточки);
* ФИО;
* дата рождения;
* телефон;
* адрес;
* дата регистрации;
* код категории.
Видео хранящееся в видеопрокате, характеризуются следующими параметрами:
* код видео;
* дата выпуска;
* страна;
* режиссёр;
* жанр;
* продолжительность;
* стоимость одного дня;
* в наличии.
Также в программе содержатся данные о сотрудниках:
* код сотрудника;
* ФИО;
* должность.
В случае, когда сотрудник выдает выбранное клиентом видео, оформляется договор заказа, в котором указываются следующие данные:
* код заказа;
* код клиента;
* код категории;
* код видео;
* количество дней;
* скидка;
* сумма к уплате.
В случае нарушения, сотрудник составляет договор штрафа, где указывается следующее:
* код договора;
* код клиента;
* код нарушения;
* штраф;
* код сотрудника.
После составления договора сотрудник заносит клиента в список нарушителей:
* код клиента;
* код нарушения;
* дата нарушения;
* погашение штрафа.
Если клиент резервирует видео, то сотрудник составляет договор резервирования:
* код резерва;
* код клиента;
* код видео;
* цена резервирования;
* количество резервирования;
* код сотрудника.
В создаваемом программном продукте могут работать группы пользователей:
* сотрудники;
* клиенты.
Сотрудники благодаря данному программному продукту могут решать следующие задачи:
* регистрировать клиентов и выдавать им персональные карточки;
* удалить данные о клиентах, в случае если они не пользуются услугами видеопроката;
* добавлять и удалять данные о видео;
* резервировать видео, по просьбе клиента, в случае его отсутствия и составлять договор резервирования;
* составлять договор заказа при выдаче клиенту видео;
* в случае нарушения клиентом установленных видеопрокатом правил, заносить его в список нарушителей и составлять договор штрафа;
* устанавливать клиентам различные категории, которые предоставляют скидку.
Клиентам тоже предоставляется возможность пользования данной программой. Для них предусмотренные следующие возможности:
* осуществлять поиск видео;
* просмотр своих данных, для учёта:
* резервирование видео в случае отсутствия.
1.2. Описание технологии функционирования ИС.
Когда в видео прокат приходит новый клиент, он проходит процедуру регистрации, после чего оператор заносит его в базу данных клиентов проката и вручает ему персональную карточку с идентификационным номером. С помощью этого номера оператор видео проката может быстро найти в базе клиента и получить сведения о нем. Также сотрудник устанавливает категорию клиента, которая даёт клиенту право на скидку, предусмотренной категорией.
Для того чтобы клиент смог выбрать фильм, оператор предоставляет ему сделать запрос на выборку по жанру, названию и т.п. Клиент может это осуществить самостоятельно, либо воспользоваться помощью оператора проката. После того как клиент выбрал фильм, оператор проката оформляет договор. Если клиент при поиске видео обнаружил, что выбранное видео отсутствует, то сотрудник составляет договор резервирования.
В случае если клиент совершил нарушение установленных видео прокатом правил, то сотрудник составляет договор штрафа, а клиента (код клиента) заносит в список нарушителей.
Программа работает на одном или нескольких компьютерах операторов пункта проката и выполняет следующие основные функции: * Регистрация клиентов, формирование и печать персональных карточек клиентов;
* Учёт нарушений клиентов;
* Возможность быстрого поиска видео по названию, жанру, стране и т.д.;
* Возможность быстрого поиска клиентов по номеру персональной карточки;
* Резервирование видео для клиента;
* Гибкая система настройки различных схем обслуживания клиентов в зависимости от их категории;
* Печать чека.
Программа полностью автоматизирует всю деятельность пункта проката. Создаваемы программный продукт может работать в сети связанных между собой компьютеров и функционирует в соответствии с общепризнанными технологиями работы пунктов проката, позволяет оптимизировать все процессы, связанные с обслуживанием клиентов. 1.3.Требования к ИС.
Для разработки приложения выбрана среда разработки Delphi, так как данное средство имеет ряд преимуществ:
* визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;
* масштабируемые средства для построения баз данных;
* высокая производительность разработанного приложения;
* низкие требования разработанного приложения к ресурсам компьютера;
* возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках).
Приложение БД должно иметь удобный для пользователя интерфейс, выполненный в одном стиле. Работу с приложением можно организовать с помощью меню или кнопок, размещенных на главной форме. Приложение БД должно позволять выполнять следующие операции с данными:
* ввод данных; в отдельных случаях, с проверкой вводимых данных и выдачей соответствующих сообщений в случае ошибок при вводе данных;
* удобный просмотр, сортировку, поиск и фильтрацию данных;
* формирование запросов и получение с помощью них необходимой информации из БД (обязательно должен(ны) быть запрос(ы) с группировкой );
* выполнять обработку транзакции (и/или исключительной ситуации);
* формировать печатную форму (достаточно 1-2).
Функционирование приложения должно быть ориентировано на конечного пользователя, быть удобным в работе и выполнять все необходимые для пользователя действия: * добавление и удаление записей о клиентах;
* добавление и удаление записей о видео;
* добавление и удаление записей о сотрудниках;
* создание и печать отчёта (договора).
Для работы создаваемого приложения необходимы следующие системные требования и технические средства:
* ПК с процессором семейств Intel(r) Pentium(r)/Celeron(r)/Xeon(tm), AMD K6/Athlon(tm)/Duron(tm) или совместимым с ними процессором, с тактовой частотой 75 MHZ или выше;
* операционная система Microsoft Windows(r) 9X/Me/NT/2000/XP/Vista или любая другая;
* объем оперативной памяти 16 Мб или выше;
* свободное место на жёстком диске 50Мб;
* видеоплата и монитор с разрешением не менее 800х600 точек;
* клавиатура, мышь, монитор, принтер.
2. Проектирование базы данных.
2.1. Концептуальная модель БД.
Концептуальная (содержательная) модель - это абстрактная модель, определяющая структуру моделируемой системы, свойства ее элементов и причинно-следственные связи, присущие системе и существенные для достижения цели моделирования.
Для устранения избыточности информации приведем базу данных к четвертой нормальной форме. Это даст следующие преимущества:
* данные легко обновлять или удалять; * исключается возможность рассогласования копий данных; * уменьшается возможность введения некорректных данных.
После приведения базы данных к третьей нормальной форме она будет содержать 8
таблиц:
* Клиенты;
* Видео;
* Категории;
* Сотрудники;
* Нарушения;
* Договор заказа;
* Договор штрафа;
* Договор резервирования;
* Список нарушителей.
Рассмотрим связи между таблицами (см. рис.1)
Таблица "Категории" и таблица "Клиенты" - установлена связь "один-ко-многим" при помощи первичного ключа "код категории".
Таблица "Категории" и таблица "Договор заказа" - установлена связь "один-ко-многим" при помощи первичного ключа "код категории".
Таблица "Клиенты" и таблица "Договор заказа" - установлена связь "один-ко-многим" при помощи первичного ключа "код клиента".
Таблица "Клиенты" и таблица "Договор штрафа" - установлена связь "один-ко-многим" при помощи первичного ключа "код клиента".
Таблица "Клиенты" и таблица "Список нарушителей" - установлена связь "один-ко-многим" при помощи первичного ключа "код клиента".
Таблица "Клиенты" и таблица "Договор резервирования" - установлена связь "один-ко-многим" при помощи первичного ключа "код клиента".
Таблица "Видео" и таблица "Договор заказа" - установлена связь "один-ко-многим" при помощи первичного ключа "код видео".
Таблица "Видео" и таблица "Договор резервирования" - установлена связь "один-ко-многим" при помощи первичного ключа "код видео".
Таблица "Сотрудники" и таблица "Договор заказа" - установлена связь "один-ко-многим" при помощи первичного ключа "код сотрудника".
Таблица "Сотрудники" и таблица "Договор штрафа" - установлена связь "один-ко-многим" при помощи первичного ключа "код сотрудника.
Таблица "Сотрудники" и таблица "Договор штрафа" - установлена связь "один-ко-многим" при помощи первичного ключа "код сотрудника.
Таблица "Сотрудники" и таблица "Договор резервирования" - установлена связь "один-ко-многим" при помощи первичного ключа "код сотрудника.
Таблица "Нарушения" и таблица "Договор штрафа" - установлена связь "один-ко-многим" при помощи первичного ключа "код нарушения".
Таблица "Нарушения" и таблица "Список нарушителей" - установлена связь "один-ко-многим" при помощи первичного ключа "код нарушения".
Рис.1 Концептуальная модель БД
2.2. Даталогическая (реляционная) модель БД
Даталогическая модель БД - модель логического уровня, представляющая собой отображение логических связей между элементами данных, независимо от их содержания и среды хранения. На этапе даталогического проектирования строится логическая структура БД. При этом происходит преобразование исходной инфологической модели в модель данных, которая поддерживается конкретной СУБД. После этого производится проверка адекватности даталогической модели, отображаемой предметной области. Конечным результатом даталогического проектирования является описание структуры БД на языке описания данных конкретных СУБД.
Даталогическая модель, построенная для приложения видеопроката, (см. рис. 2) отличается от концептуальной языком написания полей. Это обусловлено выбором СУБД, в данном случае Paradox.
Рис. 2 Реляционная модель
2.3.Физическое проектирование БД.
Физическая организация данных оказывает основное влияние на эксплуатационные характеристики проектируемой базы, так как именно на этом уровне осуществляется ее привязка к физической памяти. Практика проектирования физической БД прошла несколько этапов своего развития, начиная от проектирования файлов и кончая проектированием физических структур интегрированных БД в рамках существующих ныне СУБД. Эта практика включает различные известные методы хранения структур, поисковые механизмы, сегментацию записей.
Можно разделить основные проектные решения в физическом проектировании по меньшей мере на три категории: проектирование формата хранимых записей, анализ и проектирование кластеров, проектирование путей доступа.
Современные реляционные СУБД в основном используют физические структуры и методы доступа, опирающиеся на технологию проектирования файла, что по существу практически снимает вопрос о физическом проектировании.
Для реализации приложения по автоматизации деятельности видеопроката выбрана СУБД Paradox. После привидения таблиц к третьей нормальной форме, приступим к их созданию. Для начала создадим папку, где будут хранится созданные таблицы, далее с помощью утилиты BDE (Borland Database Engine) administrator создадим аллиас. После этого с помощью утилиты DataBase Desktop создадим таблицы: клиенты, видео, категории, договор заказа, договор штрафа, договор резервирования, список нарушителей, сотрудники, нарушения.
Структура таблицы "Клиенты" (см. рис. 3) содержит следующие поля: код клиента (ключевое поле), ФИО, дата рождения, телефон, адрес, дата регистрации, код категории. Индекс по полю ФИО. Рис. 3 Структура таблицы "Клиенты"
Структура таблицы "Видео" (см. рис. 4) содержит поля: код видео (ключевое поле), название, год выпуска, страна, режиссёр, жанр, продолжительность, стоимость одного дня, в наличии. Индексы по полям: название, страна, режиссёр.
Рис.4. Структура таблицы "Видео"
Структура таблицы "Категории" (см. рис. 5) содержит поля: код категории, описание, скидка.
Рис. 5. Структура таблицы "Категории"
Структура таблицы "Сотрудники" (см. рис. 6) содержит поля: код сотрудника, ФИО сотрудника, должность.
Рис.6. Структура таблицы "Сотрудники"
Структура таблицы "Нарушения" (см. рис. 7) содержит поля: код нарушения, описание, штраф.
Рис.7. Структура таблицы "Нарушения"
Структура таблицы "Договор заказа" (см. рис. 8) содержит поля: код заказа, код клиента, код видео, количество дней, сумма, код сотрудника. Рис. 8. Структура таблицы "договор заказа"
Структура таблицы "договор штрафа" (см. рис. 9) содержит поля: код чека, код клиента, код нарушения, код сотрудника.
Рис. 9. Структура таблицы "договор штрафа"
Структура таблицы "договор резервирования" (см. рис. 10) содержит поля: код резерва, код клиента, код видео, код сотрудника.
Рис. 10. Структура таблицы "Договор резерва"
Структура таблицы "Нарушители" (см. рис. 11) содержит поля: код записи, код клиента, код нарушения, дата нарушения, погашение. Индекс по полю Код клиента.
Рис. 11. Структура таблицы "Нарушители"
3. Создание приложения для работы с базой данных.
3.1. Разработка функциональной модели СУБД.
Функциональная модель для разрабатываемой БД выглядит следующим образом (см. рис. 12):
Рис. 12. Функциональная модель
Модуль "Меню" - основной модуль, с помощью него можно осуществить выбор дальнейшего действия. Он позволяет загрузить другие модули или осуществить выход из СУБД. Модуль "Поиск видео" - осуществление поиска по заданному значению.
Модуль "Клиенты" - просмотр, добавление, удаление, редактирование записей.
Модуль "Нарушители" - просмотр, добавление, удаление, редактирование записей.
Модуль "Выход, осуществляет завершение работы программы.
Модуль "Чеки" - добавление, редактирование записей, создание отчёта.
Модуль "Справка" - просмотр информации о создаваемой программе.
3.2. Разработка экранных форм ввода-вывода и отчетов.
При разработке СУБД "Видеопрокат" были разработаны экранные формы ввода/вывода исходных данных и результатов обработки, а также печатаемых отчётов.
На главной форме (см. рис. 13) можно просмотреть таблицу, содержащую данные о видео. Имеются поля с помощью которых можно добавить, изменить или удалить запись. Также на главной форме можно осуществить поиск по названию видео и добавить данные о видео в чек заказа или резерва (зависит от наличия видео). С помощью меню можно открыть формы "Клиенты", "Нарушители", "Чеки", "Справка", "Поиск видео".
Рис. 13. Главная форма
При выборе Меню-Поиск видео, открывается соответствующая форма (см. рис. 14), где можно осуществить поиск по полям: название, режиссёр, страна. В результате поиска по заданному значению в таблице отобразятся нужные записи, для того чтобы вернуть таблицу в первоначальный вид, на форме расположена кнопка "Все записи". Чтобы вернуться на главную форму необходимо воспользоваться меню.
Рис. 14. Форма "Поиск видео"
При выборе на главной форме с помощью меню пункта Клиенты, откроется соответствующая форма (см. рис. 15) на которой расположена таблица "Клиенты", "Категории". На данной форме можно осуществлять добавление, редактирование, удаление записей. При выборе определенного клиента в таблице "Клиенты", указатель в таблице "Категории" перемещается на соответствующую клиенту категорию и в отдельном поле отображается описание соответствующей категории. Также на данной форме можно осуществить поиск по заданному значению, добавить запись о выбранном клиенте в чек заказа или резерва. Также на данной форме предусмотрена возможность создания персональной карты клиента (рис. 16). При выборе пункта меню пользователь возвращается на главную форму.
Рис. 15. Форма "Клиенты".
Рис. 16. Персональная карта клиента.
При выборе пункта меню Нарушители, на главной форме, появится соответствующая форма (см. рис. 17), где возможно добавление, редактирование, удаление записей в таблице "Нарушители". При выборе определенной записи в таблице "Нарушители", указатель в таблице "Клиенты" переместится на соответствующую запись, также в таблице "Нарушения" выберется нужная запись, а в отдельном поле отобразится состав нарушения. На данной форме предусмотрена возможность поиска по коду клиента, причём при оплате штрафа выйдет информирующее окно, а также возможно добавление записи в чек штрафа.
Рис.17. Форма "Нарушители"
При выборе меню Чеки, откроется соответствующая форма, содержащая три закладки: заказ (см. стр. 18), штраф (см. рис. 19), резерв (см. рис. 20). На данной форме можно добавлять записи, просматривать все заказы (штрафы, резервы), создавать чек заказа (см. рис. 21), чек штрафа (см. рис. 22),чек резерва (см. рис. 23).
Рис. 18. Форма "Чеки - Заказ".
Рис. 19. Форма "Чеки - Штраф".
Рис. 20. Форма "Чеки - Резерв".
Рис. 21. Чек заказа.
Рис. 22. Чек штрафа.
Рис. 23. Чек резерва.
При выборе меню Справка на главной форме, открывается соответствующая форма (см. рис. 24), на которой возможен просмотр данных.
Рис. 24. Форма "Справка"
3.3. Разработка функциональных модулей
СУБД "Видеопрокат" разрабатывалась как упрощённая в управлении информационная система учёта данных о клиентах и фильмах. Специфичность программных модулей заключается в дополнительных функциях поиска, сортировки, фильтрации по часто используемым полям.
Модуль "Главная форма" - просмотр и редактирование соответствующей таблицы. При вводе названия видео и нажатии на кнопку "поиск" происходит поиск данных в таблице "Видео".
Модуль "Поиск видео" - при выборе параметра (по названию, по стране, по режиссёру), вводе соответствующих значений и нажатии на кнопку "поиск" происходит фильтрация данных. При нажатии на кнопку "все записи" таблица принимает первоначальный вид.
Модуль "Клиенты" - просмотр и редактирование соответствующей таблицы. В данном модуле вносится информация о клиенте, а также создаётся персональная карта.
Модуль "Нарушители" - просмотр, добавление, удаление, редактирование записей, создание отметки об оплате.
Модуль "Чеки" - добавление, редактирование записей, расчёт суммы для оплаты с учётом скидки, создание отчётов.
ЗАКЛЮЧЕНИЕ
В результате выполнения данного курсового проекта все поставленные цели и задачи были выполнены. Были описаны технологии функционирования ИС, построены концептуальная и реляционная модели БД, выполнено физическое проектирование БД, разработана функциональной модели СУБД, разработаны экранные форм ввода-вывода и отчета, разработаны функциональные модули.
В результате проделанной работы было разработано приложение для работы с базой данных видеопроката. Оно автоматизирует доступ к базе данных и оптимизирует работу персонала. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Баженова, И. Ю. Основы проектирования приложений баз данных . [Текст]: учеб. пособие ./ И.Ю.Баженова - М. : Интернет-Ун-т Информ Технологий БИНОМ. Лаб. знаний , 2006 . - 252 с. 2. Борисов, В.В. Компьютерная поддержка сложных организационно-технических систем. [Текст]:/ В.В Борисов, И.А. Бычков, А.В. Дементьев. - Горячая линия - Телеком, 2002 -300с. 3. Волоха, А. В. БД Microsoft SQL Server 2005. Новые возможности [Текст]: А.В. Волоха - Питер, 2006. - 158 с. 4. Ковязин, А. Н. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/Firebird/Yaffil . [Текст]:/ А. Н. Ковязин, С. М. Востриков. - М. : КУДИЦ-ОБРАЗ , 2002 . - 52 с. 5. Гайдамакин, Н. А. Автоматизированные информационные системы, базы и банки данных . ввод. курс [Текст]: учеб. пособие для вузов ./ Н.А. Гайдамакин - М. : Гелиос АРВ , 2002 . - 101 с. 6. Фаронов, В. В. , Программирование баз данных в Delphi 7 . [Текст]: / В.В. Фаронов. - СПб. : Питер , 2004 . - 136 с. 7. Карпова, Т.С. Базы данных: модели, разработка, реализация . [Текст]: / Т.С.Карпова . - СПб. : Питер , 2002 . - 14с. 8. Крёнке, Д. Теория и практика построения баз данных. 8-е изд. [Текст]:/ Д. Крёнке - Питер, 2003. - 74 с. 9. http://www.delphisources.ru/
10. http://www.citforum.ru/
11. http://www.sources.ru/
12. http://www.codingrus.ru/
Приложение
Листинг программы
Модуль "Главная форма"
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, Menus, ExtCtrls, DBCtrls,
StdCtrls, Mask, Buttons, jpeg;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Table1: TTable;
DataSource1: TDataSource;
DBVideoGrid1: TDBGrid;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
InsertButton: TButton;
EditButton: TButton;
DeleteButton: TButton;
PostButton: TButton;
EditButton1: TButton;
N2: TMenuItem;
N3: TMenuItem;
N13: TMenuItem;
Edit1: TEdit;
Button1: TButton;
N1: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
N6: TMenuItem;
Image1: TImage;
procedure InsertButtonClick(Sender: TObject);
procedure EditButtonClick(Sender: TObject);
procedure DeleteButtonClick(Sender: TObject);
procedure PostButtonClick(Sender: TObject);
procedure EditButton1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit5, Unit4, Unit6, Unit10, Unit11;
{$R *.dfm}
//кнопка ДОБАВИТЬ
procedure TForm1.InsertButtonClick(Sender: TObject);
begin
if table1.State=dsBrowse then
table1.Insert;
end;
//кнопка ИЗМЕНИТЬ
procedure TForm1.EditButtonClick(Sender: TObject);
begin
IF Table1.State=dsBrowse THEN
Table1.Edit;
end;
//кнопка УДАЛИТЬ
procedure TForm1.DeleteButtonClick(Sender: TObject);
begin
IF Table1.State=dsBrowse THEN
IF MessageDlg( 'Вы действительно хотите удалить запись?', mtConfirmation,[mbYes, mbNo],0) = mrYes
THEN Table1.Delete;
end;
//кнопка ЗАПОМНИТЬ
procedure TForm1.PostButtonClick(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Post;
end;
//кнопка ОТМЕНИТЬ
procedure TForm1.EditButton1Click(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Cancel;
end;
//Открыть ЧЕКИ
procedure TForm1.N4Click(Sender: TObject);
begin
Form5.Show;
end;
//Открыть ПОИСК
procedure TForm1.N3Click(Sender: TObject);
begin
Form2.Show;
end;
//открыть КЛИЕНТЫ
procedure TForm1.N1Click(Sender: TObject);
begin
form3.Show;
end;
//открыть НАРУШИТЕЛИ
procedure TForm1.N6Click(Sender: TObject);
begin
form4.show;
end;
//поиск
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Locate ('Name', edit1.text, [loCaseInsensitive, loPartialKey]); {не учитывает регистр, частичное совпадение}
end;
//добавление в ЧЕК ЗАКАЗА
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if dbedit8.Text='есть' then
begin
Form5.dbEdit1.Text:=Form1.DBEdit1.text;
Form5.dbEdit4.Text:=Form1.DBEdit7.text;
Form5.TabSheet1.Show;
end;
if dbedit8.Text='нет' then
begin
ShowMessage ('Добавить нельзя. Вы можете создать чек резерва')
end;
end;
//добавление в ЧЕК РЕЗЕРВА
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if dbedit8.Text='нет' then
form5.dbEdit13.text:=form1.dbEdit1.text;
form5.Show;
end;
//ВЫХОД из программы
procedure TForm1.N13Click(Sender: TObject);
begin
Close
end;
//сообщение о ВЫХОДЕ
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg('Вы действительно хотите выйти из программы?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
Action := caFree
end
else
Action := caNone;
end;
//ЗАСТАВКА
procedure TForm1.FormCreate(Sender: TObject);
begin
Form10:=TForm10.Create(Application);
Form10.ShowModal;
Form10.Free;
end;
//СПРАВКА
procedure TForm1.N5Click(Sender: TObject);
begin
Form11.show;
end;
end.
Модуль "Поиск видео"
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, DBTables, Menus, jpeg,
ExtCtrls;
type
TForm2 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
CheckBox1: TCheckBox;
Edit1: TEdit;
CheckBox2: TCheckBox;
Edit2: TEdit;
CheckBox3: TCheckBox;
Edit3: TEdit;
BitBtn1: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
N3: TMenuItem;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2; implementation
uses Unit1, Unit5;
{$R *.dfm}
//ПОИСК
procedure TForm2.BitBtn1Click(Sender: TObject);
Var Field1, Field2, Field3,Uslovie: String;
begin
If Edit1.Text <> '' Then Edit1.Text:=Chr(39) + Edit1.Text + Chr(39);
If Edit2.Text <> '' Then Edit2.Text:=Chr(39) + Edit2.Text + Chr(39);
If Edit3.Text <> '' Then Edit3.Text:=Chr(39) + Edit3.Text + Chr(39);
{по названию}
If CheckBox1.Checked Then
Begin
Field1:='Name';
Uslovie:=Field1 + '=' + Edit1.Text;
End;
{по жанру}
If CheckBox2.Checked Then
Begin
Field2:='Style';
Uslovie:=Field2 + '=' + Edit2.Text;
End;
{по режиссёру}
If CheckBox3.Checked Then
Begin
Field3:='Producer';
Uslovie:=Field3 + '=' + Edit3.Text;
End;
Table1.Filtered:=True;
Table1.FilterOptions:=[foCaseInsensitive];
Table1.Filter:=Uslovie;
end;
//показать ВСЕ ЗАПИСИ
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
table1.Filtered:=false;
end;
//Открыть ГЛАВНОЕ ОКНО
procedure TForm2.N2Click(Sender: TObject);
begin
Form2.Close;
form1.show;
end;
//возвращение значений
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
checkbox1.Checked:=false;
checkbox2.Checked:=false;
checkbox3.Checked:=false;
end;
//открыть ЧЕКИ
procedure TForm2.N3Click(Sender: TObject);
begin
Form5.show;
end;
end.
Модуль "Клиенты"
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, ExtCtrls, DBCtrls, StdCtrls, Menus,
Buttons, Mask, jpeg;
type
TForm3 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Table1: TTable;
DataSource1: TDataSource;
Table2: TTable;
DataSource2: TDataSource;
DBMemo1: TDBMemo;
BitBtn1: TBitBtn;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
GroupBox1: TGroupBox;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
BitBtn2: TBitBtn;
DBEdit7: TDBEdit;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
DBLookupComboBox1: TDBLookupComboBox;
DBGrid2: TDBGrid;
DBGrid1: TDBGrid;
DBEdit1: TDBEdit;
DBEdit6: TDBEdit;
BitBtn8: TBitBtn;
N3: TMenuItem;
Label1: TLabel;
BitBtn9: TBitBtn;
Image1: TImage;
procedure N2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit4, Unit7, Unit5, Unit1;
{$R *.dfm}
//показать НАРУШИТЕЛИ
procedure TForm3.N2Click(Sender: TObject);
begin
Form4.Show;
end;
//кнопка НАЙТИ
procedure TForm3.BitBtn1Click(Sender: TObject);
var KeyField,Key:string;
begin
{по ФИО}
if RadioButton1.Checked then
begin
KeyField:='FIO';
Key:=Edit1.Text;
end;
{по коду клиента}
if RadioButton2.Checked then
begin
KeyField:='Kod_klienta';
Key:=Edit1.Text;
end;
Table1.Locate(KeyField,key,[loCaseInsensitive,loPartialKey]);
if not Table1.Locate(KeyField,key,[loCaseInsensitive,loPartialKey])
then ShowMessage ('Таких записей не существует');
end;
//создание ПЕРСОНАЛЬНОЙ КАРТЫ
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
Form7.QuickRep1.Preview;
end;
//кнопка ДОБАВИТЬ
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
if table1.State=dsBrowse then
table1.Insert;
end;
//кнопка ИЗМЕНИТЬ
procedure TForm3.BitBtn4Click(Sender: TObject);
begin
IF Table1.State = dsBrowse THEN
Table1.Edit
end;
//кнопка ЗАПОМНИТЬ
procedure TForm3.BitBtn5Click(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Post;
end;
//кнопка УДАЛИТЬ
procedure TForm3.BitBtn6Click(Sender: TObject);
begin
IF Table1.State = dsBrowse THEN
IF MessageDlg( 'Вы действительно хотите удалить запись?', mtConfirmation,[mbYes, mbNo],0) = mrYes
THEN Table1.Delete;
end;
//кнопка ОТМЕНИТЬ
procedure TForm3.BitBtn7Click(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Cancel;
end;
//добавить в ЧЕК РЕЗЕРВА
procedure TForm3.BitBtn8Click(Sender: TObject);
begin
Form5.DBEdit11.text:=form3.DBEdit1.Text;
Form5.DBEdit12.Text:=form3.DBEdit2.Text;
Form5.TabSheet3.Show;
Form3.Close;
end;
//вернуться на ГЛАВНОЕ ОКНО
procedure TForm3.N3Click(Sender: TObject);
begin
Form1.show;
Form3.close;
end;
//добавить в ЧЕК ЗАКАЗА
procedure TForm3.BitBtn9Click(Sender: TObject);
begin
Form5.dbEdit3.text:=Form3.dbEdit2.text;
Form5.dbEdit2.text:=Form3.dbEdit1.text;
Form5.dbEdit6.Text:=Form3.dbEdit6.text;
Form5.TabSheet1.Show;
form3.close;
end;
end.
Модуль "Нарушители"
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, Mask, DB, DBTables, ExtCtrls, Grids, DBGrids,
Buttons, Menus, jpeg;
type
TForm4 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Edit1: TEdit;
Button1: TButton;
Table1Kod_record: TAutoIncField;
Table1Kod_klienta: TIntegerField;
Table1Kod_breach: TIntegerField;
Table1Data_Breach: TDateField;
Table1Cancel: TStringField;
RadioGroup1: TRadioGroup;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DataSource2: TDataSource;
Table2: TTable;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
DBMemo1: TDBMemo;
Table3: TTable;
DataSource3: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
BitBtn1: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
Implementation
uses Unit5, Unit1;
{$R *.dfm}
// ПОИСК клиента
procedure TForm4.Button1Click(Sender: TObject);
var
Res: Variant;
begin
Res := Table1.Lookup('Kod_klienta', VarArrayOf([Edit1.Text]), 'Cancel');
if Res <> Null then
ShowMessage('Погашение штрафа: ' + string(Res)); {сообщение о погашении}
end;
//СОРТИРОВКА
procedure TForm4.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:Table1.IndexName:='Kod_klienta';
1:Table1.IndexName:='Data_Breach_in';
end;
end;
//добавление в ЧЕК ШТРАФА
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
Form5.dbEdit7.Text:=dbEdit1.Text;
Form5.dbEdit8.Text:=dbEdit3.Text;
Form5.dbEdit9.Text:=dbEdit1.Text;
Form5.dbEdit10.Text:=dbEdit4.Text;
Form5.TabSheet2.Show;
Form4.Close;
end;
//вернуться на ГЛАВНОЕ ОКНО
procedure TForm4.N2Click(Sender: TObject);
begin
Form1.show;
Form4.Close;
end;
end.
Модуль "Чеки"
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, Mask, DBCtrls, Buttons,
ComCtrls, Menus, jpeg, ExtCtrls;
type
TForm5 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Button2: TButton;
Button3: TButton;
BitBtn5: TBitBtn;
DBLookupComboBox1: TDBLookupComboBox;
Table2: TTable;
DataSource3: TDataSource;
Label7: TLabel;
DBGrid2: TDBGrid;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Query1: TQuery;
DataSource2: TDataSource;
TabSheet2: TTabSheet;
Table3: TTable;
DataSource4: TDataSource;
DBGrid3: TDBGrid;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBLookupComboBox2: TDBLookupComboBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
TabSheet3: TTabSheet;
Table4: TTable;
DataSource5: TDataSource;
DBGrid4: TDBGrid;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBLookupComboBox3: TDBLookupComboBox;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Button4: TButton;
Button5: TButton;
BitBtn12: TBitBtn;
BitBtn13: TBitBtn;
BitBtn14: TBitBtn;
BitBtn15: TBitBtn;
BitBtn16: TBitBtn;
BitBtn17: TBitBtn;
Button6: TButton;
Button7: TButton;
Button8: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Image1: TImage;
Image2: TImage;
Image3: TImage;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BitBtn13Click(Sender: TObject);
procedure BitBtn14Click(Sender: TObject);
procedure BitBtn15Click(Sender: TObject);
procedure BitBtn16Click(Sender: TObject);
procedure BitBtn17Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit2, Unit1, Unit8, Unit6, Unit3, Unit9, Unit4;
{$R *.dfm}
//кнопка ДОБАВИТЬ
procedure TForm5.Button1Click(Sender: TObject);
begin
if table1.State=dsBrowse then
table1.Insert;
end;
//кнопка ИЗМЕНИТЬ
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
IF Table1.State=dsBrowse THEN
Table1.Edit
end;
//кнопка УДАЛИТЬ
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
IF Table1.State=dsBrowse THEN
IF MessageDlg( 'Вы действительно хотите удалить запись?', mtConfirmation,[mbYes, mbNo],0) = mrYes
THEN Table1.Delete;
end;
//кнопка ЗАПОМНИТЬ
procedure TForm5.BitBtn3Click(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Post;
end;
//кнопка ОТМЕНИТЬ
procedure TForm5.BitBtn4Click(Sender: TObject);
begin
IF Table1.State in [dsInsert,dsEdit] THEN
Table1.Cancel;
end;
//кнопка РАСЧЁТ
procedure TForm5.Button2Click(Sender: TObject);
begin
DBGrid1.Visible:=false;
DBGrid2.Visible:=true;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('SELECT name, klienta, fio, price, kolvo, sal, (price*kolvo-(price*kolvo*sal/100)) as Plata, sotr');
Query1.SQL.Add ('FROM z.db');
Query1.Open;
end;
//Чек ЗАКАЗА
procedure TForm5.Button3Click(Sender: TObject);
begin
Form8.QuickRep1.Preview;
end;
//кнопка ВСЕ ЗАКАЗЫ
procedure TForm5.BitBtn5Click(Sender: TObject);
begin
DBGrid2.Visible:=false;
DBGrid1.Visible:=true;
end;
procedure TForm5.BitBtn6Click(Sender: TObject);
begin
if table3.State=dsBrowse then
table3.Insert;
end;
procedure TForm5.BitBtn7Click(Sender: TObject);
begin
IF Table3.State=dsBrowse THEN
Table3.Edit
end;
procedure TForm5.BitBtn8Click(Sender: TObject);
begin
IF Table3.State=dsBrowse THEN
IF MessageDlg( 'Вы действительно хотите удалить запись?', mtConfirmation,[mbYes, mbNo],0) = mrYes
THEN Table3.Delete;
end;
procedure TForm5.BitBtn9Click(Sender: TObject);
begin
IF Table3.State in [dsInsert,dsEdit] THEN
Table3.Post;
end;
procedure TForm5.BitBtn10Click(Sender: TObject);
begin
IF Table3.State in [dsInsert,dsEdit] THEN
Table3.Cancel;
end;
//чек ШТРАФА
procedure TForm5.BitBtn11Click(Sender: TObject);
begin
Form6.QuickRep2.Preview;
end;
//показать КЛИЕНТЫ
procedure TForm5.Button4Click(Sender: TObject);
begin
Form3.show;
end;
//показать ГЛАВНОЕ ОКНО
procedure TForm5.Button5Click(Sender: TObject);
begin
Form1.Show
end;
procedure TForm5.BitBtn12Click(Sender: TObject);
begin
if table4.State=dsBrowse then
table4.Insert;
end;
procedure TForm5.BitBtn13Click(Sender: TObject);
begin
IF Table4.State=dsBrowse THEN
Table4.Edit;
end;
procedure TForm5.BitBtn14Click(Sender: TObject);
begin
IF Table4.State=dsBrowse THEN
IF MessageDlg( 'Вы действительно хотите удалить запись?', mtConfirmation,[mbYes, mbNo],0) = mrYes
THEN Table4.Delete;
end;
procedure TForm5.BitBtn15Click(Sender: TObject);
begin
IF Table4.State in [dsInsert,dsEdit] THEN
Table4.Post;
end;
procedure TForm5.BitBtn16Click(Sender: TObject);
begin
IF Table4.State in [dsInsert,dsEdit] THEN
Table4.Cancel;
end;
//чек РЕЗЕРВА
procedure TForm5.BitBtn17Click(Sender: TObject);
begin
Form9.QuickRep1.Preview;
end;
//показать НАРУШИТЕЛИ
procedure TForm5.Button6Click(Sender: TObject);
begin
form4.show
end;
//показать ГЛАВНОЕ ОКНО
procedure TForm5.Button7Click(Sender: TObject);
begin
form1.Show
end;
//показать КЛИЕНТЫ
procedure TForm5.Button8Click(Sender: TObject);
begin
Form3.Show
end;
//показать ГЛАВНОЕ ОКНО
procedure TForm5.N2Click(Sender: TObject);
begin
Form5.Close;
Form1.Show;
end;
end.
Модуль "Чек штрафа"
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls, jpeg;
type
TForm6 = class(TForm)
QuickRep2: TQuickRep;
DetailBand1: TQRBand;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRLabel7: TQRLabel;
QRImage1: TQRImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit5;
{$R *.dfm}
procedure TForm6.FormCreate(Sender: TObject);
begin
// Связываем компоненты TQRDBText с набором данных
QRDBText1.DataSet:=Form5.Table3;
QRDBText2.DataSet:=Form5.Table3;
QRDBText3.DataSet:=Form5.Table3;
QRDBText4.DataSet:=Form5.Table3;
QRDBText5.DataSet:=Form5.Table3;
// Задаем компонентам TQRDBText соответствующие поля Базы Данных
QRDBText1.DataField:='Kod_kl';
QRDBText2.DataField:='FIO_k';
QRDBText3.DataField:='Kod_f';
QRDBText4.DataField:='Oplata';
QRDBText5.DataField:='FIO';
end;
end.
Модуль "Персональная карта"
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls, jpeg;
type
TForm7 = class(TForm)
QuickRep1: TQuickRep;
DetailBand1: TQRBand;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRSubDetail1: TQRSubDetail;
QRLabel7: TQRLabel;
QRImage1: TQRImage;
QRLabel6: TQRLabel;
QRLabel2: TQRLabel;
QRLabel5: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit3;
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
// Связываем компоненты TQRDBText с набором данных
QRDBText1.DataSet:=Form3.Table1;
QRDBText2.DataSet:=Form3.Table1;
QRDBText3.DataSet:=Form3.Table1;
QRDBText4.DataSet:=Form3.Table1;
QRDBText5.DataSet:=Form3.Table1;
// Задаем компонентам TQRDBText соответствующие поля Базы Данных
QRDBText1.DataField:='Kod_klienta';
QRDBText2.DataField:='FIO';
QRDBText3.DataField:='Address';
QRDBText4.DataField:='Telefon';
QRDBText5.DataField:='RegData';
end;
end.
Модуль "Чек заказа"
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls, jpeg;
type
TForm8 = class(TForm)
QuickRep1: TQuickRep;
DetailBand1: TQRBand;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRImage1: TQRImage;
QRLabel9: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRDBText7: TQRDBText;
QRDBText6: TQRDBText;
QRDBText5: TQRDBText;
QRDBText4: TQRDBText;
QRDBText3: TQRDBText;
QRDBText2: TQRDBText;
QRDBText1: TQRDBText;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
uses Unit5;
{$R *.dfm}
procedure TForm8.FormCreate(Sender: TObject);
begin
// Связываем компоненты TQRDBText с набором данных
QRDBText1.DataSet:=Form5.Query1;
QRDBText2.DataSet:=Form5.Query1;
QRDBText3.DataSet:=Form5.Query1;
QRDBText4.DataSet:=Form5.Query1;
QRDBText5.DataSet:=Form5.Query1;
QRDBText6.DataSet:=Form5.Query1;
QRDBText7.DataSet:=Form5.Query1;
// Задаем компонентам TQRDBText соответствующие поля Базы Данных
QRDBText1.DataField:='Name';
QRDBText2.DataField:='Klienta';
QRDBText3.DataField:='FIO';
QRDBText4.DataField:='Price';
QRDBText5.DataField:='Kolvo';
QRDBText6.DataField:='Sal';
QRDBText7.DataField:='Plata';
end;
end.
Модуль "Чек резерва"
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, QRCtrls, QuickRpt, ExtCtrls;
type
TForm9 = class(TForm)
QuickRep1: TQuickRep;
DetailBand1: TQRBand;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRLabel7: TQRLabel;
QRImage1: TQRImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses Unit5;
{$R *.dfm}
procedure TForm9.FormCreate(Sender: TObject);
begin
// Связываем компоненты TQRDBText с набором данных
QRDBText1.DataSet:=Form5.Table4;
QRDBText2.DataSet:=Form5.Table4;
QRDBText3.DataSet:=Form5.Table4;
QRDBText4.DataSet:=Form5.Table4;
QRDBText5.DataSet:=Form5.Table4;
// Задаем компонентам TQRDBText соответствующие поля Базы Данных
QRDBText1.DataField:='Kod_kl';
QRDBText2.DataField:='FIO_k';
QRDBText3.DataField:='Name';
QRDBText4.DataField:='Plata';
QRDBText5.DataField:='FIO';
end;
end.
Инструкция по работе с программой
Для добавления новой записи в таблицу необходимо нажать кнопку "добавить", далее введём значения, соответствующим полям, после ввода надо нажать кнопку "запомнить". Аналогично пользование кнопкой "редактировать", "удалить".
Для поиска введём в поле значение и нажмём кнопку "поиск", указатель должен переместиться на надпись с заданным значением.
Для добавления данных в чек необходимо нажать на кнопку "добавить", далее на надпись около поля, отроется соответствующее окно, на котором необходимо выбрать данные и воспользоваться кнопкой "добавить в чек заказа (резерва, штрафа)". После воспользоваться кнопкой "чек".
Для сортировки необходимо выбрать в списке поле, по которому будет осуществляться сортировка.
1
Документ
Категория
Рефераты
Просмотров
213
Размер файла
1 314 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа