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

Предметная область автоматизации

Содержание:

Введение

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

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

Цель работы – создать систему автоматизации учета в кинотеатре.

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

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

Предмет исследований – процесс автоматизации учета кинотеатра.

Объект исследований - компания «Люксор».

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

  • Дать характеристику предприятия и его деятельности;
  • Выбрать комплекс задач автоматизации;
  • Разработать бизнес-модель процессов, требующих автоматизации;
  • Разработать модель базы данных;
  • Выбрать средства разработки.

1 Предметная область автоматизации

1.1 Документы предметной области, содержащие информацию, необходимую для решения задачи

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

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

1.2 Описание предметной области и функции решаемой задачи

Рассмотрим основные характеристики предметной области. Кинотеатр входит в сеть кинотеатров «Люксор». Группа компаний «Люксор» – один из лидеров современного российского кинорынка, объединяет ряд компаний по основным направлениям: дистрибьюция, кинопрокат, развитие собственной кинотеатральной сети, производство анимационных фильмов.

Компания «Люксор» осуществляет полный цикл реализации кинофильмов на территории России и стран СНГ. В течение многих лет является постоянным участником крупнейших мировых кинорынков.

Партнерами компании являются ведущие голливудские и европейские студии, среди которых: «Lakeshore International», «IM Global»,«Wild Bunch», «Gaumont», «Constantin Film», «Nu Image», «Studio Canal» и другие.

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

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

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

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

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

Рисунок 1 – Организационная диаграмма

1.2.1 Описание модели AS-IS

Рассмотрим текущую, не автоматизированную продажу билетов, представленную моделью AS-IS. Модель показывает, что при продаже билетов кассир узнает об их оставшемся количестве у менеджера по продажам и затем продает оставшиеся билеты, учитывая вместимость зала.

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

Рисунок 2 - Диаграмма AS-IS

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

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

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

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

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

• Простотой реализации;

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

1.2.2 Выводы по автоматизации и реорганизации

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

  1. Высокие требования к руководителю, который должен иметь багаж всесторонних знаний, необходимых для управления компанией. Остановимся на этой проблеме управления компанией более подробно. Управление компанией на уровне генерального директора предполагает решение вопросов по позиционированию на рынке реализуемого продукта или услуги, уменьшение затрат на закупку и реализацию, подбор нужных кадров, т.е. объем знаний и умений, в котором сложно быть компетентным одному человеку.
  2. Линейная структура лишена необходимых промежуточных звеньев по планированию и подготовке решений, что приводит к отсутствию видения ближайшей перспективы развития компании и негативно отражается на ее будущей конкурентоспособности.
  3. Средние уровни управления компанией перегружены лишней организационной информацией, что мешает им решать на должном уровне конкретные необходимые для развития компании задачи.
  4. Излишняя перегруженность средних уровней ослабляет связи между ними, что влияет на качество принимаемых на этих уровнях управленческих решений.
  5. Так как общее управление компанией организовано по линейному принципу, при отсутствии одного из ключевых руководителей нарушается работа как одного из звеньев компании, так и всей компании целиком. Это способствует дополнительным рискам в работе компании и делает ее менее конкурентоспособной. Ещё одним недостатком в управлении компанией является программная автономия ее отдельных подразделений, занимающихся реализацией билетов.

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

1.2.3 Описание расширенной модели TO-BE, полученной после проектирования

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

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

Рисунок 3 – Диаграмма TO-BE

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

Рисунок 4 – Декомпозиция операции

Поставим задачу на проектирование системы.

2 Постановка задачи:

2.1 Организационно-экономическая сущность задачи

Существует четыре варианта стратегии автоматизации: кусочная (хаотичная) автоматизация, автоматизация по участкам, автоматизация по направлениям и комплексная автоматизация.

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

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

Автоматизация по направлениям подразумевает под собой автоматизацию отдельных направлений деятельности предприятия [2, с.11].

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

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

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

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

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

№ п/п

Программный продукт

Стоимость 1 лицензии (руб)

Всего

1

Millenium ERP

Условно бесплатная

-

2

Global

32249,32

451490,48

3

Alfa

87500

1225000

4

1С Предприятие

92700 (с серверной лицензией)

174600

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

2.2 Описание выходной информации

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

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

  • отчет по продажам;
  • отчет по сеансам;
  • отчет по возвратам.

2.3 Описание входной информации

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

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

  • Фильмы;
  • Сеансы;
  • Билеты.

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

  • Список сеансов;
  • Список ID билетов;
  • Статистика.

3 Информационное обеспечение задачи

3.1 Информационный анализ предметной области и выделение информационных объектов задачи

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

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

Взаимодействие информационных объектов показано на рисунке.

Рисунок 5 – Взаимодействие объектов

3.2 Определение логической структуры реляционной базы данных (ERD-модель)

Ниже представлена ER диаграмма базы данных информационной системы.

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

Рисунок 6 – ER диаграмма

Таблица 1. -Описание таблиц базы данных

Наименование таблицы

Поле

Тип

Первичный ключ

Внешний ключ

Расписание

RaspID

Number(10)

Да

Нет

Day

Text(10)

Нет

Нет

Time1

Date

Нет

Нет

Time2

Date

Нет

Нет

Time3

Date

Нет

Нет

Time4

Date

Нет

Нет

Time5

Date

Нет

Нет

Tickets

id

Number(10)

Да

Нет

TDate

Long Integer

Нет

Нет

TID

Long Integer

Нет

Нет

TCost

Long Integer

Нет

Нет

TPlace

AutoNumber

Нет

Нет

TTime

AutoNumber

Нет

Нет

Tablica1

FilmID

Number(10)

Да

Нет

Title

Long Integer

Нет

Нет

Description

Long Integer

Нет

Нет

SCost

Number(10)

Да

Нет

Rating

Long Integer

Нет

Нет

Gantre

Long Integer

Нет

Нет

Подробно рассмотрим программную архитектуру системы.

4 Архитектура системы

4.1 Структурная схема программы

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

Таблица 2 - Описание функций модулей

№ п/п

Наименование модуля

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

Модуль Unit5

Описывает выбор фильма

Модуль Unit4

Описывает процедуру выбора основных форм

Модуль Unit3

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

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

5 Детальные алгоритмы реализации отдельных модулей задачи

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

Рисунок 7. – Основной программный модуль

Модуль позволяет пользователю выбрать дату и сеанс, отследить покупку билета и его возврат, редактировать статистику на определенную дату.

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

Рисунок 8.- Функции возврата билетов

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

6 Интерфейс системы

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

Рисунок 9. - Окно просмотра сеансов

После выбора сеанса происходит заказ билета.

Рисунок 10.- Заказ билета

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

Рисунок 11. – Покупка билета

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

Рисунок 12. – Возврат билета

Кнопка «Статистика» выводит возможную статистику по продажам билетов и их возвратам с учетом периода продаж

Рисунок 13. - Статистика

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

7 Технология решения задачи (функционально-технологические схемы)

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

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

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

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

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

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

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

Модуль должен возвращать управление тому модулю, который его вызвал.

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

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

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

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

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

Наиболее широко распространенным подходом к проектированию является нисходящее программирование.

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

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

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

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

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

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

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

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

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

Разработка проекта автоматизации риэлтерской деятельности

Рисунок 14. - Функционально-технологическая схема задачи А1 «Ведение справочников»

Для каждого выделенного модуля разработана функционально-технологическая схема и детальный алгоритм ее кодирования. Блок-схема задачи А1 приведена на рисунке 14, а функционально-технологические схемы всех модулей задачи А1 – на рисунке 15.

Разработка проекта автоматизации риэлтерской деятельности

Рисунок 15. - Схема решения задачи А1 «Ведение справочников»

Разработка проекта автоматизации риэлтерской деятельности

Рисунок 16. - Функционально-технологические схемы модулей задачи А1

8 Руководство пользователя

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

Рисунок 17 – Руководство пользователя

Заключение

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

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

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

Список используемых источников

  1. Поль М. Дюваль, Стивен Матиас, Эндрю Гловер. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска/ Поль М. Дюваль, Стивен Матиас – М.Вильямс, 2017 – 240 с.
  2. Прамодкумар Дж. Садаладж, Мартин Фаулер. NoSQL. Новая методология разработки нереляционных баз данных/ Дмитрий Клюшин – М.Вильямс, 2017 -192 с.
  3. Бен Форта. Освой самостоятельно SQL за 10 минут/ В. Гинзбург –М.Вильямс, 2017 -288 с.
  4. К. Дж. Дэйт. Введение в системы баз данных/ К. Дж. Дэйт –М.Вильямс.,2017 -1328 с.
  5. Джефф Карпентер, Эбен Хьюитт/ А. Слинкин – М.ДМК Пресс, 2017 -400 с.
  6. Дэви Силен, Арно Мейсман, Мохамед Али. Основы Data Science и Big Data. Python и наука о данных/ Дэви Силен, Арно Мейсман – СПб. Питер, 2017 – 336 с.
  7. Максим Бабенко, Михаил Левин. Введение в теорию алгоритмов и структур данных/ Максим Бабенко, Михаил Левин – М. МЦНМО., 2017 – 144 с.
  8. Томас Коннолли, Каролин Бегг. Базы данных. Проектирование, реализация и сопровождение. Теория и практика./ Томас Коннолли, Каролин Бегг – М. Вильямс, 2017 – 1440 с.
  9. Джоэл Грас. Data Science. Наука о данных с нуля./ Андрей Логунов.-СПб., БХВ-Петербург,2017 – 336 с.
  10. Скотт Амблер, Прамодкумар Дж. Садаладж. Рефакторинг баз данных. Эволюционное проектирование/ Константин Птицын –М. Вильямс, 2016 -368 с.

Приложение

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

unit Unit5;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.DBCtrls,

Vcl.ExtCtrls;

type

TForm5 = class(TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DateTimePicker1: TDateTimePicker;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Memo1: TMemo;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Timer1: TTimer;

procedure Button1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

uses Unit2, Unit4, Unit3;

procedure TForm5.Button1Click(Sender: TObject);

var Name:TStrings;

i,n:integer;

begin

Name:=TStringList.Create;

Form2.ADOQuery1.Active :=False;

Form2.ADOQuery1.SQL.Clear;

Form2.ADOQuery1.SQL.Add('SELECT Title FROM Tablica1');

Form2.ADOQuery1.Active:=True;

n:=Form2.ADOQuery1.RecordCount-1;

for i:=0 to n do begin Name.Add(Form2.ADOQuery1.FieldByName('Title').AsString); Form2.ADOQuery1.Next; end;

ComboBox1.Items:=Name;

end;

procedure TForm5.Timer1Timer(Sender: TObject);

begin

Label4.Caption:='Фильм Выбран: '+ComboBox1.Text;

Label5.Caption:='Дата Выбрана: '+FormatDateTime('dd/mm/yyyy', DateTimePicker1.Date);

Label6.Caption:='Время: ';

end;

end.

unit Unit4;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.DBCtrls, Vcl.Mask;

type

TForm4 = class(TForm)

Button1: TButton;

Button2: TButton;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBMemo1: TDBMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

uses Unit2, Unit3, Unit5;

procedure TForm4.Button1Click(Sender: TObject);

begin

Form2.ADOQuery1.Post;

close;

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

Form2.ADOQuery1.Cancel;

close;

end;

end.

unit Unit3;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids,

Data.Win.ADODB, Vcl.StdCtrls, Vcl.ExtCtrls;

type

TForm3 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label1: TLabel;

Button4: TButton;

Button5: TButton;

Label2: TLabel;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Label3: TLabel;

Memo1: TMemo;

DBGrid1: TDBGrid;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label4: TLabel;

Button9: TButton;

Timer1: TTimer;

Label5: TLabel;

Button10: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

uses Unit2, Unit4, Unit5;

procedure TForm3.Button10Click(Sender: TObject);

begin

Label5.Caption:='Загружена таблица: Tickets';

//SELECT Rasp.Day,Rasp.Time1,Rasp.Time2,Rasp.Time3,Rasp.Time4,Rasp.Time5 FROM Rasp left JOIN Tablica1 ON Tablica1.FilmID=Rasp.Time1

Form4.DBEdit1.DataField:='';

Form4.DBEdit2.DataField:='';

Form4.DBEdit3.DataField:='';

Form4.DBEdit4.DataField:='';

Form4.DBMemo1.DataField:='';

Form2.ADOQuery1.Active :=False;

Form2.ADOQuery1.SQL.Clear;

//Form2.ADOQuery1.SQL.Add('(SELECT Rasp.Day FROM Rasp) UNION ');

Form2.ADOQuery1.SQL.Add('SELECT * FROM Tickets');

//Form2.ADOQuery1.SQL.Add(' UNION (SELECT Tablica1.Title as Time2 From Rasp FULL INNER JOIN Tablica1 ON Tablica1.FilmID=Rasp.Time2)');

Form2.ADOQuery1.Active:=True;

Button3.Enabled:=False;

Button5.Enabled:=False;

Button4.Enabled:=False;

Button6.Enabled:=True;

Button7.Enabled:=True;

Button8.Enabled:=True;

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

Label5.Caption:='Загружена таблица: Фильмы';

Form4.DBEdit1.DataField:='';

Form4.DBEdit2.DataField:='';

Form4.DBEdit3.DataField:='';

Form4.DBEdit4.DataField:='';

Form4.DBMemo1.DataField:='';

Form2.ADOQuery1.Active :=False;

Form2.ADOQuery1.SQL.Clear;

Form2.ADOQuery1.SQL.Add('SELECT * FROM Tablica1');

Form2.ADOQuery1.Active:=True;

Form4.DBEdit1.DataField:='Title';

Form4.DBEdit2.DataField:='Genre';

Form4.DBEdit3.DataField:='Rating';

Form4.DBEdit4.DataField:='SCost';

Form4.DBMemo1.DataField:='Description';

Button3.Enabled:=True;

Button5.Enabled:=True;

Button4.Enabled:=True;

Button6.Enabled:=False;

Button7.Enabled:=False;

Button8.Enabled:=False;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

Label5.Caption:='Загружена таблица: Расписание';

//SELECT Rasp.Day,Rasp.Time1,Rasp.Time2,Rasp.Time3,Rasp.Time4,Rasp.Time5 FROM Rasp left JOIN Tablica1 ON Tablica1.FilmID=Rasp.Time1

Form4.DBEdit1.DataField:='';

Form4.DBEdit2.DataField:='';

Form4.DBEdit3.DataField:='';

Form4.DBEdit4.DataField:='';

Form4.DBMemo1.DataField:='';

Form2.ADOQuery1.Active :=False;

Form2.ADOQuery1.SQL.Clear;

//Form2.ADOQuery1.SQL.Add('(SELECT Rasp.Day FROM Rasp) UNION ');

Form2.ADOQuery1.SQL.Add('SELECT * FROM Rasp');

//Form2.ADOQuery1.SQL.Add(' UNION (SELECT Tablica1.Title as Time2 From Rasp FULL INNER JOIN Tablica1 ON Tablica1.FilmID=Rasp.Time2)');

Form2.ADOQuery1.Active:=True;

Button3.Enabled:=False;

Button5.Enabled:=False;

Button4.Enabled:=False;

Button6.Enabled:=True;

Button7.Enabled:=True;

Button8.Enabled:=True;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

Form2.ADOQuery1.Insert;

Form4.Show;

end;

procedure TForm3.Button4Click(Sender: TObject);

begin

Form2.ADOQuery1.Delete;

end;

procedure TForm3.Button5Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm3.Button6Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm3.Button9Click(Sender: TObject);

begin

Form2.ADOQuery1.Insert;

Form2.ADOQuery1.Active :=False;

Form2.ADOQuery1.SQL.Clear;

Form2.ADOQuery1.SQL.Add(''+Memo1.Text);

Form2.ADOQuery1.Active:=True;

end;

procedure TForm3.Timer1Timer(Sender: TObject);

begin

if RadioButton1.Checked then begin

Button9.Enabled:=True;

Memo1.Enabled:=True;

end

else begin

Button9.Enabled:=False;

Memo1.Enabled:=False; end

end;

end.