Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.doc
Скачиваний:
160
Добавлен:
04.06.2015
Размер:
2.34 Mб
Скачать
    1. Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»

1-ый шаг. Отобразим все четыре таблицы на форме.

Для создания главной формы (рис. 13) откроем Delphi и создадим новый проект. Поместим на него кнопку Button и в свойстве Caption назовём её «Выход». Двойным щелчком нажмём на неё и пропишем:

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

Также добавляем элемент PageControl1со вкладки Win32 и создадим на нём три вкладки с именами таблиц.

Рисунок №13. Форма с кнопкой «Выход» и элементом PageControl1

Добавляем компонент DataSource со вкладки DataAccess. DataSourсe нужен для связи компонентов, чтобы связать компоненты следует в свойстве DataSet выбрать компонент ADOQuery1.

Рисунок №14. Выбор компонента DataSource

С вкладки Data Controls элементы управления DBGrid и DBNavigator . Этот компоненты позволит нам отобразить базу данных, а также получить возможность редактировать, добавлять иди удалять записи таблицы. В свойстве DataSource следует указать нужный источник данных, в данном случае DataSource1.

Рисунок №15. Компоненты DBGridиDBNavigator

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

Кнопки компонента DBNavigator

Кнопка

Название

Назначение

First

Перемещение к первой записи в наборе

Prior

Перемещение к предыдущей записи

Next

Перемещение к следующей записи

Last

Перемещение к последней записи в наборе

Insert

Вставка новой записи в месте текущего расположения указателя

Delete

Удаление текущей записи. Если значение свойства Confirm Delete равноTrue, запрашивается подтверждение

Edit

Редактирование текущей записи

Post

Сохранение изменений, внесенных в таблицу базы данных

Cancel

Отмена внесенных изменений

Refresh

Обновление таблицы путем нового считывания данных из базы данных

С вкладки ADO добавляем ADOConnection и ADOQuery . Соединяем компоненты между собой. Для этого выделяемADOQuery и в его свойстве Connection выбираем ADOConnection1.

Рисунок №16. Изменение свойства Connection

Выделяем DataSource и в его свойстве DataSet выбираем ADOQuery1. Выделяем DBNavigator1 и в его свойстве DataSource выбираем DataSource1. Выделяем ADOQuery1 и в его свойстве SQL нажимаем на три точки. Появляется диалоговое окно в котором пишем: Select * from БИБЛИОТЕКА. Нажимаем OK. Далее в появившемся окне нажимаем кнопку Cancel.

Рисунок №17. Форма StringEditEditor

Далее отключаем запрос логина и пароля при коннекте. Выделяем компонент ADOConnection и в его свойстве LoginPromt меняем его значение с True на False.

Рисунок №18. Изменение свойства LoginPromt

Далее настраиваем подключение к базе. Правой кнопкой мыши щелкнем на компонент ADOConnection, выберем пункт EditConnectionString из контекстного меню компонента, чтобы открыть диалоговое окно редактора соединения для создания соединения с провайдером (рисунок № 19).

Рисунок №19. Изменение свойства. Диалоговое окно редактора соединения, открываемого командой EditConnectionStringконтекстного меню компонентаADOConnection

Выбираем переключатель Use Connection String, нажимаем на кнопку Build (Построить) появляется диалоговое окно Data Link Properies (рисунок № 19) для задания необходимых значений параметров, в данном случае это Microsoft Jet 4.0 OLE DB Provider (обеспечивает соединение с данными MS Access).

Рисунок №20. Изменение свойства. Окно настройки параметров соединения. Страница поставщик данных

Вид закладки «Подключение (Connection)» зависит от выбранного драйвера. В нашем случае она должна выглядеть, как показано на (рисунок №21).

Рисунок №21. Изменение свойства. Окно настройки параметров соединения. Страница Соединения

Первым делом, в этом окне надо выбрать или ввести имя базы данных «Выберите или введите имя сервера». Для входа в сервер использовать лучше «Встроенную безопасность Windows NT». Теперь выберем сервер, на котором находится база данных, для этого необходимо выбрать её в строке «Выбрать базу данных на сервере». После того нажмем кнопку «Проверить подключение », чтобы протестировать соединение. Если всё указано правильно, то мы должны увидеть сообщение «Проверка соединения выполнена». Всё, можно нажать «ОК», чтобы закрыть окно создания строки подключения и ещё раз «ОК», чтобы закрыть окно редактора строки подключения.

Далее поменяем значение свойства Connected компонента ADOConnection с False на True. Таким же образом меняем значения свойства Active компонента ADOQuery.

Рисунок №22. Таблица «БИБЛИОТЕКА»

В таблице «БИБЛИОТЕКА» представлена информация о коде операции, коде книги, коде читателя, дате выдачи, дате возврата, задолженности, днях задолженности (рисунок №22).

Для всех остальных таблиц созданы формы и выполнены все те же самые

действия аналогично.

Рисунок №23. Таблица «ФОНД»

В таблице «ФОНД» представлена информация о коде книги, авторе, названии, годе издания, количестве экземпляров (рисунок №23).

Рисунок №24. Таблица «СПЕЦИАЛЬНОСТИ»

В таблице «ЧИТАТЕЛИ» представлена информация о коде читателя, ФИО читателя, дате регистрации, адресе, телефоне и месте работы (рисунок №24).

Чтобы в таблице «ФОНД» также отображались данные о студенте необходимо:

  • Двойным щелчком мыши щелкаем на компонент ADOTable, таблицы «ФОНД». На появившееся окно щелкаем правой кнопкой мыши, выбираем Add all fields контекстного меню компонента и в окно добавляются все поля таблицы (рисунок № 26).

Рисунок №26. Окно ADOTable

  • Далее чтобы в нашей таблице появились новые поля, щелкаем правой кнопкой мыши по окну ADOTable, выбираем пункт New Field. В появившемся окне прописываем Name (имя, которое нужно добавить в таблицу «ФОНД»), выбираем Type, Field type: Lookup (поиск), в Key Fields (ключ области) выбираем код поставки, в Dataset (установленные данные) выбираем Form4.ADOTable1 (таблица номера из которой нам надо будет взять номер комнаты), в Lookup Keys (поиск ключей) выбираем ключевое поле таблицы «ФОНД» и в Result Field (результат области) выбираем поле код_книги.

  • Аналогично выполним для добавления новых записей «код книги» и «название» (рисунок №27 и рисунок №28).

Рисунок №27. Окно для создания нового поля «код книги»

Рисунок №28. Окно для создания нового поля «название»

Сохраняемся. В результате форма должна выглядеть так:

Рисунок №29. Форма «Читальный зал» со всеми компонентами

2-ой шаг. Создание произвольных запросов к БД.

Добавляем элемент PageControl со вкладки Win32 и создадим на нём шесть вкладок с именами задач. Добавляем компонент Edit 1 и кнопку Button. В Edit 1 пишем: Select * from (название таблицы) БИБЛИОТЕКА where 1=1.

Рисунок №30. Компонент Editи кнопкаButton

Далее двойным щелчком нажимаем на кнопку Button и прописываем там:

procedure TForm1.Button2Click(Sender: TObject);

begin

ADOQuery1.Active:= False;

ADOQuery1.SQl.Text:= Edit1.Text;

ADOQuery1.Active:= True;

end;

Рисунок №31. Код программы

Запускаем приложение. Допустим нам нужные все данные по 22-ому коду операции. Для этого в компоненте Edit вписываем Select * from БИБЛИОТЕКА where код_операции=22. После этого нажимаем кнопку «Выполнить запрос». В результате перед нами появится таблица с данными по 22-ому коду операции.

Рисунок №32. Результат запроса по9-ому коду туриста

3-ий шаг.Создания отчета: на форме размещаем компоненты RvProject и RvDtataSetConnection со вкладки Rave. В свойствах компонента RvDtataSetConnection указываем в DataSet - ADOQuery1. При запуске компонента RvProject, в появившемся диалоговом окне в меню выберем команду File/ New Data Object. В диалоговом окне DataConection выберем строку Direct Data View (рисунок №30).

Рисунок №30. Диалоговое окно DataConnections

Затем выполним команду Tools/ Report Wizards/ Simple table. В появившемся окне выберем имена полей необходимых для отчета (рис. 31).

Рисунок №31. Диалоговое окно SimpleTable

Рисунок №32. Отчет в Rave Visual Disainer

Затем данный файл сохранен под именем Project1. Создаём кнопку Button, двойным щелчком нажимаем на неё и прописываем:

procedure TForm1.Button5Click(Sender: TObject);

begin

Form1.RvProject1.Execute;

end;

В RvProject с помощью свойства ProjectFile - указываем место, где хранится отчет.

Рисунок №33. СвойствоProjectFile

Результат отчета выводится в отдельном диалоговом окне (рисунок №34).

Рисунок №34. Диалоговое окно с отчетом

Для всех остальных таблиц созданы отчеты и выполнены все те же самые действия аналогично.

4-ый шаг. Сортировка

Для вкладки «Сортировка» (это задание ограничений для записей, отбираемых в набор данных) расположенной на PageControl главной формы таблицы «БИБЛИОТЕКА», расположим два компонента RadioButton и компонент ComboBox. В свойствах выберем поле Items и пропишем в открывшемся окне поля, которые будут отображаться как кнопки (рисунок №35).

Рисунок №35. Наименование полей

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

Рисунок №36. Внешний вид компонентов сортировки

Добавим на форму кнопку Button и пропишем для неё следующее:

«Сортировка»

procedure TForm1.Button8Click(Sender: TObject);

var s,p: string;

begin

if ComBobox1.text='' then showmessage('Не выбрано поле сортировки');

if ComBobox1.text='Код_операции' then p:='Код_операции';

if ComBobox1.text='Код_читателя' then p:='Код_читателя';

if ComBobox1.text='Код_книги' then p:='Код_книги';

if ComBobox1.text='Дата_выдачи' then p:='Дата_выдачи';

if ComBobox1.text='Дата_возврата' then p:='Дата_возврата';

if ComBobox1.text='Задолженность' then p:='Задолженность';

if ComBobox1.text='Дни_задолженности' then p:='Дни_задолженности';

adoquery1.Close;

adoquery1.SQL.Clear;

s:='select * from БИБЛИОТЕКА order by '+p;

if radiobutton2.checked=true then s:=s+' desc';

adoquery1.SQL.Add(s);

adoquery1.Open;

datasource1.DataSet:=adoquery1;end;

Например, отсортируем поле «Код читателя» по возрастанию:

Рисунок №37. Сортировка поля «Код читателя» по возрастанию

А теперь попробуем по убыванию:

Рисунок №38. Сортировка поля «Код читателя» по убыванию

5-ый шаг. Фильтрация

Для вкладки «Фильтрация» (это задание ограничений для записей, отбираемых в набор данных) расположенной на PageControl главной формы таблицы «БИБЛИОТЕКА», расположим компонент RadioGroup. В свойствах выберем поле Items и пропишем в открывшемся окне поля, которые будут отображаться как кнопки (рисунок № 39).

Рисунок №39. Наименование полей

Добавим на форму компоненты Edit и пропишем для кнопки «Фильтрация» следующее:

procedure TForm1.Button11Click(Sender: TObject);

begin

ADOQuery1.Filtered:=True;

if radiogroup1.ItemIndex=0 then

ADOQuery1.Filter:='Код_операции='''+edit4.Text+'''';

if radiogroup1.ItemIndex=1 then

ADOQuery1.Filter:='Код_читателя='''+edit5.Text+'''';

if radiogroup1.ItemIndex=2 then

ADOQuery1.Filter:='Код_книги='''+edit6.Text+'''';

if radiogroup1.ItemIndex=3 then

ADOQuery1.Filter:='Дата_выдачи='''+edit7.Text+'''';

if radiogroup1.ItemIndex=4 then

ADOQuery1.Filter:='Дата_возврата='''+edit8.Text+'''';

if radiogroup1.ItemIndex=5 then

ADOQuery1.Filter:='Задолженность='''+edit9.Text+'''';

if radiogroup1.ItemIndex=6 then

ADOQuery1.Filter:='Дни_задолженности'''+edit10.Text+'''';

if radiogroup1.ItemIndex=7 then ADOQuery1.Filter:=''; end;

В результате ввода данных по запрашиванию нужного текста в соответствующем поле мы получим нужный результат (рисунок №40). Например, отфильтруем таблицу по полю «Задолженность». Вписываем в строку «Задолженность» параметр «True» и нажимаем кнопку отфильтровать. В результате появится таблица:

Рисунок №40. Результат фильтрации по полю «Задолженность»

Теперь попробуем отфильтровать таблицу по полю «код читателя». Впишем в строку «код читателя» параметр например «7». Далее нажимаем кнопку «Отфильтровать». Перед нами появиться отфильтрованная таблица:

Рисунок №41. Результат фильтрации по полю «ФИО туриста»

5-ый шаг. Экспорт в Excel

Для экспорта данных из таблицы «Клиенты» в Excel, воспользуемся и кнопкой Button. Переименуем её в «Экспорт в Excel». Щелкнем двойным щелчком по кнопке «Экспорт в Excel» и пропишем следующую процедуру:

procedure TForm1.Button14Click(Sender: TObject);

var

XL, Xarr: Variant;

i: Integer;

j: Integer;

begin

Xarr:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);

XL:=CreateOLEObject('Excel.Application');

XL.WorkBooks.add;

XL.visible:=true;

j := 1;

ADOQuery1.First;

while not ADOQuery1.Eof do

begin

i:=1;

while i<=ADOQuery1.FieldCount do

begin

Xarr[i] := ADOQuery1.Fields[i-1].Value;

I := i+1;

end;

XL.Range['A'+IntToStr(j),

CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].Value := Xarr;

ADOQuery1.Next;

j:=j+1;

end;

XL.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;

XL.Selection.Font.Name:='Arial cur';

XL.Selection.Font.Size:=10;

XL.selection.Columns.AutoFit;

XL.Range['A1','A1'].select;

end;

Запускаем приложение и нажимаем кнопку «Экспорт в Excel».

На рисунке 42 представлен экспорт данных из таблицы «ФОНД» в Microsoft Office Excel.

Рисунок №42. Экспортированные данные из таблицы «ТУРИСТЫ»

6-ой шаг. Поиск

Для вкладки «Поиск» расположенной на PageControl главной формы таблицы «ФОНД», расположим компонент RadioGroup. В свойствах выберем поле Items и пропишем в открывшемся окне поля, которые будут отображаться как Radio кнопки (рисунок №43).

Рисунок №43. Наименование полей

Добавим на форму компонент Edit, он предназначен для ввода данных поиска. Для кнопки «Выполнить поиск» пропишем процедуру поиска вводимых данных:

procedure TForm1.Button18Click(Sender: TObject);

begin

if RadioGroup5.ItemIndex=0 then begin

Edit22.Visible:=true;

if not ADOQuery2.Locate('Код_книги',Edit22.text,[loCaseInsensitive,lopartialkey])

then showMessage('Не найден');

end ;

if RadioGroup5.ItemIndex=1 then begin

Edit22.Visible:=true;

if not ADOQuery2.Locate('Автор',Edit22.text,[loCaseInsensitive,lopartialkey]) then

showMessage('Не найден');

end ;

if RadioGroup5.ItemIndex=2 then begin

Edit22.Visible:=true;

if not ADOQuery1.Locate('Название',Edit22.text,[loCaseInsensitive,lopartialkey])

then showMessage('Не найден'); end ;

if RadioGroup5.ItemIndex=3 then begin

Edit22.Visible:=true; if not

ADOQuery2.Locate

('Год_издания',Edit22.text,[loCaseInsensitive,lopartialkey]) then

showMessage('Не найден');

end ;

if RadioGroup5.ItemIndex=4 then begin

Edit22.Visible:=true; if not

ADOQuery2.Locate('Количество_экземпляров',Edit22.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');

end ;

end ;

После запуска приложения, выделяем нужное нам поле и в строке Edit вписываем параметр поиска. Например, нам нужно найти автора Илью Крылова, записываем этот параметр в строку и нажимаем на кнопку. Выделится строка содержащее в себе данные о Ильи Крылове.

Рисунок №44. Результаты поиска

Заключение

В ходе выполнения курсовой работы была разработана программа «Читальный зал», обладающая следующим функционалом:

  • просмотр и редактирование данных;

  • поиск;

  • группировка данных;

  • поиск;

  • сортировка данных;

  • Возможность экспорта данных о сотрудниках в MS EXCEL.

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

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

Список используемой литературы

  1. «Программирование в Delphi 7» - Архангельский А. Я. (Москва Издательство БИНОМ 2005 г.).

  2. «Самоучитель Паскаль и Дельфи» - Попов В. Б. (СПб Издательство Питер 2004 г.).

  3. «Учебник по Delphi 7 для начинающих» (электронный учебник, материала сайта www.PowerBuilder.sbn.bz.ru).

  4. «Самоучитель по Delphi 7 для начинающих» (электронный учебник, материала сайта www.lib.xost.ru).

  5. Программирование баз данных в Delphi. Учебный курс /Фаронов В.В, СПБ.: Питер, 2006 -495 с.

  6. Соловьёва Т. В. Электронные таблиц Microsoft EXCEL: метод. указания / Т. В. Соловьева – ХТИ – филиал КГТУ. – 2002. – 28с.

  7. Кабаева Е. В. Информатика и программирование: учебно-метод. указания / Е. В. Кабаева – ХТИ – филиал КГТУ. – 2007. – 66с.

  8. Соловьёва Т. В. Системы управления базами данных Microsoft Access: метод. указания / Т. В. Соловьева – ХТИ – филиал КГТУ. – 2003. – 35с.