Автоматизация работы кинотеатра

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

Моя курсовая работа предназначена для кинотеатра.

После проведения анализа, были выявлены следующие задачи:

  • расписание сеансов;
  • оплата мест;
  • выдача различных отчетов.

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

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

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

1 ОБЩИЙ РАЗДЕЛ

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

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

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

Функции, которые реализованы в данной задаче:

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

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

  • дату сеанса;
  • название фильма;
  • начало сеанса.

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

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

Поставленная задача курсовой работы: работа кинотеатров.

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

Требуется создать в среде Delphi приложение. База данных состоит из нескольких таблиц. Таблицы необходимо создать и хранить в офисном приложении Access 2003. Отношение между таблицами «один ко многим».

4 стр., 1556 слов

Применение базы данных для хранения и обработки экономической информации

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

Перечень задач для реализации:

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

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

  • полнота;
  • достоверность;
  • актуальность;
  • эффективность;
  • оперативность;
  • удобный интерфейс.

1.3 Разработка информационного обеспечения задачи

1.3.1 Структурный анализ с помощью диаграмм SADT

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

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

Результатом применения метода SADT является модель, которая

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

Нулевой уровень

Здесь представлена общая работа кинотеатра.

Входная информация:

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

Выходная информация:

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

Управляющие сигналы:

  • законы;
  • устав предприятия.

Механизмы:

  • кассир.

Первый уровень

Основные функции:

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

Входная информация:

  • информация о фильме;
  • количество билетов.

Выходная информация:

  • стоимость билетов.

Управляющие сигналы:

  • законы;
  • устав предприятия.

Механизмы:

  • кассир.

2) учет проданных билетов:

Входная информация:

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

Выходная информация:

  • отчетная информация.

Управляющие сигналы:

  • законы;
  • устав предприятия.

Механизмы:

  • кассир.

3) наименование отчета:

Входная информация:

  • отчетная информация.

Выходная информация:

16 стр., 7917 слов

Автоматизация на предприятии

... и технологии обработки информации [3]. Разрабатывая средство автоматизации, следует чётко определить цели создания системы, - считает В. Богданов [2]. Целью автоматизации предприятия является повышение производительности ... · выявление из множества систем, системы с поддержкой открытых стандартов обмена данными и «богатыми» средствами разработки прикладных решений; · заострение внимания на основных ...

  • отчеты;
  • доход.

Управляющие сигналы:

  • законы;
  • устав предприятия.

Механизмы:

  • кассир.

Второй уровень

На втором уровне подробно рассматривается один из этапов первого уровня. Этап выбирается произвольно. Я рассматриваю этап работа с клиентами по заказу.

Основные функции:

1) Заказ билета

Входная информация:

  • информация о фильме;
  • выбор места в зале;
  • выбор времени сеанса;
  • список фильмов.

Выходная информация:

  • заказ;

Управляющие сигналы:

  • законы;
  • устав предприятия.

Механизмы:

  • кассир.

2) оформление заказа

Входная информация:

  • ответ на заказ;

Выходная информация:

  • отчет для расчета.

Управляющие сигналы:

  • устав предприятия;
  • законы;

Механизмы:

  • кассир.

3) денежный расчет

Входная информация:

  • отчет для расчета.

Выходная информация:

  • отчеты.
  • доход

Управляющие сигналы:

  • устав предприятия;
  • законы;

Механизмы:

  • кассир.

Эта программа в дальнейшем поможет в создании программы и будет служить ее эскизом.

1.3.2 Построение диаграмм «сущность-связь»

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

Основное назначение диаграмм «сущность — связь» — это семантическое описание предметной области.

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

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

В диаграмме «сущность-связь» указываются:

  • первичный ключ;
  • внешний ключ;
  • тип поля;
  • длина поля;
  • задаются идентификаторы полей;
  • описание полей.

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

  • films (афиша);
  • pay (оплата);
  • places (кинозал);
  • prices (прайс);
  • sess (Сеанс).

(см. Приложение 2)

2. СПЕЦИАЛЬНЫЙ РАЗДЕЛ

2.1 Описание полей таблицы

Таблица №1 Таблица films содержит информацию о доступных фильмах в кинотеатре в настоящее время.

Имя поля

Тип данных

Ключ

Код (kod)

Текстовый

*

Название (name)

Текстовый

Время (time)

Числовой

Жанр (zhanr)

Текстовый

Таблица №2 Таблица pay содержит информацию о проданных билетах

Имя поля

Тип данных

Ключ

kod

Счетчик

*

tp

Текстовый

sess_kod

Числовой

place_places

Числовой

row_places

Числовой

date_sess

Дата/Время

Таблица №3 Таблица places хранит информацию о всех местах зала кинотеатра.

Имя поля

Тип данных

Ключ

count_places

Счетчик

*

row

Числовой

place

Числовой

price_kod

Текстовый

Таблица №4 Таблица prices содержит информацию о стоимости билета в в зависимости от вида сеанса и категории мест в зале кинотеатра.

Имя поля

Тип данных

Ключ

kod

Текстовый

*

tip

Текстовый

price

Числовой

what

Текстовый

tab_sort

Числовой

Таблица №5 Таблица sess содержит расписание фильмов.

Имя поля

Тип данных

Ключ

for_ind

Счетчик

*

nom

Числовой

time_start

Дата/время

date

Дата/время

films_kod

Текстовый

price_cod

Текстовый

2.2 Программная реализация модели объектно — ориентированного языка программирования

Данное программное изделие разработано на языке программирования Delphi 6.0 с использованием СУБД Access. Данное СУБД позволяет быстро и качественно проектировать и создавать БД. Пакет Access совместно с включёнными в него дополнительными параметрами представляет разработчику большой объём возможностей по созданию базы данных. Интерфейс СУБД Access представляет собой более удобный интерфейс, нежели другие СУБД, что предоставляет более широкие возможности для быстрого и качественного проектирования базы данных.

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

Для установки связи с ADO (ADOConnection или ADOTable) у этого компонента необходимо задать свойство Connection String, которое определяет провайдер и расположение базы данных.

Далее для установки связи необходимо выбрать один из вариантов установки связи:

1) используя возможность операционной системы из контекстного меню выбрать:

  • создать;
  • Microsoft Data Link;
  • контекстное меню файла;
  • свойства (где определяется провайдер и место положение базы данных)

2) используемый в курсовой работе:

  • нажать кнопку Build;
  • выбрать поставщика данных Microsoft Jet 4.0 OLE DB Provider;
  • на вкладке Подключение выбрать имя базы данных;
  • проверить правильность подключения через кнопку Проверить подключение;
  • настроить свойства объектов для связи с ADOConnection1:
  • ADOQuery1.Connection:=ADOConnection1;
  • DataSource1.DataSet:=ADOQuery1;
  • ADOQuery1.SQL:= (TStrings);

select *

from films

ADOTable1.Active:=true;

  • DBGrid1.DataSource:=DataSource1;

Рисунок 1 — Окно настройки связи объекта ADOConnection через строку соединения

Рисунок 2 — Окно настройки свойств связи объекта ADOConnection через строку

2.3 Организация пользовательского интерфейса

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

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

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

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

2. Фильмы — меню, где вводятся данные о новом фильме.

3. Места и расценки — меню, где вводятся расценки на отдельные места в зале.

4. Расписание сеансов — меню, расписания сеансов.

5. Оплата мест — меню покупки билетов.

6. Места на сеанс — показывает места в зале.

7. Заказ — оформление услуг предоставляемых клиенту.

8. Выручка — показывает выручку за определенное время.

После запуска программы на экране появляется главное меню.

Рисунок 3 — Главная форма

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

  • формы:
  • кодификатор;
  • расписание;
  • оплата мест.
  • отчеты:

места на сеанс

выручка.

ЗАКЛЮЧЕНИЕ

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

Представленная программа обладает следующими характеристиками:

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

— В ходе разработки курсовой работы был произведен детальный анализ объекта и запущенна программное обеспечение на основе программно ориентированной среды разработки приложений Delphi6, в качестве СУБД было использовано офисное приложение Microsoft Access 2003.

В процессе разработки СУБД был использован уклон на реляционный подход .

СПИСОК ЛИТЕРАТУРЫ

[Электронный ресурс]//URL: https://drprom.ru/kursovaya/avtomatizatsiya-rabotyi-kinoteatra-kursovaya/

1) Архангельский А.Я. Программирование в Delphi 6 — М.: ЗАО «Издательство БИНОМ», 2001 г. — 1120 с.: ил.

2) Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. — М.: Финансы и статистика, 1989. — 351 с.

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

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

5) Фокс Дж. Программное обеспечение и его разработка / Пер. с англ. — М.: Мир, 1985. — 368 с., ил.

6) Мейер М. Теория реляционных баз данных. — М.: Мир, 1987. — 608 с.

ПРИЛОЖЕНИЯ

Приложение 1.

SADT-ДИАГРАММА

Рисунок 4 — Нулевой уровень

Рисунок 5 — Первый уровень

Рисунок 6 — Второй уровень

Приложение 2.

ДИАГРАММА «СУЩНОСТЬ-СВЯЗЬ»

Рисунок 7 — Диаграмма «сущность-связь»

Приложение 3.

ЛИСТИНГ ПРОГРАММЫ

program Project1;

uses

Forms,

Unit1 in ‘Unit1.pas’ {Form1},

Unit2 in ‘Unit2.pas’ {Form2},

Unit3 in ‘Unit3.pas’ {Form3},

Unit4 in ‘Unit4.pas’ {Form4},

Unit5 in ‘Unit5.pas’ {Form5},

Unit6 in ‘Unit6.pas’ {Form6},

Unit7 in ‘Unit7.pas’ {Form7},

Unit8 in ‘Unit8.pas’ {Form8},

Unit11 in ‘Unit11.pas’ {Form11},

Unit12 in ‘Unit12.pas’ {Form12},

Unit13 in ‘Unit13.pas’ {Form13},

Unit14 in ‘Unit14.pas’ {Form14},

Unit15 in ‘Unit15.pas’ {QuickReport15: TQuickRep},

Unit16 in ‘Unit16.pas’ {Form16},

Unit17 in ‘Unit17.pas’ {QuickReport17: TQuickRep},

Unit9 in ‘Unit9.pas’ {Form9},

Unit10 in ‘Unit10.pas’ {QuickReport10: TQuickRep};

  • {$R *.res}

begin

Application.Initialize;

  • Application.CreateForm(TForm1, Form1);
  • Application.CreateForm(TForm2, Form2);
  • Application.CreateForm(TForm3, Form3);
  • Application.CreateForm(TForm4, Form4);
  • Application.CreateForm(TForm5, Form5);
  • Application.CreateForm(TForm6, Form6);
  • Application.CreateForm(TForm7, Form7);
  • Application.CreateForm(TForm8, Form8);
  • Application.CreateForm(TForm11, Form11);
  • Application.CreateForm(TForm12, Form12);
  • Application.CreateForm(TForm13, Form13);
  • Application.CreateForm(TForm14, Form14);
  • Application.CreateForm(TQuickReport15, QuickReport15);
  • Application.CreateForm(TForm16, Form16);
  • Application.CreateForm(TQuickReport17, QuickReport17);
  • Application.CreateForm(TForm9, Form9);
  • Application.CreateForm(TQuickReport10, QuickReport10);
  • Application.Run;
  • end.

unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, StdCtrls, Mask,

Menus, jpeg;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

  • N1: TMenuItem;
  • N2: TMenuItem;
  • N3: TMenuItem;
  • N4: TMenuItem;
  • N5: TMenuItem;
  • N6: TMenuItem;
  • N7: TMenuItem;
  • N8: TMenuItem;
  • N9: TMenuItem;
  • N11: TMenuItem;
  • N10: TMenuItem;
  • N12: TMenuItem;
  • N13: TMenuItem;
  • N14: TMenuItem;
  • N15: TMenuItem;
  • N16: TMenuItem;
  • N17: TMenuItem;
  • N18: TMenuItem;
  • Image1: TImage;
  • N19: TMenuItem;
  • N20: TMenuItem;
  • procedure N3Click(Sender: TObject);
  • procedure N2Click(Sender: TObject);
  • procedure N10Click(Sender: TObject);
  • procedure N4Click(Sender: TObject);
  • procedure N5Click(Sender: TObject);
  • procedure N6Click(Sender: TObject);
  • procedure N7Click(Sender: TObject);
  • procedure N8Click(Sender: TObject);
  • procedure N13Click(Sender: TObject);
  • procedure N14Click(Sender: TObject);
  • procedure N15Click(Sender: TObject);
  • procedure N17Click(Sender: TObject);
  • procedure N18Click(Sender: TObject);
  • procedure N11Click(Sender: TObject);
  • procedure N19Click(Sender: TObject);
  • procedure N20Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

  • i:Boolean;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit11,

Unit12, Unit13, Unit14, Unit16, Unit10;

  • {$R *.dfm}

procedure TForm1.N3Click(Sender: TObject);

begin

Form3.Visible:=true;

  • end;
  • procedure TForm1.N2Click(Sender: TObject);

begin

Form2.Visible:=true;

  • end;
  • procedure TForm1.N10Click(Sender: TObject);

begin

if MessageDlg(‘Вы действительно закрываете программу?’,mtInformation,[mbYes,mbNo],0)=mrYes then

begin

MessageDlg(‘Работа приложения закончена’,mtInformation,[mbOk],0);

  • Close;
  • end;
  • end;
  • procedure TForm1.N4Click(Sender: TObject);

begin

Form4.Visible:=true;

  • end;
  • procedure TForm1.N5Click(Sender: TObject);

begin

Form5.Visible:=true;

  • end;
  • procedure TForm1.N6Click(Sender: TObject);

begin

Form6.Visible:=true;

  • end;
  • procedure TForm1.N7Click(Sender: TObject);

begin

Form7.Visible:=true;

  • end;
  • procedure TForm1.N8Click(Sender: TObject);

begin

Form8.Visible:=true;

  • end;
  • procedure TForm1.N13Click(Sender: TObject);

begin

ShowMessage(‘Сегодня ‘+DateToStr(Date));

  • end;
  • procedure TForm1.N14Click(Sender: TObject);

begin

ShowMessage(‘Сейчас ‘+TimeToStr(Time));

  • end;
  • procedure TForm1.N15Click(Sender: TObject);

begin

Form11.Visible:=true;

  • end;
  • procedure TForm1.N17Click(Sender: TObject);

begin

Form12.ShowModal;

  • end;
  • procedure TForm1.N18Click(Sender: TObject);

begin

Form13.ShowModal;

  • end;
  • procedure TForm1.N11Click(Sender: TObject);

begin

Form14.Visible:=true;

  • end;
  • procedure TForm1.N19Click(Sender: TObject);

begin

Form16.Visible:=true;

  • end;
  • procedure TForm1.N20Click(Sender: TObject);

begin

Form9.Visible:=true;

  • end;
  • end.

unit Unit2;

interface

uses

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

Dialogs, DBCtrls, StdCtrls, Mask, Grids, DBGrids, DB, ADODB, ExtCtrls,

jpeg;

type

TForm2 = class(TForm)

DBGrid1: TDBGrid;

  • DBNavigator1: TDBNavigator;
  • DBEdit1: TDBEdit;
  • DBEdit2: TDBEdit;
  • DBEdit3: TDBEdit;
  • DBEdit4: TDBEdit;
  • DBEdit5: TDBEdit;
  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • Label1: TLabel;
  • Label2: TLabel;
  • Label3: TLabel;
  • Label4: TLabel;
  • Label5: TLabel;
  • Button1: TButton;
  • DBGrid2: TDBGrid;
  • DataSource2: TDataSource;
  • ADOQuery2: TADOQuery;
  • ADOQuery2_: TAutoIncField;
  • ADOQuery2DSDesigner: TWideStringField;
  • ADOQuery2DSDesigner2: TWideStringField;
  • ADOQuery2DSDesigner3: TWideStringField;
  • ADOQuery2DSDesigner4: TWideStringField;
  • ADOQuery2DSDesigner5: TIntegerField;
  • Edit1: TEdit;
  • Image1: TImage;
  • Label6: TLabel;
  • Label7: TLabel;
  • Label8: TLabel;
  • Label9: TLabel;
  • Label10: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);
  • procedure Button1Click(Sender: TObject);
  • procedure ADOQuery2FilterRecord(DataSet: TDataSet;
  • var Accept: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

form2.DBEdit1.SetFocus();

  • end;
  • procedure TForm2.Button1Click(Sender: TObject);

begin

ADOQuery2.Filtered:=true;

  • end;
  • procedure TForm2.ADOQuery2FilterRecord(DataSet: TDataSet;
  • var Accept: Boolean);

begin

Accept:=DataSet[‘Фамилия’]=Form2.Edit1.Text;

  • end;
  • end.

unit Unit3;

interface

uses

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

Dialogs, DB, ADODB, DBCtrls, StdCtrls, Mask, Grids, DBGrids, ExtCtrls,

jpeg;

type

TForm3 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DBGrid1: TDBGrid;
  • DBNavigator1: TDBNavigator;
  • DBEdit1: TDBEdit;
  • DataSource1: TDataSource;
  • Image1: TImage;
  • Label1: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

Form3.DBEdit1.SetFocus();

  • end;
  • end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB,

jpeg;

type

TForm4 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • DBGrid1: TDBGrid;
  • DBNavigator1: TDBNavigator;
  • DBEdit1: TDBEdit;
  • DBEdit2: TDBEdit;
  • Label1: TLabel;
  • Label2: TLabel;
  • RadioGroup1: TRadioGroup;
  • Edit1: TEdit;
  • Image1: TImage;
  • Label3: TLabel;
  • Label4: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);
  • procedure RadioGroup1Click(Sender: TObject);
  • procedure ADOQuery1FilterRecord(DataSet: TDataSet;
  • var Accept: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

  • pole: variant;

implementation

{$R *.dfm}

procedure TForm4.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

Form4.DBEdit1.SetFocus();

  • end;
  • procedure TForm4.RadioGroup1Click(Sender: TObject);

begin

ADOQuery1.Filtered:=false;

  • Case Form4.RadioGroup1.ItemIndex of

1:begin

pole:=’Название’;

  • ADOQuery1.Filtered:=true;
  • end;

2:begin

pole:=’Цена’;

  • ADOQuery1.Filtered:=true;
  • end;
  • end;
  • end;
  • procedure TForm4.ADOQuery1FilterRecord(DataSet: TDataSet;
  • var Accept: Boolean);

begin

Accept:=DataSet[pole]=Form4.Edit1.Text;

  • end;
  • end.

unit Unit5;

interface

uses

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

Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, DBCtrls, Mask, ExtCtrls,

jpeg;

type

TForm5 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • DBNavigator1: TDBNavigator;
  • DBEdit1: TDBEdit;
  • DBEdit2: TDBEdit;
  • DBLookupComboBox1: TDBLookupComboBox;
  • Label1: TLabel;
  • Label2: TLabel;
  • ADOQuery2: TADOQuery;
  • DataSource2: TDataSource;
  • DBGrid1: TDBGrid;
  • Label3: TLabel;
  • Image1: TImage;
  • Label4: TLabel;
  • Label5: TLabel;
  • Label6: TLabel;
  • ADOQuery1__: TAutoIncField;
  • ADOQuery1DSDesigner: TDateTimeField;
  • ADOQuery1_: TIntegerField;
  • ADOQuery1DSDesigner2: TDateTimeField;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

Form5.DBEdit1.SetFocus();

  • end;
  • end.

unit Unit6;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, Grids, DBGrids, ADODB,

jpeg;

type

TForm6 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DBGrid1: TDBGrid;
  • DataSource1: TDataSource;
  • DBEdit1: TDBEdit;
  • DBEdit2: TDBEdit;
  • DBEdit3: TDBEdit;
  • DBEdit4: TDBEdit;
  • Label1: TLabel;
  • Label2: TLabel;
  • Label3: TLabel;
  • Label4: TLabel;
  • DBNavigator1: TDBNavigator;
  • Button1: TButton;
  • Edit1: TEdit;
  • Image1: TImage;
  • Label5: TLabel;
  • Label6: TLabel;
  • Label7: TLabel;
  • Label8: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);
  • procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

Form6.DBEdit1.SetFocus();

  • end;
  • procedure TForm6.Button1Click(Sender: TObject);

begin

With ADOQuery1 do begin

first;

  • While Locate(‘Название’,(Edit1.Text),[]) do

delete;

  • end;
  • end;
  • end.

unit Unit7;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, Grids, DBGrids, DB, ADODB,

jpeg;

type

TForm7 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • DBGrid1: TDBGrid;
  • DBEdit1: TDBEdit;
  • Label1: TLabel;
  • DBNavigator1: TDBNavigator;
  • Label2: TLabel;
  • Label3: TLabel;
  • DBLookupComboBox1: TDBLookupComboBox;
  • DBLookupComboBox2: TDBLookupComboBox;
  • ADOQuery2: TADOQuery;
  • ADOQuery3: TADOQuery;
  • DataSource2: TDataSource;
  • DataSource3: TDataSource;
  • Image1: TImage;
  • Label4: TLabel;
  • Label5: TLabel;
  • Label6: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

Form7.DBEdit1.SetFocus();

  • end;
  • end.

unit Unit8;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, StdCtrls, Mask,

jpeg;

type

TForm8 = class(TForm)

ADOConnection1: TADOConnection;

  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • DBGrid1: TDBGrid;
  • DBNavigator1: TDBNavigator;
  • DBLookupComboBox1: TDBLookupComboBox;
  • DBLookupComboBox3: TDBLookupComboBox;
  • Label1: TLabel;
  • Label2: TLabel;
  • Label3: TLabel;
  • DBEdit1: TDBEdit;
  • Label4: TLabel;
  • ADOQuery2: TADOQuery;
  • ADOQuery3: TADOQuery;
  • ADOQuery4: TADOQuery;
  • DataSource2: TDataSource;
  • DataSource3: TDataSource;
  • DataSource4: TDataSource;
  • DBLookupComboBox2: TDBLookupComboBox;
  • Image1: TImage;
  • Label5: TLabel;
  • Label6: TLabel;
  • Label7: TLabel;
  • Label8: TLabel;
  • procedure ADOQuery1BeforeInsert(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

{$R *.dfm}

procedure TForm8.ADOQuery1BeforeInsert(DataSet: TDataSet);

begin

form8.DBLookupComboBox1.SetFocus();

  • end;
  • end.

unit Unit9;

interface

uses

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

Dialogs, StdCtrls, DdeMan,comobj, DB, ADODB;

type

TForm9 = class(TForm)

RadioButton1: TRadioButton;

  • RadioButton2: TRadioButton;
  • Button1: TButton;
  • Label1: TLabel;
  • ADOQuery1: TADOQuery;
  • ADOConnection1: TADOConnection;
  • ADOQuery1field1: TAutoIncField;
  • ADOQuery1field2: TWideStringField;
  • ADOQuery1field3: TWideStringField;
  • ADOQuery1field4: TIntegerField;
  • procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

uses Unit10;

  • {$R *.dfm}

procedure TForm9.Button1Click(Sender: TObject);

  • var WorkBook,Sheet:variant;
  • v:OLEVariant;
  • i:integer;

begin

if RadioButton1.Checked then QuickReport10.preview;

  • if RadioButton2.Checked then

begin

try //секция отлова исключений — чтобы не вылетало, если у юзера нет экселя

v := CreateOleObject(‘Excel.Application’); //если просто: связываемся с экселем

WorkBook:=v.Application.WorkBooks.Add; //создаем в нем новую книгу

Sheet:=WorkBook.WorkSheets[1];

  • Sheet.Cells(1,2):=’Клиенты’;
  • v.WorkBooks[1].

WorkSheets[1].

Range[‘B1:E1’].Merge;

  • v.WorkBooks[1].

WorkSheets[1].

rows[1].

HorizontalAlignment:=3;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

font.bold:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[1].

font.bold:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[1].

font.size:=16;

  • Sheet.Cells(3,2):=’№ клиента’;
  • Sheet.Cells(3,3):=’Фамилия Имя Отчество’;
  • Sheet.Cells(3,4):=’Адрес’;
  • Sheet.Cells(3,5):=’Телефон’;
  • v.WorkBooks[1].

WorkSheets[1].

Columns[2].

ColumnWidth:=15;

  • v.WorkBooks[1].

WorkSheets[1].

Columns[3].

ColumnWidth:=35;

  • v.WorkBooks[1].

WorkSheets[1].

Columns[4].

ColumnWidth:=35;

  • v.WorkBooks[1].

WorkSheets[1].

Columns[5].

ColumnWidth:=15;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[2].

HorizontalAlignment:=3;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[3].

HorizontalAlignment:=3;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[4].

HorizontalAlignment:=3;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[5].

HorizontalAlignment:=3;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[2].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[3].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[4].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[3].

Columns[5].

Borders.LineStyle:=1;

  • form9.ADOQuery1.Open();
  • i:=4;
  • while not form9.ADOQuery1.Eof do

begin

Sheet.Cells(i,2):=form9.ADOQuery1.FieldByName(‘field1’).Value;

  • Sheet.Cells(i,3):=form9.ADOQuery1.FieldByName(‘field2’).Value;
  • Sheet.Cells(i,4):=form9.ADOQuery1.FieldByName(‘field3’).Value;
  • Sheet.Cells(i,5):=form9.ADOQuery1.FieldByName(‘field4’).Value;
  • v.WorkBooks[1].

WorkSheets[1].

rows[i].Columns[2].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[i].Columns[3].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[i].Columns[4].

Borders.LineStyle:=1;

  • v.WorkBooks[1].

WorkSheets[1].

rows[i].Columns[5].

Borders.LineStyle:=1;

  • i:=i+1;
  • form9.ADOQuery1.Next;
  • end;
  • v.Visible:= True; //делаем эксель видимым

except //если таки экселя нет — то эта секция

MessageBox(0,’Не удается выполнить передачу данных в Excel. Убедитесь, что данное приложение установлено на Вашем компьютере’,’Ошибка’,MB_OK or MB_ICONEXCLAMATION);

end

end;

  • close;
  • end;
  • end.

unit Unit10;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,

StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, ADODB;

type

TQuickReport10 = class(TQuickRep)

TitleBand1: TQRBand;

  • QRLabel1: TQRLabel;
  • QRShape1: TQRShape;
  • ColumnHeaderBand1: TQRBand;
  • QRShape4: TQRShape;
  • QRLabel4: TQRLabel;
  • QRShape5: TQRShape;
  • QRLabel2: TQRLabel;
  • QRBand1: TQRBand;
  • QRShape8: TQRShape;
  • QRShape11: TQRShape;
  • QRDBText1: TQRDBText;
  • QRDBText4: TQRDBText;
  • PageFooterBand1: TQRBand;
  • QRShape2: TQRShape;
  • QRLabel9: TQRLabel;
  • QRSysData1: TQRSysData;
  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;
  • ADOQuery1_: TAutoIncField;
  • ADOQuery1Expr1001: TWideStringField;
  • ADOQuery1DSDesigner: TWideStringField;
  • ADOQuery1DSDesigner2: TIntegerField;
  • QRShape6: TQRShape;
  • QRLabel5: TQRLabel;
  • QRShape10: TQRShape;
  • QRLabel6: TQRLabel;
  • QRShape3: TQRShape;
  • QRShape7: TQRShape;
  • QRShape9: TQRShape;
  • QRDBText2: TQRDBText;
  • QRDBText3: TQRDBText;

private

public

end;

var

QuickReport10: TQuickReport10;

implementation

{$R *.DFM}

end.

unit Unit11

interface

uses

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

Dialogs, ComCtrls;

type

TForm11 = class(TForm)

MonthCalendar1: TMonthCalendar;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form11: TForm11;

implementation

{$R *.dfm}

end.

unit Unit12;

interface

uses

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

Dialogs, StdCtrls;

type

TForm12 = class(TForm)

Label1: TLabel;

  • Label2: TLabel;
  • Label3: TLabel;
  • Label4: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

{$R *.dfm}

end.

unit Unit13;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm13 = class(TForm)

Label1: TLabel;

  • Label2: TLabel;
  • Label3: TLabel;
  • Label4: TLabel;
  • Label5: TLabel;
  • Label6: TLabel;
  • Label7: TLabel;
  • Label8: TLabel;
  • Label9: TLabel;
  • Label10: TLabel;
  • Button1: TButton;
  • Image1: TImage;
  • procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.Button1Click(Sender: TObject);

begin

Form13.Close;

  • end;
  • end.

unit Unit14;

interface

uses

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

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

type

TForm14 = class(TForm)

Label1: TLabel;

  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • DBGrid1: TDBGrid;
  • Button1: TButton;
  • ADOQuery1_: TAutoIncField;
  • ADOQuery1DSDesigner: TWideStringField;
  • procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form14: TForm14;

implementation

uses Unit15;

  • {$R *.dfm}

procedure TForm14.Button1Click(Sender: TObject);

begin

QuickReport15.ADOConnection1.Close;

  • QuickReport15.ADOQuery1.Close;
  • QuickReport15.ADOQuery1.Parameters.ParamByName(‘param1’).Value:=ADOQuery1_.Value;
  • //showmessage(inttostr(ADOQuery1_.Value));
  • QuickReport15.ADOConnection1.Open;
  • QuickReport15.ADOQuery1.Open;
  • Form14.Visible:=false;
  • QuickReport15.preview;
  • end;
  • end.

unit Unit15;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,

StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, ADODB;

type

TQuickReport15 = class(TQuickRep)

TitleBand1: TQRBand;

  • QRLabel1: TQRLabel;
  • QRShape1: TQRShape;
  • ColumnHeaderBand1: TQRBand;
  • QRShape4: TQRShape;
  • QRLabel4: TQRLabel;
  • QRShape8: TQRShape;
  • QRLabel8: TQRLabel;
  • QRGroup1: TQRGroup;
  • QRShape9: TQRShape;
  • QRExpr1: TQRExpr;
  • QRBand1: TQRBand;
  • QRShape17: TQRShape;
  • QRShape20: TQRShape;
  • QRDBText7: TQRDBText;
  • DetailBand1: TQRBand;
  • QRShape10: TQRShape;
  • QRShape15: TQRShape;
  • QRExpr2: TQRExpr;
  • QRExpr5: TQRExpr;
  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;
  • QRDBText1: TQRDBText;
  • PageFooterBand1: TQRBand;
  • QRShape2: TQRShape;
  • ADOQuery1_: TAutoIncField;
  • ADOQuery1Expr1001: TWideStringField;
  • ADOQuery1DSDesigner: TWideStringField;
  • ADOQuery1DSDesigner2: TWideStringField;
  • ADOQuery1Expr1004: TBCDField;
  • QRLabel9: TQRLabel;
  • QRSysData1: TQRSysData;

private

public

end;

var

QuickReport15: TQuickReport15;

implementation

{$R *.DFM}

end.

unit Unit16;

interface

uses

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

Dialogs, StdCtrls, ComCtrls;

type

TForm16 = class(TForm)

DateTimePicker1: TDateTimePicker;

  • Label1: TLabel;
  • Button1: TButton;
  • Label2: TLabel;
  • DateTimePicker2: TDateTimePicker;
  • procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form16: TForm16;

implementation

uses Unit17, Unit15;

  • {$R *.dfm}

procedure TForm16.Button1Click(Sender: TObject);

begin

QuickReport17.ADOConnection1.Close;

  • QuickReport17.ADOQuery1.Close;
  • QuickReport17.ADOQuery1.Parameters.ParamByName(‘param1’).Value:=FormatDateTime(‘dd.mm.yy’,DateTimePicker1.DateTime);
  • QuickReport17.ADOQuery1.Parameters.ParamByName(‘param2’).Value:=FormatDateTime(‘dd.mm.yy’,DateTimePicker2.DateTime);
  • //showmessage(inttostr(ADOQuery1_.Value));
  • QuickReport17.ADOConnection1.Open;
  • QuickReport17.ADOQuery1.Open;
  • Form16.Visible:=false;
  • QuickReport17.preview;
  • end;
  • end.

unit Unit17;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,

StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, ADODB;

type

TQuickReport17 = class(TQuickRep)

TitleBand1: TQRBand;

  • QRLabel1: TQRLabel;
  • QRShape1: TQRShape;
  • ColumnHeaderBand1: TQRBand;
  • QRShape4: TQRShape;
  • QRLabel4: TQRLabel;
  • QRBand1: TQRBand;
  • PageFooterBand1: TQRBand;
  • QRShape2: TQRShape;
  • QRLabel9: TQRLabel;
  • QRSysData1: TQRSysData;
  • QRShape3: TQRShape;
  • QRLabel3: TQRLabel;
  • QRShape5: TQRShape;
  • QRLabel2: TQRLabel;
  • QRShape6: TQRShape;
  • QRShape7: TQRShape;
  • QRShape8: TQRShape;
  • QRShape9: TQRShape;
  • QRShape11: TQRShape;
  • QRLabel6: TQRLabel;
  • QRDBText1: TQRDBText;
  • QRDBText2: TQRDBText;
  • QRDBText3: TQRDBText;
  • QRDBText4: TQRDBText;
  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;

private

public

end;

var

QuickReport17: TQuickReport17;

implementation

{$R *.DFM}

end.