Помощь в написании студенческих работ
Антистрессовый сервис

База данных «Сериалы»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Интерфейс пользователя программы должен создаваться стандартными средствами визуальных объектных библиотек. Структура интерфейса включает: главное меню, панель инструментов, средства ввода и отображения информации, управляющие элементы и (возможно) строку статуса. Количество форм: три и более. Справочная система может опираться на пояснительную записку. Программа должна быть защищена… Читать ещё >

База данных «Сериалы» (реферат, курсовая, диплом, контрольная)

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина».

Курсовая работа

«База данных «Сериалы»

Руководитель: Неудачин И.Г.

Студент: Горбич Д.Л.

Группа: ФТ-210 802

Екатеринбург — 2012

  • 1. Аннотация
  • 2. Техническое задание
  • 3. Спецификация
  • 4. Структура проекта
  • 5. Структура интерфейса пользователя
  • 6. Описание работы программы
  • 7. Программа и методика испытаний
  • 8. Руководство пользователя
  • Заключение
  • Библиографический список
  • Приложения
  • 1. Аннотация

Наименование Базы данных: TVShows.

Разработка ведется по заказу кафедры ВТ УГТУ — УПИ им. С. М. Кирова.

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

Технические характеристики:

В программе используются объекты библиотеки визуальных компонентов: MainMenu, DBGrid, DBEdit, Memo, PopupMenu…

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

Хранение информации о Фильмах происходит в виде таблицы формата Paradox 7 (Top10, I: ПНЯВУКурсовая3).

Программа проектировалась в среде визуального программирования Delphi 7.

Операционная система Windows 98/NT/XP/7.

Структура базы данных.

База данных состоит из одной таблицы.

Таблица состоит из записей, содержащих информацию о сериалах, описанную в спецификации (см. раздел 3).

Требования к вычислительной системе. Процессор не ниже

Intel Pentium IV Оперативная память 512 Мб Объем файла TVShows. exe = 1,26 MB Пароль доступа к редактированию таблицы 321.

2. Техническое задание

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

Задание:

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

Требования к СУБД: СУБД создается для IBM-совместимых компьютеров для работы в операционной системы Windows 98/NT/XP. Она должна включать в себя следующие функции:

а) Создание, удаление, загрузка, запись в базу данных (БД) информации из выбранной прикладной области знаний.

1) Добавление, удаление, редактирование записей в БД.

2) Сортировка БД по различным полям.

3) Доступ к нужной информации.

4) Работа через меню.

5) Быстрые и короткие клавиши.

6) Поиск нужных данных (удовлетворение запросов пользователя);

7) Специальный для этой БД пункт меню. Например: диалог выбора, рекомендации, специфические вычисления, статистическая обработка, и т. д.

8) Выход из СУБД.

Требования к интерфейсу пользователя:

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

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

Разработка БД должна осуществляться в соответствии со сроками, указанными в «Задании по курсовому проектированию».

3. Спецификация

Структура таблицы «films.db», рабочий каталог

Имя поля

Тип поля

Ширина поля

Название

Name

string[25]

Оригинальное название

NameOrig

string[25]

Страна

Country

string[20]

Автор идеи

CreatedBy

string[20]

Телеканал

Chanel

string[20]

Количество сезонов

SezNum

integer

Количество серий

SerNum

integer

Продолжительность серии

SerTime

Integer

Статус

Status

string[10]

Пример

Название

Оригинальное название

Страна

Автор идеи

Телеканал

Количество сезонов

Количество серий

Продолжительность серии

Статус

Доктор Хаус

House M. D

США

Дэвид Шор

FOX

Завершён

Теория большого взрыва

Big Bang Theory

США

Чак Лорри

CBS

Снимается

Обмани меня

Lie to Me

США

Сэмюэл Баум

FOX

Завершён

Шерлок

Sherlock

Великобритания

Стивен Моффат

BBC One

Снимается

Сверхъестественное

Supernatural

США

Эрик Крипке

The CW

Снимается

Декстер

Dexter

США

Джеймс Манос

Showtime

Снимается

Как я встретил вашу маму

How I Met Your Mother

США

Картер Бейз

CBS

Отбросы

Misfits

Великобритания

Говард Оверман

E4

Остаться в живых

Lost

США

Дж. Дж. Абрамс

ABC

Завершён

Блудливая калифорния

Californication

США

Том Капинос

Showtime

Снимается

4. Структура проекта

Список элементов проекта и их функций: файлы, формы, модули.

Текст проекта находится в приложении A. Файл называется TVShows. dpr

Файл Top10. db содержит таблицу БД с описанной в спецификации структурой.

Файл Unit1.Pas содержит модуль 1 проекта. Он вызывается из I: ПНЯВУКурсовая3Unit1.pas.Модуль содержит коды обработчиков событий для главной формы.

Файл Unit2.Pas содержит модуль 1 проекта. Он вызывается из I: ПНЯВУКурсовая3Unit2.pas. Модуль содержит коды обработчиков событий для второй формы.

Файл Unit3.Pas содержит модуль 1 проекта. Он вызывается из I: ПНЯВУКурсовая3Unit3.pas.Модуль содержит коды обработчиков событий для третьей формы.

Файл Unit4.Pas содержит модуль 1 проекта. Он вызывается из I: ПНЯВУКурсовая3Unit4.pas.Модуль содержит коды обработчиков событий для четвертой формы.

Тексты модулей приведены в приложении B.

Спецификации форм

Основная форма (Form1). Объекты, расположенные на форме: их свойства, функции, обработчики событий. Рекомендую для оформления вызвать контекстное меню формы и выбрать команду View as Text. Но не следует приводить полный текст формы. Коды обработки событий, назначенные программистом соответствующим объектам, приведены в тексте модуля (Приложение B.1.).

MainMenu1: TMainMenu;

File1: TMenuItem;

Exit1: TMenuItem;

Help1: TMenuItem;

Help2: TMenuItem;

About1: TMenuItem;

CreateTab1: TMenuItem;

EditTab1: TMenuItem;

QueryTab1: TMenuItem;

Timer1: TTimer;

Panel1: TPanel;

OpenDialog1: TOpenDialog;

N1: TMenuItem;

DataSource1: TDataSource;

strngfldMyTabstrngfldMyTabName: TStringField;

Panel2: TPanel;

Edit2: TEdit;

Label1: TLabel;

Timer2: TTimer;

BitBtn1: TBitBtn;

Image1: TImage;

Image2: TImage;

atncfldMyTabID: TAutoIncField;

TableMy: TTable;

SaveDialog1: TSaveDialog;

BitBtnOpen: TBitBtn;

BitBtnCreate: TBitBtn;

TableMyPicture: TGraphicField;

TableMyMemo: TMemoField;

intgrfldTableMySezNum: TIntegerField;

intgrfldTableMySerNum: TIntegerField;

intgrfldTableMySerTime: TIntegerField;

strngfldTableMyStatus: TStringField;

procedure Exit1Click (Sender: TObject);

procedure About1Click (Sender: TObject);

procedure NewTable;

procedure CreateTab1Click (Sender: TObject);

procedure EditTab1Click (Sender: TObject);

procedure QueryTab1Click (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure N1Click (Sender: TObject);

procedure Timer2Timer (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure BitBtnOpenClick (Sender: TObject);

procedure Edit2Enter (Sender: TObject);

procedure BitBtnCreateClick (Sender: TObject);

procedure Button1Click (Sender: TObject);

Вторая форма проекта (Form2). Объекты, расположенные на форме: их свойства, функции, обработчики событий. Коды обработки событий, назначенные программистом соответствующим объектам, приведены в тексте модуля (Приложение B.2.).

DBGrid1: TDBGrid;

BitBtnMenu: TBitBtn;

dbnvgr1: TDBNavigator;

BitBtnExit: TBitBtn;

Label1: TLabel;

BitBtnUnsort: TBitBtn;

procedure BitBtnMenuClick (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure DBGrid1TitleClick (Column: TColumn);

procedure BitBtnUnsortClick (Sender: TObject);

procedure FillingColums (GridName:TDBGrid);

Третья форма проекта (Form3). Объекты, расположенные на форме: их свойства, функции, обработчики событий. Коды обработки событий, назначенные программистом соответствующим объектам, приведены в тексте модуля (Приложение B.3.).

BitBtn3: TBitBtn;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Label2: TLabel;

Query1: TQuery;

Edit1: TEdit;

Label1: TLabel;

BitBtn1: TBitBtn;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

shp1: TShape;

shp2: TShape;

procedure BitBtn3Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure DBGrid1TitleClick (Column: TColumn);

procedure FormCreate (Sender: TObject);

procedure ExecuteSQL;

procedure Edit1KeyUp (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure BitBtn1Click (Sender: TObject);

procedure FormShow (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure CheckBox1Click (Sender: TObject);

procedure CheckBox2Click (Sender: TObject);

procedure CheckBox3Click (Sender: TObject);

procedure CheckBox4Click (Sender: TObject);

procedure CheckBox5Click (Sender: TObject);

Четвертая форма (Form5). Объекты, расположенные на форме: свойства, функции, обработчики событий. Коды обработки событий, назначенные программистом соответствующим объектам, приведены в тексте модуля (Приложение B.4.).

DBImagePicture: TDBImage;

OpenPictureDialog1: TOpenPictureDialog;

DBNavigator1: TDBNavigator;

DBTextName: TDBText;

Label1: TLabel;

DBRichEditMemo: TDBRichEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

FontDialog1: TFontDialog;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

DBEditSezNum: TDBEdit;

DBEditSerNum: TDBEdit;

DBEditSerTime: TDBEdit;

DBEditStatus: TDBEdit;

Label6: TLabel;

BitBtn3: TBitBtn;

Label7: TLabel;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click (Sender: TObject);

procedure BitBtn2Click (Sender: TObject);

procedure BitBtn3Click (Sender: TObject);

5. Структура интерфейса пользователя

Реальные Разделы и подразделы главного меню приложения:

Файл Правка Просмотр Справка

Создать Подробно

Выход О программе

Быстрый доступ по комбинациям клавиш Alt + подчеркнутая буква.

Меню находится на главной форме приложения Form1. Пункт меню «Правка» вызывает форму Form2.

Описание панели инструментов.

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

— Standard

— Additional

— Win32

— System

— Data Controls

— Data Access

— Dialogs

— BDE

Структура интерфейса формы Form1

Структура интерфейса формы Form2

Структура интерфейса формы Form3

Структура интерфейса формы Form4

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

интерфейс управление база пользователь

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

Диалог через меню программы.

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

Основное меню содержит такие функции:

1) Создание таблицы;

2) Правка;

3) Просмотр;

4) Справка;

5) Выход из приложения;

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

Если Вы выбрали функцию: «Создать», то Вы сможете создать новую таблицу.

Если Вы выбрали функцию: «Правка», то Вы сможете редактировать основные поля текущей таблицы.

Если Вы выбрали функцию: «Подробно», то Вы сможете получить справку об интересующем Вас сериале:

1) Количество сезонов

2) Количество серий

3) Средняя продолжительность серии

4) Статус (завершён/снимается)

5) Постер

6) Краткое описание сериала Если Вы выбрали функцию: «Правка», то вы сможете выполнить следующие функции:

1) просмотреть записи;

2) редактировать записи.

Если Вы выбрали пункт 1, то вы можете просмотреть имеющиеся записи. Здесь управление происходит клавишами курсора.

Если Вы выбрали пункт 2, то вы можете редактировать имеющиеся записи или добавлять новые. Редактирование происходит наведением клавишами курсора на нужное место и нажатием клавиши «ENTER». Затем стандартным путем производится редактирование содержимого выбранной ячейки.

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

Если Вы выбрали функцию: «Просмотр», то вы сможете вывести любые поля удовлетворяющие любому сочетанию :

1) Оригинальное название

2) Страна

3) Автор идеи

4) Телеканал Если Вы выбрали функцию: «Поиск», то Вы можете найти интересующий Вас сериал.

Сортировка реализована по клику на заголовок столбца.

Функция «выход из базы данных» отдает управление ОС.

7. Программа и методика испытаний

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

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

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

Заключение

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

Библиографический список

1. Таблицы Delphi для управления базами данных: Методические указания к курсовой и лабораторным работам по 2 части дисциплины «Программирование на языке высокого уровня» для студента специальности 230 100 — Информатика и вычислительная техника / И. Г. Неудачин. Екатеринбург: УрФУ, 2010. 75с.

2. Delphi 7 / Под общей редакцией А. Д. Хомоненко. — СПб.: БХВ-Петербург, 2008. — 1216 с.: ил.

3. Delphi. Программирование на языке высокого уровня: Учебник для вузов / В. В. Фаронов. — СПб.: Лидер, 2010. — 640 с.: ил.

4.

Введение

в реляционные базы данных / В. В. Кириллов, Г. Ю. Громов. — СПб.: БХВ-Петербург, 2009. — 464 с.: ил.

Приложения

Приложение A

program Films;

program TVShows;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form5};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.CreateForm (TForm2, Form2);

Application.CreateForm (TForm3, Form3);

Application.CreateForm (TForm5, Form5);

Application.Run;

end.

Приложение B

(Исходные тексты модулей)

B.1.

unit Unit1;

interface

uses

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

Dialogs, Menus, DB, DBTables, StdCtrls, Buttons, ComCtrls, ExtCtrls,

Grids, DateUtils, jpeg;

type

TForm1 = class (TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Exit1: TMenuItem;

Help1: TMenuItem;

Help2: TMenuItem;

About1: TMenuItem;

CreateTab1: TMenuItem;

EditTab1: TMenuItem;

QueryTab1: TMenuItem;

Timer1: TTimer;

Panel1: TPanel;

OpenDialog1: TOpenDialog;

N1: TMenuItem;

DataSource1: TDataSource;

strngfldMyTabstrngfldMyTabName: TStringField;

Panel2: TPanel;

Edit2: TEdit;

Label1: TLabel;

Timer2: TTimer;

BitBtn1: TBitBtn;

Image1: TImage;

Image2: TImage;

atncfldMyTabID: TAutoIncField;

TableMy: TTable;

SaveDialog1: TSaveDialog;

BitBtnOpen: TBitBtn;

BitBtnCreate: TBitBtn;

TableMyPicture: TGraphicField;

TableMyMemo: TMemoField;

intgrfldTableMySezNum: TIntegerField;

intgrfldTableMySerNum: TIntegerField;

intgrfldTableMySerTime: TIntegerField;

strngfldTableMyStatus: TStringField;

procedure Exit1Click (Sender: TObject);

procedure About1Click (Sender: TObject);

procedure NewTable;

procedure CreateTab1Click (Sender: TObject);

procedure EditTab1Click (Sender: TObject);

procedure QueryTab1Click (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure N1Click (Sender: TObject);

procedure Timer2Timer (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure BitBtnOpenClick (Sender: TObject);

procedure Edit2Enter (Sender: TObject);

procedure BitBtnCreateClick (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Pass: Boolean;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1. Exit1Click (Sender: TObject);

begin

Close;

end;

procedure TForm1. About1Click (Sender: TObject);

begin

ShowMessage ('Курсовой проект по теме «Сериалы» создан 23.10.12. '+#13+

'Автор: Горбич Дмитрий');

end;

procedure TForm1. NewTable; //Создать новую таблицу

begin

SaveDialog1.FileName := '*.db'; //Маска поиска по умолчанию

if SaveDialog1. Execute then

begin

with TableMy do

begin

Active:=False;

//Определение основных свойств таблицы

DatabaseName:=ExtractFilePath (SaveDialog1.FileName);

TableName:=ExtractFileName (SaveDialog1.FileName);

TableType:=ttParadox;

//Определение полей

FieldDefs.Clear;

FieldDefs.Add ('ID', ftAutoInc, 0, True);

FieldDefs.Add ('Name', ftString, 25, False);

FieldDefs.Add ('NameOrig', ftString, 25, False);

FieldDefs.Add ('Country', ftString, 20, False);

FieldDefs.Add ('CreatedBy', ftString, 20, False);

FieldDefs.Add ('Chanel', ftString, 20, False);

FieldDefs.Add ('SezNum', ftInteger, 0, False);

FieldDefs.Add ('SerNum', ftInteger, 0, False);

FieldDefs.Add ('SerTime', ftInteger, 0, False);

FieldDefs.Add ('Status', ftString, 10, False);

FieldDefs.Add ('Memo', ftMemo, 20, False);

FieldDefs.Add ('Picture', ftGraphic, 20, False);

//Определение индексов

IndexDefs.Clear;

IndexDefs.Add ('','ID',[ixPrimary, ixUnique]);

IndexDefs.Add ('indName','Name',[ixCaseInsensitive]);

IndexDefs.Add ('indNameOrig','NameOrig',[ixCaseInsensitive]);

IndexDefs.Add ('indCountry','Country',[ixCaseInsensitive]);

IndexDefs.Add ('indCreatedBy','CreatedBy',[ixCaseInsensitive]);

IndexDefs.Add ('indChanel','Chanel',[ixCaseInsensitive]);

//Определение обратных индексов

IndexDefs.Add ('rindName','Name',[ixCaseInsensitive, ixDescending]);

IndexDefs.Add ('rindNameOrig','NameOrig',[ixCaseInsensitive, ixDescending]);

IndexDefs.Add ('rindCountry','Country',[ixCaseInsensitive, ixDescending]);

IndexDefs.Add ('rindCreatedBy','CreatedBy',[ixCaseInsensitive, ixDescending]);

IndexDefs.Add ('rindChanel','Chanel',[ixCaseInsensitive, ixDescending]);

CreateTable;

Active:=True;

Form2.DBGrid1.Columns.Items[0]. Visible:=False;

Form2.DBGrid1.Columns.Items[6].Visible:=False;

Form2.DBGrid1.Columns.Items[7].Visible:=False;

Form2.DBGrid1.Columns.Items[8].Visible:=False;

Form2.DBGrid1.Columns.Items[9].Visible:=False;

Form2.DBGrid1.Columns.Items[10].Visible:=False;

Form2.DBGrid1.Columns.Items[11].Visible:=False;

Form1.Caption:='Сериалы '+SaveDialog1.FileName;

end;

end

end;

procedure TForm1. CreateTab1Click (Sender: TObject);

begin

NewTable;

end;

procedure TForm1. BitBtn1Click (Sender: TObject);

begin

if Edit2. Text = '321' then

begin

Pass:=True;

end

end;

procedure TForm1. EditTab1Click (Sender: TObject);

begin

Form1.Hide;

Form2.Show;

Form2.DBGrid1.Enabled:=True;

end;

procedure TForm1. QueryTab1Click (Sender: TObject);

begin

Form1.Hide;

Form3.Show;

end;

procedure TForm1. Timer1Timer (Sender: TObject);

var

y, u: Word;

x, v: string;

begin

y := MonthOfTheYear (Date);

Case y of

1: x:='января';

2: x:='февраля';

3: x:='марта';

4: x:='апреля';

5: x:='мая';

6: x:='июня';

7: x:='июля';

8: x:='августа';

9: x:='сентября';

10: x:='октября';

11: x:='ноября';

12: x:='декабря';

end;

u:= DayOfWeek (Date);

Case u of

1: v:='воскресенье';

2: v:='понедельник';

3: v:='вторник';

4: v:='среда';

5: v:='четверг';

6: v:='пятница';

7: v:='суббота';

end;

Panel1.Caption := TimeToStr (Time);

Panel2.Caption := IntToStr (DayOfTheMonth (Date))+

' '+x+' '+IntToStr (YearOf (Date));

Panel2.Hint := 'Сегодня '+v;

end;

procedure TForm1. N1Click (Sender: TObject);

begin

Form1.Hide;

Form5.Show;

end;

procedure TForm1. Timer2Timer (Sender: TObject);

begin

if Pass then

begin

Form1.Caption:='Сериалы';

CreateTab1.Enabled:=True;

EditTab1.Enabled:=True;

QueryTab1.Enabled:=True;

N1.Enabled:=True;

Label1.Visible:=False;

Edit2.Visible:=False;

BitBtn1.Visible:=False;

Image2.Visible:=False;

Image1.Visible:=True;

BitBtnOpen.Visible:=True;

BitBtnCreate.Visible:=True;

Timer2.Enabled:=False;

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

CreateTab1.Enabled:=False;

EditTab1.Enabled:=False;

QueryTab1.Enabled:=False;

N1.Enabled:=False;

end;

procedure TForm1. BitBtnOpenClick (Sender: TObject);

begin

OpenDialog1.FileName := '*.db'; {Маска поиска по умолчанию}

if OpenDialog1. Execute then

begin

Form1.TableMy.Active:=False;

TableMy.TableName := ExtractFileName (OpenDialog1.FileName);

Form1.Caption:='Таблица свойств сериалов '+OpenDialog1.FileName;

Form1.TableMy.Active:=True;

Form2.DBGrid1.Columns.Items[0]. Visible:=False;

Form2.DBGrid1.Columns.Items[6].Visible:=False;

Form2.DBGrid1.Columns.Items[7].Visible:=False;

Form2.DBGrid1.Columns.Items[8].Visible:=False;

Form2.DBGrid1.Columns.Items[9].Visible:=False;

Form2.DBGrid1.Columns.Items[10].Visible:=False;

Form2.DBGrid1.Columns.Items[11].Visible:=False;

end

end;

procedure TForm1. Edit2Enter (Sender: TObject);

begin

if Edit2. Text = '321' then

begin

Pass:=True;

end

end;

procedure TForm1. BitBtnCreateClick (Sender: TObject);

begin

NewTable;

end;

procedure TForm1. Button1Click (Sender: TObject);

begin

Form1.Hide;

Form5.Show;

end;

end.

B.2.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, DBTables, ExtCtrls,

DBCtrls;

type

TForm2 = class (TForm)

DBGrid1: TDBGrid;

BitBtnMenu: TBitBtn;

dbnvgr1: TDBNavigator;

BitBtnExit: TBitBtn;

Label1: TLabel;

BitBtnUnsort: TBitBtn;

procedure BitBtnMenuClick (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure DBGrid1TitleClick (Column: TColumn);

procedure BitBtnUnsortClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure FillingColums (GridName:TDBGrid);

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2. BitBtnMenuClick (Sender: TObject);

begin

Form2.Hide;

Form2.Close;

end;

procedure TForm2. FormClose (Sender: TObject; var Action: TCloseAction);

begin

Form2.Hide;

Form1.Show;

end;

procedure TForm2. FillingColums (GridName:TDBGrid); //заполнение названий колонок

var

i: Integer;

FieldName, Caption: string;

begin

for i:=0 to GridName.Columns.Count-1 do

begin

FieldName:=GridName.Columns[i]. FieldName;

if FieldName='Name' then

Caption:='Название'

else if FieldName='NameOrig' then

Caption:='Оригинальное название'

else if FieldName='Country' then

Caption:='Страна'

else if FieldName='CreatedBy' then

Caption:='Автор идеи'

else if FieldName='Chanel' then

Caption:='Телеканал';

GridName.Columns[i]. Title. Caption:=Caption;

end;

end;

procedure TForm2. DBGrid1TitleClick (Column: TColumn);

var FieldName, IndexName: string;

begin

FillingColums (Form2.DBGrid1);

//Сортировка

FieldName:=Column.FieldName;

IndexName:=Form1.TableMy.IndexName;

if IndexName='rind'+FieldName then

begin

Form1.TableMy.IndexName:='ind'+FieldName;

Column.Title.Caption:=Column.Title.Caption+' /';

Exit;

end;

if IndexName='ind'+FieldName then

begin

Form1.TableMy.IndexName:='rind'+FieldName;

Column.Title.Caption:=Column.Title.Caption+' /';

Exit;

end;

Form1.TableMy.IndexName:='ind'+FieldName;

Column.Title.Caption:=Column.Title.Caption+' /';

end;

procedure TForm2. BitBtnUnsortClick (Sender: TObject);

begin

Form1.TableMy.IndexName:='';

FillingColums (Form2.DBGrid1);

end;

end.

B.3.

unit Unit3;

interface

uses

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

Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Buttons, ExtCtrls;

type

TForm3 = class (TForm)

BitBtn3: TBitBtn;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Label2: TLabel;

Query1: TQuery;

Edit1: TEdit;

Label1: TLabel;

BitBtn1: TBitBtn;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

shp1: TShape;

shp2: TShape;

procedure BitBtn3Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure DBGrid1TitleClick (Column: TColumn);

procedure FormCreate (Sender: TObject);

procedure ExecuteSQL;

procedure Edit1KeyUp (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure BitBtn1Click (Sender: TObject);

procedure FormShow (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure CheckBox1Click (Sender: TObject);

procedure CheckBox2Click (Sender: TObject);

procedure CheckBox3Click (Sender: TObject);

procedure CheckBox4Click (Sender: TObject);

procedure CheckBox5Click (Sender: TObject);

private

{ Private declarations }

FieldName: string;

SortedAsc: Integer;

CheckString: string;

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm3. BitBtn3Click (Sender: TObject);

begin

Form3.Hide;

Form3.Close;

Form1.Show;

end;

procedure TForm3. FormClose (Sender: TObject; var Action: TCloseAction);

begin

Form3.Hide;

Form1.Show;

end;

procedure TForm3. DBGrid1TitleClick (Column: TColumn);

begin

if FieldName=Column.FieldName then

begin

if (SortedAsc=0) or (SortedAsc=2) then

SortedAsc:=1

else

SortedAsc:=2;

end else SortedAsc:=1;

FieldName:=Column.FieldName;

ExecuteSQL;

end;

//——————————————————————————————;

//Процедура выполняет SQL запрос к базе

//——————————————————————————————;

procedure TForm3. ExecuteSQL;

var

i: integer;

begin

Query1.Close;

Query1.SQL.Clear;

// Выбор полей

CheckString:='Name';

if CheckBox5. Checked=true then

begin

CheckString:=(CheckString

+', NameOrig, Country, CreatedBy, Chanel ');

end else begin

if CheckBox1. Checked=true then CheckString:=(CheckString+', NameOrig');

if CheckBox2. Checked=true then CheckString:=(CheckString+', Country');

if CheckBox3. Checked=true then CheckString:=(CheckString+', CreatedBy');

if CheckBox4. Checked=true then CheckString:=(CheckString+', Chanel');

end;

Query1.SQL.Add (' SELECT '+CheckString+' from '

+'" '+Form1.TableMy.TableName+'" ');

// Поиск

if not (Edit1.Text='') then

begin

Query1.SQL.Add (' WHERE Name like «%'+Edit1.Text+'%» ');

Query1.SQL.Add (' OR NameOrig like «%'+Edit1.Text+'%» ');

Query1.SQL.Add (' OR Country like «%'+Edit1.Text+'%» ');

Query1.SQL.Add (' OR CreatedBy like «%'+Edit1.Text+'%» ');

Query1.SQL.Add (' OR Chanel like «%'+Edit1.Text+'%» ');

end;

// Сортировка

if not (FieldName='') and (Pos (FieldName, CheckString)>0) then

begin

Query1.SQL.Add (' ORDER BY '+FieldName);

if (SortedAsc=1) then Query1.SQL.Add (' ASC ')

else if (SortedAsc=2) then Query1.SQL.Add (' DESC ');

end;

Query1.Prepare;

Query1.Open;

Form2.FillingColums (Form3.DBGrid1);

for i:=0 to DBGrid1.Columns.Count-1 do

begin

if FieldName=DBGrid1.Columns[i]. FieldName then

begin

if SortedAsc=1 then

DBGrid1.Columns[i]. Title. Caption:=DBGrid1.Columns[i].Title.Caption+' /';

if SortedAsc=2 then

DBGrid1.Columns[i]. Title. Caption:=DBGrid1.Columns[i].Title.Caption+' /';

end;

end;

end;

procedure TForm3. FormCreate (Sender: TObject);

begin

SortedAsc:=0;

FieldName:='';

// ExecuteSQL;

end;

procedure TForm3. Edit1KeyUp (Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

ExecuteSQL;

end;

procedure TForm3. BitBtn1Click (Sender: TObject);

begin

FieldName:='';

SortedAsc:=0;

ExecuteSQL;

end;

procedure TForm3. FormShow (Sender: TObject);

begin

Form1.TableMy.Active:=False;

Form1.TableMy.Active:=True;

ExecuteSQL;

end;

procedure TForm3. Button1Click (Sender: TObject);

begin

CheckBox1.Checked:=true;

CheckBox2.Checked:=true;

CheckBox3.Checked:=true;

CheckBox4.Checked:=true;

ExecuteSQL;

end;

procedure TForm3. CheckBox1Click (Sender: TObject);

begin

ExecuteSQL;

end;

procedure TForm3. CheckBox2Click (Sender: TObject);

begin

ExecuteSQL;

end;

procedure TForm3. CheckBox3Click (Sender: TObject);

begin

ExecuteSQL;

end;

procedure TForm3. CheckBox4Click (Sender: TObject);

begin

ExecuteSQL;

end;

procedure TForm3. CheckBox5Click (Sender: TObject);

begin

CheckBox1.Enabled:=not CheckBox5. Checked;

CheckBox2.Enabled:=not CheckBox5. Checked;

CheckBox3.Enabled:=not CheckBox5. Checked;

CheckBox4.Enabled:=not CheckBox5. Checked;

ExecuteSQL;

end;

end.

В.4.

unit Unit4;

interface

uses

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

Dialogs, ExtCtrls, MPlayer, StdCtrls, DBCtrls, ExtDlgs, ComCtrls, Buttons,

Mask;

type

TForm5 = class (TForm)

DBImagePicture: TDBImage;

OpenPictureDialog1: TOpenPictureDialog;

DBNavigator1: TDBNavigator;

DBTextName: TDBText;

Label1: TLabel;

DBRichEditMemo: TDBRichEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

FontDialog1: TFontDialog;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

DBEditSezNum: TDBEdit;

DBEditSerNum: TDBEdit;

DBEditSerTime: TDBEdit;

DBEditStatus: TDBEdit;

Label6: TLabel;

BitBtn3: TBitBtn;

Label7: TLabel;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click (Sender: TObject);

procedure BitBtn2Click (Sender: TObject);

procedure BitBtn3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm5. FormClose (Sender: TObject; var Action: TCloseAction);

begin

Form5.Hide;

Form1.Show;

end;

procedure TForm5. BitBtn1Click (Sender: TObject);

begin

if OpenPictureDialog1. Execute then

begin

Form1.TableMy.Edit;

DBImagePicture.Picture.LoadFromFile (OpenPictureDialog1.FileName);

Form1.TableMy.Post;

end;

end;

procedure TForm5. BitBtn2Click (Sender: TObject);

begin

if FontDialog1. Execute then

DBRichEditMemo.SelAttributes.Assign (FontDialog1.Font);

DBRichEditMemo.SetFocus;

end;

procedure TForm5. BitBtn3Click (Sender: TObject);

begin

Form5.Hide;

Form1.Show;

end;

end.

Показать весь текст
Заполнить форму текущей работой