">
Информатика Программирование
Информация о работе

Тема: Создание базы данных Svadba

Описание: Постановка задачи. Создание таблиц БД в формате Paradox. Реализация интерфейса. Создание DataModule. Поэтапное описание работы БДГ. Действия с таблицей (добавление, редактирование, удаление записей). Программный код реализующий экспорт в MS Word.
Предмет: Информатика.
Дисциплина: Программирование.
Тип: Курсовая работа
Дата: 18.08.2012 г.
Язык: Русский
Скачиваний: 3
Поднять уникальность

Похожие работы:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНСТИТУТ МАТЕМАТИКИ ЕСТЕСТВЕННЫХ НАУК

И ИНФОРМАЦОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

КУРСОВАЯ РАБОТА

по предмету «Разработка и Стандартизация Программных Средств и Информационных Технологий»

на тему:

Создание базы данных «Svadba»

Выполнила:

студент 2 курса

специальности «ПИвЭ»

группа

Руководитель:

Тюмень 2012

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

Создание базы данных «Svadba» - информационной системы, упрощающей обслуживание клиентов, покупающих свадебные платья. БД разработана в среде программирования Delphi.

Таблицы имеют следующую структуру (структуру полей)

Таблица1 Zakaz № Имя поля Тип Поля Размер Назначение  1 Key S  Первичный ключ  2 Fio A 60 Имя заказчика  3 Dress S  Вторичный ID Таблица 2 Dress

 4 Cafe A 60 Название кафе  

Таблица2 Dress № Имя поля Тип поля Размер Назначение  1 Key S  Первичный ключ  2 Dress A 60 Название платьев  3 Cost Money  Стоимость платья  4 Color A 60 Цвет платья  5 Material A 60 Материал платья  

Связь между таблицами (Рис.1 Связь между таблицами):



Рис.1 Связь между таблицами

Создание таблиц БД в формате Paradox.

Создать таблицы Zakaz и Dress в формате PARADOX с помощью Database Desktop.

Запустить Database Desktop, зайти в меню File – New – Table (Рис.2 Create Table)



Рис.2 Create Table

Table type оставить Paradox 7, нажать ОК.

Задать структуру полей таблицы (Рис.3 Zakaz.DB)



Рис.3 Zakaz.DB

После того, как все поля заданы, нажать кнопку Save As, задать имя таблицы Zakaz.

Повторить все шаги для таблицы Dress (Рис.4 Dress.DB)



Рис.4 Dress.DB

Реализация интерфейса БД в Delphi

Создание DataModule

Создать новый проект

Создать невизуальную форму (DataModule, т.е. «модуль данных»), на которой будут располагаться компоненты БД: БД: File – New – DataModule

Поставить на форму DataModule компоненты Table1, Table2

Установить свойства:

TableName – Zakaz.DB

TableName – Dress.DB

Рядом с каждой таблицей установить компонент DataSource

Установить свойство:

Dataset – соответствующая таблица БД

Поставить на форму DataModule компоненты Query1, Query2, Query3, Query4, Query5, Query6

Рядом с каждым Query установить компонент DataSource (Рис.5 DataModule)

Установить свойство:

Dataset – соответствующий Query



Рис.5 DataModule

Поэтапное описание работы БД

Главная форма приложения

Рассмотрим функции приложения на главной форме:

Таблица Zakaz

Установить на форму DBGrid1для отображения таблицы Zakaz

Для того чтобы связать Unit1и Unit2: File – Use Unit – Unit2 или командой Alt + F11

Установить свойство: DataSource - DataModule2.DataSource1

Определим обработчик события FormActivate главной формы - Form1:

procedure TForm1.FormActivate(Sender: TObject);

begin

DataModule2.Table1.Filtered:= False;

DataModule2.Table1.Active:=True;

end;

Сортировка

Устаносить на форму RadioGroup1, в котором укажем сортировки БД (Рис.6 Сортировка):

Caption=’Сортировка’

Items=

По ключу

По фамилии

По платью

По кафе

Создание Secondary Indexes

Запустить Database Desktop, зайти в меню File – Open – Table – Zakaz.

Зайти в Table – Restructure и в Table properties выбрать Secondary Indexes, нажать кнопку Define.

В открывшемся окне Define Secondary Indexes выбрать поля: Fio, Cafe, Dress.

Дать им названия FI, CI, DI.

Сохранить изменения нажатием кнопки Save.

Определим обработчик события OnClick этого компонента:

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

Case RadioGroup1.ItemIndex of

0: DataModule2.Table1.IndexName:=;

1: DataModule2.Table1.IndexName:=FI;

2: DataModule2.Table1.IndexName:=DI;

3: DataModule2.Table1.IndexName:=CI;

end;

end;



Рис.6 Сортировка

Фильтры

Установить на Form1 компонент GroupBox1 (Рис.7 Фильтры).

Caption = ’Фильтры’

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

Установим на главной форме компонент Button и запишем обработчик его события OnClick:

procedure TForm1.Button3Click(Sender: TObject);

begin

DataModule2.Query1.Filtered:=False;

DataModule2.Table1.Filter:=Dress >+chr(39)+Edit10.Text+chr(39);

DataModule2.Table1.Filtered:= True;

end;



Рис.7 Фильтры

Поиск записей:

Рассмотрим на функции Lookup (Рис.8 Поиск записей). Эта функция находит первую запись, удовлетворяющую критериям поиска, но не делает ее текущей, а возвращает значение указанных полей этой записи.

procedure TForm1.Button7Click(Sender: TObject);

var LookupRezults:Variant;

begin

LookupRezults:=DataModule2.Table1.Lookup(Dress,Edit5.Text,Fio);

case VarType( LookupRezults) of

varEmpty:ShowMessage(Номер не указан);

varNull:Showmessage(Запись не найдена)

else Showmessage (Фамилия клиента +LookupRezults);

end;

end;



Рис.8 Поиск записей

Запросы:

Запросы по таблице Zakaz реализуется с помощью следующей формы (Рис.9 Запросы):



Рис.9 Запросы

Обычный SQL-запрос. Поиск клиента по фамилии или букве, на которую начинается фамилия (Рис.10 Простой SQL-запрос).

Текст запроса:

procedure TForm9.Button1Click(Sender: TObject);

begin

DataModule2.Query1.SQL.Text:=select * from Zakaz where Fio like+chr(39)+ % +Edit1.Text+%+chr(39);

DataModule2.Query1.Active:=true;

Form10.show;

end;



Рис.10 Простой SQL-запрос

Параметрический запрос (Рис.11 Параметрический запрос). Выдает записи соответствующие введенному значению (название кафе). procedure TForm11.FormActivate(Sender: TObject);

begin

with DataModule2.Query3 do

begin

Params[0].AsString:=Form9.Edit2.Text;

Active:=true;

end;

Label1.Caption:=Колечство найденных записей = ;

Label1.Caption:=Label1.Caption++inttostr(DataModule2.Query3.RecordCount);

N_Row:=DataModule2.Query3.RecordCount;

end;  Select * from Zakaz

Where Cafe=:KK  

Рис.11 Параметрический запрос

Агрегатные функции. Подсчитывает среднюю стоимость платья (Рис.11 Агрегатные функции). procedure TForm8.FormShow(Sender: TObject);

begin

DataModule2.Query5.Active:=true;

end;  Select AVG(Cost) from Dress  

Рис.12 Агрегатные функции

Действия с таблицей (добавление, редактирование, удаление записей):

Добавление

Добавление записей в таблице Zakaz реализуется с помощью следующей формы (Рис.13 Добавление):



Рис.13 Добавление

Загрузить картинку procedure TForm7.Button1Click(Sender: TObject);

begin

Image1.Visible:=True;

If OpenDialog1.Execute then

if OpenDialog1.FileName<> then

begin

Image1.Picture.LoadFromFile(OpenDialog1.FileName);

fname:=OpenDialog1.FileName;

Clickk:=True

end

else ShowMessage(Ioeaea n oaeeii);

end;  Оk procedure TForm7.BitBtn1Click(Sender: TObject);

begin

If clickk then

begin

DataModule2.Table1.Append;

DataModule2.Table1.FieldByName(ID).AsInteger:=

DataModule2.Table1.RecordCount+1;

DataModule2.Table1.FieldByName(Fio).AsString:=Edit1.Text;

DataModule2.Table1.FieldByName(Dress).AsInteger:=

strtoint(label4.Caption);

DataModule2.Table1.FieldByName(Cafe).AsString:= Edit3.Text;

DataModule2.Table1Foto.LoadFromFile(fname);

DataModule2.Table1.Post;

Form7.Hide;

Form1.Show;

end

else ShowMessage(Caa?oceoa ecia?a?aiea)

end;  Выйти без сохранения Form7.Hide;

Form1.Show;  Справочник (Рис.14 Справочник) Form7.Hide;

Form3.Show;

DataModule2.Table2.Filtered:= False;

DataModule2.Table2.Active:=True;

Form3.Button1.Visible:=True;  

Рис.14 Справочник

Удаление и редактирование

Удаление и редактирование записей в таблице Zakaz осуществляется с помощью следующих кнопок, под таблицей (Рис.15 Удаление и редактирование):



Рис.15 Удаление и редактирование

Отображение в Edit procedure TForm1.DBGrid1CellClick(Column: TColumn);

begin

Edit1.Text:=DataModule2.Table1FIO.Value;

Edit2.Text:=DataModule2.Table1Dress.AsString;

Edit3.Text:=DataModule2.Table1Cafe.AsString;

Image1.Picture:=DBImage1.Picture;

end;  Удалить текущую запись procedure TForm1.Button11Click(Sender: TObject);

begin

if MessageDlg(Oaaeeou oaeouo? caienu?,mtConfirmation,

[mbYes,mbNo],0)=mrYes then DataModule2.Table1.Delete;

end;  Изменить procedure TForm1.Button1Click(Sender: TObject);

begin

Proverka;

if flag then

begin

DataModule2.Table1.Edit;

DataModule2.Table1.FieldByName(Fio).AsString:=Edit1.Text;

DataModule2.Table1.FieldByName(Dress).AsInteger:=StrToInt(Edit2.Text);

DataModule2.Table1.FieldByName(Cafe).AsString:=Edit3.Text;

if Image1.Visible=true then DataModule2.Table1Foto.LoadFromFile(fname);

DataModule2.Table1.Post;

end;

DBImage1.Visible:=True;

Image1.Visible:=False;

end;  Сменить картинку procedure TForm1.Button9Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute then

if OpenPictureDialog1.FileName<> then

begin

fname:=OpenPictureDialog1.FileName;

Image1.Picture.LoadFromFile(fName);

Image1.Visible:=true;

DBImage1.Visible:=false;

end;

end;  

COM-технологии:

В программе реализован экспорт данных в Microsoft Word и Microsoft Excel (Рис.16 COM-технологии).



Рис.16 COM-технологии

Программный код реализующий экспорт в MS Word (Рис.17 MS Word):

procedure TForm10.Button2Click(Sender: TObject);

var c,MyDoc,t:variant;

begin

WD:=CreateOleObject(Word.Application);

WD.Visible:=true;

WD.Documents.Add;

t:=Wd.Selection;

Mydoc:=WD.Documents;

t.Font.Bold:=true;

T.Font.Size:=20;

t.typeText(Iiene eeeaioa );

T.TypePAragraph;

t.font.bold:=false;

t.font.size:=14;

DataModule2.Query1.First;

while not DataModule2.Query1.Eof do

begin

t.typeText(DataModule2.Query1.FieldByName(ID).AsString+ +DataModule2.Query1.FieldByName(Fio).AsString+ +DataModule2.Query1.FieldByName(Dress).AsString+ +DataModule2.Query1.FieldByName(Cafe).AsString);

T.TypePAragraph;

DataModule2.Query1.Next;

end;

end;



Рис.17 MS Word

Программный код, реализующий экспорт в MS Excel (Рис.18 MS Excel):

procedure TForm10.Button1Click(Sender: TObject);

var i,j:integer;

begin

XL:=CreateOleObject(Excel.Application);

XL.Workbooks.Add;

//nicaaiea ?aai?ae eieae

XL.WorkBooks[1].Worksheets[1].Name:=Aaoi?u;

XL.WorkBooks[1].Worksheets[2].Name:=Aoi?ie eeno;

XL.Visible:=true;

XL.Workbooks[1].Worksheets[1].Cells[1,1]:=?;

XL.Workbooks[1].Worksheets[1].Cells[1,2]:=Eeeaioa;

XL.Workbooks[1].Worksheets[1].Cells[1,3]:=Ieaoua;

XL.Workbooks[1].Worksheets[1].Cells[1,4]:=Eaoa;

XL.Workbooks[1].Worksheets[1].Cells[1,1].font.bold:=true;

XL.Workbooks[1].Worksheets[1].Cells[1,2].font.bold:=true;

XL.Workbooks[1].Worksheets[1].Cells[1,3].font.bold:=true;

XL.Workbooks[1].Worksheets[1].Cells[1,4].font.bold:=true;

for j:=1 to 4 do

begin

DataModule2.Query1.First;

for i:=2 to N_Row+1 do

begin

XL.Workbooks[1].Worksheets[1].Cells[i,j]:=DBGrid1.Columns[j-1].Field.Value;

DataModule2.Query1.Next;

end;

end;

end;



Рис.18 MS Excel

Справочная система

В приложение встроена справочная система. При нажатии клавиши F1 вызывается тот раздел справки, который связан с активным в данный момент компонентом (Рис.19 Справочная система).



Рис.19 Справочная система