Создание программы 'Читальный зал'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,42 Мб
  • Опубликовано:
    2013-11-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание программы 'Читальный зал'

Задание к курсовой работе по дисциплине «Языки и системы программирования»

·   Спроектировать базу данных "Читальный зал", которая бы отображала особенности предметной области;

·   Спроектировать таблицы (3-5), удобные для учета информации в базе данных;

·   Обеспечить возможность выбора необходимой информации из таблиц и получение запросов и отчетов по этим данным;

·   Произвести выбор и обоснование СУБД и средства разработки приложения, создать и (или) описать схему базы данных и необходимых таблиц;

·   Обеспечить возможность выполнения стандартных действий над данными (добавить, сохранить, удалить, редактировать); создать удобный интерфейс пользователя;

·   Разработать приложение для работы с созданной базой данных в среде объектно-ориентированного программирования Delphi с использованием технологии ADO;

·   Оформить пояснительную записку и защитить курсовую работу.

Задание выдал: кфмн, доцент Санников Е.В.

Задание получил: студент Кириллов М.В. гр. 50-1

Дата выдачи задания: 15.02.2012

Краткое описание курсовой работы

Библиотекарь ведёт учёт всех туристов, заказавших билеты. Поэтому возникает потребность в хранении и обработке данных, сгруппированных следующим образом: - информация о ЧИТАТЕЛЯХ (код читателя, ФИО читателя, дата регистрации, адрес, телефон, место работы); - информация о ФОНДЕ (код книги, автор, название, год издания, количество экземпляров);

информация о БИБЛИОТЕКЕ (код операции, код читателя, код книги, дата выдачи, дата возврата, задолженность (логический тип), дни задолженности).

Содержание

Введение

. Теоретическая часть

.1 Выбор СУБД. MS Access

.2 Delphi

.3 Технология ADO

.4 SQL

2. Практическая часть

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

.2 Создание реляционной базы данных

.3 Инфологическое проектирование БД «Читальный зал» в среде СУБД MS Access

.4 Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»

Заключение

Список литературы

Приложение: листинг программы

Введение

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

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

База данных - это поименованная совокупность структурированных данных предметной области.

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

Целью курсовой работы является создание программы «Читальный зал», которое упрощает работу сотрудников библиотеки, что приводит к экономии большого количества времени.

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

Предметом исследования является библиотека.

Все поставленные задачи описаны на листе с заданием.

Раздел 1. Теоретическая часть

.1 Выбор СУБД. MS Access

Приложение Microsoft Access 97/2000 (далее Access) является мощной и высокопроизводительной 32-разрядной системой управления реляционной базой данных (далее СУБД).

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

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

·        СУБД разрабатываются с целью обеспечения эффективной обработки больших объёмов информации, больших, чем те, с которыми справляются электронные таблицы.

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

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

Access - мощное приложение Windows. При этом производительность СУБД органично сочетаются со всеми удобствами и преимуществами Windows [3].

Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и позволяет одновременно использовать несколько таблиц базы данных. Можно использовать таблицы, созданные в среде Paradox или dBase. Работая в среде Microsoft Office, пользователь получает в своё распоряжение полностью совместимые с Access

текстовые документы(Word), электронные таблицы(Excel), презентации(PowerPoint).С помощью новых расширений для Internet можно напрямую взаимодействовать с данными из World Wide Web и транслировать представление данных на языке HTML, обеспечивая работу с такими приложениями как Internet Explorer и Netscape Navigator. специально спроектирован для создания многопользовательских приложений, где файлы базы данных являются разделяемыми ресурсами в сети. В Access реализована надёжная система защиты от несанкционированного доступа к файлам.

База данных храниться в одном файле, но профессиональные пользователи предпочитают разделять базу данных на два файла: в одном хранятся объекты данных (таблицы, запросы), в другом объекты приложения (формы, отчёты, макросы, модули). Access - реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, сортировку по разным полям, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.

База данных. В общем смысле - совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. В терминах СУБД MS Access база данных - это набор данных и объектов, связанных общей задачей. Каждая база данных - это совокупность таблиц, запросов, форм, отчётов, макросов и модулей, которая хранится в файле с произвольным именем и расширением.MDB.Access объединяет сведения из разных источников в одной реляционной базе данных. Создаваемые формы, запросы и отчеты позволяют быстро и эффективно обновлять данные, получать ответы на вопросы, осуществлять поиск нужных данных, анализировать данные, печатать отчеты [4].Access является файл-серверной СУБД и потому применима лишь к маленьким приложениям. Отсутствует ряд механизмов, необходимых в многопользовательских БД. Существенно расширяет возможности MS Access по написанию приложений механизм связи с различными внешними СУБД: "связанные таблицы" (связь с таблицей СУБД) и "запросы к серверу".

.2 Delphi

Delphi - императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

Целевая платформа. Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ Linux.

Реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE [5].

История языка. Object Pascal - результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу - там и буду лежать» [6].

Объектно-ориентированные особенности языка

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

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

Полиморфизм. Это методы различных объектов, которые могут иметь одинаковые имена, но по внутреннему содержимому отличаются друг от друга [7].

Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.

Delphi for.NET - среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для.NET. Первая версия полноценной среды разработки Delphi для.NET - Delphi 8. Она позволяла писать приложения только для.NET. Delphi 2006 поддерживает технологию MDA с помощью ECO.

Delphi for.NET - среда разработки Delphi, а также язык Delphi <#"702276.files/image001.gif">

Рисунок №1. Начальное окно диалога Access позволяет создать новый файл БД Access или открыть существующий.

Таблицы в готовой базе данных можно создавать разными способами:

1.       конструктором;

2.       в режиме таблицы;

.         мастером таблиц;

.         импортом таблиц;

Рассмотрим создание таблиц с помощью конструктора. Для этого на вкладке Создание выберите команду Конструктор таблиц:

Рисунок №2. Выбираем Конструктор таблиц

В появившееся диалоговое окно конструктора введем необходимые поля таблицы.

         

Рисунок №3. Окно конструктора, предназначенное для редактирования структуры таблицы «БИБЛИОТЕКА»

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

Ключевое поле - это поле, однозначно определяющее каждую запись в таблице. Чтобы поле сделать ключевым, необходимо:

1.       Открыть таблицу в режиме конструктора;

2.       Выделить одно или несколько полей, которые требуется определить как ключевые.

3.       В контекстном меню выбрать пункт «Ключевое поле» или нажать кнопку  на панели инструментов.

Таблица может содержать одно и более ключевых полей, - это зависит от задач, которые ставит перед собой пользователь.

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

В свойствах этих полей укажем «Индексированное поле» укажем «Да (Совпадения не допускаются)».

Сохраним таблицу под названием «БИБЛИОТЕКА».

Аналогично создаются таблицы «ЧИТАТЕЛИ» и «ФОНД».

Для таблицы «ЧИТАТЕЛИ» в свойстве поля «Код читателя» укажем «Индексированное поле: Да (Совпадения не допускаются)». Для таблицы «ФОНД» в свойстве поля «Код книги» укажем «Индексированное поле: Да (Совпадения не допускаются)».

Имена полей таблиц вводятся самостоятельно. При написании имени поля не рекомендуется использовать символ пробела. Для каждого поля самостоятельно выбирается тип данных (текстовый, поле Memo, числовой, дата/время, денежный, счетчик, логический, и пр.), а также свойства полей (формат и размер поля, число десятичных знаков, маска ввода, подпись, значение по умолчанию и т.д.).

Рисунок №4. Окно конструктора, предназначенное для редактирования структуры таблицы «ЧИТАТЕЛИ»

Рисунок №5. Окно конструктора, предназначенное для редактирования структуры таблицы «ФОНД»

Теперь введем данные для всех трёх таблиц.

Рисунок №6. Режим просмотра таблицы «ЧИТАТЕЛИ»

Рисунок №7. Режим просмотра таблицы «ФОНД»

Рисунок №8. Режим просмотра таблицы «БИБЛИОТЕКА»

Создание межтабличных связей:

1.        

Связь между таблицами устанавливается командой «Работа с базами данных» / «Схема данных», а также с помощью кнопки.

2.        

Необходимо указать таблицы, между которыми устанавливаются связи. Для этого нажмем кнопку - и добавим все три таблицы. Установим между ними соответствующие связи. Для этого в окне «Схема данных» (рисунок №10) в таблице «ЧИТАТЕЛИ» выделим поле «Код читателя» и перетащим его мышью на поле «Код читателя» из таблицы «БИБЛИОТЕКА». Установим все параметры как указано на рисунке 10.

Рисунок №9. Диалоговое окно «Изменение связей»

Аналогично установим связь между таблицами «ФОНД» и «ЧИТАТЕЛИ». Схема связей будет выглядеть следующим образом:

Рисунок №10. Диалоговое окно «Схема данных»

2.4 Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»

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

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

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

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

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

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

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

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

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

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

Кнопка

Название

Назначение

First

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

Prior

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

Next

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

Last

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

Insert

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

Delete

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

Edit

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

Post

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

Cancel

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

Refresh

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


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

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

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

Рисунок №15. Форма String Edit Editor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

procedure TForm1.Button2Click(Sender: TObject);.Active:= False;.SQl.Text:= Edit1.Text;.Active:= True;;

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

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

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

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

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

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

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

           

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

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

procedure TForm1.Button5Click(Sender: TObject);.RvProject1.Execute;;

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

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

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

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

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

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

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

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

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

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

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

«Сортировка»TForm1.Button8Click(Sender: TObject);s,p: string;ComBobox1.text='' then showmessage('Не выбрано поле сортировки');ComBobox1.text='Код_операции' then p:='Код_операции';ComBobox1.text='Код_читателя' then p:='Код_читателя';ComBobox1.text='Код_книги' then p:='Код_книги';ComBobox1.text='Дата_выдачи' then p:='Дата_выдачи'; ComBobox1.text='Дата_возврата' then p:='Дата_возврата';

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

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

adoquery1.Close;.SQL.Clear;:='select * from БИБЛИОТЕКА order by '+p;radiobutton2.checked=true then s:=s+' desc';.SQL.Add(s);.Open;1.DataSet:=adoquery1;end;

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

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

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

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

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

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

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

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

procedure TForm1.Button11Click(Sender: TObject);.Filtered:=True;radiogroup1.ItemIndex=0 then

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

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

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

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

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

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

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

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

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

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

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

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

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

procedure TForm1.Button14Click(Sender: TObject);, Xarr: Variant;: Integer;: Integer;:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);:=CreateOLEObject('Excel.Application');.WorkBooks.add;.visible:=true;:= 1;.First;not ADOQuery1.Eof do:=1;i<=ADOQuery1.FieldCount do[i] := ADOQuery1.Fields[i-1].Value;:= i+1;;.Range['A'+IntToStr(j),(64+ADOQuery1.FieldCount)+IntToStr(j)].Value := Xarr;.Next;:=j+1;;.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;.Selection.Font.Name:='Arial cur';.Selection.Font.Size:=10;.selection.Columns.AutoFit;.Range['A1','A1'].select;;

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

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

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

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

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

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

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

procedure TForm1.Button18Click(Sender: TObject);RadioGroup5.ItemIndex=0 then begin.Visible:=true;not ADOQuery2.Locate('Код_книги',Edit22.text,[loCaseInsensitive,lopartialkey])  showMessage('Не найден');;RadioGroup5.ItemIndex=1 then begin.Visible:=true;not ADOQuery2.Locate('Автор',Edit22.text, [loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup5.ItemIndex=2 then begin.Visible:=true;not ADOQuery1.Locate('Название',Edit22.text, [loCaseInsensitive,lopartialkey])

then showMessage('Не найден'); end;RadioGroup5.ItemIndex=3 then begin.Visible:=true; if not .Locate

('Год_издания',Edit22.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup5.ItemIndex=4 then begin.Visible:=true; if not .Locate('Количество_экземпляров',Edit22.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;


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

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

Заключение

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

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

·        поиск;

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

·        поиск;

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение: листинг программы

Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids,, RpConDS, RpDefine, RpRave, ComObj;= class(TForm): TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TButton;: TDataSource;: TDBGrid;: TDBNavigator;: TDBGrid;: TDBNavigator;: TDBGrid;: TDBNavigator;: TADOConnection;: TADOQuery;: TADOQuery;: TADOQuery;: TDataSource;: TDataSource;: TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TButton;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;: TRvProject;: TRvDataSetConnection;: TButton;: TButton;: TButton;: TRadioButton;: TRadioButton;: TComboBox;: TButton;: TRadioButton;: TRadioButton;: TComboBox;: TButton;: TRadioButton;: TRadioButton;: TComboBox;: TButton;: TRadioGroup;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TRadioGroup;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TRadioGroup;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TButton;: TButton;: TRadioGroup;: TEdit;: TButton;: TRadioGroup;: TEdit;: TButton;: TRadioGroup;: TEdit;: TButton;: TEdit;: TEdit;: TEdit;Button1Click(Sender: TObject);Button4Click(Sender: TObject);Button3Click(Sender: TObject);Button2Click(Sender: TObject);Button5Click(Sender: TObject);Button6Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);Button12Click(Sender: TObject);Button13Click(Sender: TObject);Button14Click(Sender: TObject);Button15Click(Sender: TObject);Button16Click(Sender: TObject);Button17Click(Sender: TObject);Button18Click(Sender: TObject);Button19Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);.Close;TForm1.Button4Click(Sender: TObject);.Active:= False;.SQl.Text:= Edit1.Text;.Active:=True;;TForm1.Button3Click(Sender: TObject);.Active:= False;.SQl.Text:= Edit2.Text;.Active:= True;;TForm1.Button2Click(Sender: TObject);.Active:= False;.SQl.Text:= Edit3.Text;.Active:=True;;TForm1.Button5Click(Sender: TObject);.RvProject1.Execute;;TForm1.Button6Click(Sender: TObject);.RvProject2.Execute;;TForm1.Button7Click(Sender: TObject);.RvProject3.Execute;;TForm1.Button8Click(Sender: TObject);s,p:string;ComBobox1.text='' then showmessage('Не выбрано поле сортировки');ComBobox1.text='Код_операции' then p:='Код_операции';ComBobox1.text='Код_читателя' then p:='Код_читателя';ComBobox1.text='Код_книги' then p:='Код_книги';ComBobox1.text='Дата_выдачи' then p:='Дата_выдачи';

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

adoquery1.Close;.SQL.Clear;:='select * from БИБЛИОТЕКА order by '+p;radiobutton2.checked=true then s:=s+' desc';.SQL.Add(s);.Open;.DataSet:=adoquery1;;TForm1.Button9Click(Sender: TObject);a,t:string;ComBobox2.text='' then showmessage('Не выбрано поле сортировки');ComBobox2.text='Код_книги' then t:='Код_книги';ComBobox2.text='Автор' then t:='Автор';ComBobox2.text='Название' then t:='Название'; ComBobox2.text='Год_издания' then t:='Год_издания';

if ComBobox2.text='Количество_экземпляров' then t:='Количество_экземпляров';

adoquery2.Close;.SQL.Clear;:='select * from ФОНД order by '+t;radiobutton4.checked=true then a:=a+' desc';.SQL.Add(a);.Open;.DataSet:=adoquery2;;TForm1.Button10Click(Sender: TObject);u,r:string;ComBobox3.text='' then showmessage('Не выбрано поле сортировки');ComBobox3.text='Код_читателя' then r:='Код_читателя';ComBobox3.text='ФИО_читателя' then r:='ФИО_читателя';

if ComBobox2.text='Дата_регистрации' then r:='Дата_регистрации';

if ComBobox3.text='адрес' then r:='адрес';ComBobox3.text='Телефон' then r:='Телефон';ComBobox3.text='Место_работы' then r:='Место_работы';.Close;.SQL.Clear;:='select * from ЧИТАТЕЛИ order by '+r;radiobutton6.checked=true then u:=u+' desc';.SQL.Add(u);.Open;.DataSet:=adoquery3;;TForm1.Button11Click(Sender: TObject);.Filtered:=True;radiogroup1.ItemIndex=0 then ADOQuery1.Filter:='Код_операции='''+edit4.Text+'''';radiogroup1.ItemIndex=1 then ADOQuery1.Filter:='Код_читателя='''+edit5.Text+'''';radiogroup1.ItemIndex=2 then ADOQuery1.Filter:='Код_книги='''+edit6.Text+'''';radiogroup1.ItemIndex=3 then ADOQuery1.Filter:='Дата_выдачи='''+edit7.Text+'''';radiogroup1.ItemIndex=4 then ADOQuery1.Filter:='Дата_возврата='''+edit8.Text+'''';radiogroup1.ItemIndex=5 then ADOQuery1.Filter:='Задолженность='''+edit9.Text+'''';radiogroup1.ItemIndex=6 then ADOQuery1.Filter:='Дни_задолженности'''+edit10.Text+'''';radiogroup1.ItemIndex=7 then ADOQuery1.Filter:='';;TForm1.Button12Click(Sender: TObject);.Filtered:=True;radiogroup2.ItemIndex=0 then ADOQuery2.Filter:='Код_книги='''+edit13.Text+'''';radiogroup2.ItemIndex=1 then ADOQuery2.Filter:='Автор='''+edit14.Text+'''';radiogroup2.ItemIndex=2 then ADOQuery2.Filter:='Название='''+edit15.Text+'''';radiogroup2.ItemIndex=3 then ADOQuery2.Filter:='Год_издания='''+edit16.Text+'''';radiogroup2.ItemIndex=4 then ADOQuery2.Filter:='Количество_экземпляров='''+edit17.Text+'''';radiogroup2.ItemIndex=5 then ADOQuery2.Filter:='';;TForm1.Button13Click(Sender: TObject);.Filtered:=True;radiogroup3.ItemIndex=0 then ADOQuery3.Filter:='Код_читателя='''+edit18.Text+'''';radiogroup3.ItemIndex=1 then ADOQuery3.Filter:='ФИО_читателя='''+edit19.Text+'''';radiogroup3.ItemIndex=2 then ADOQuery3.Filter:='Дата_регистрации='''+edit20.Text+'''';radiogroup3.ItemIndex=3 then ADOQuery3.Filter:='адрес='''+edit11.Text+'''';radiogroup3.ItemIndex=4 then ADOQuery3.Filter:='Телефон='''+edit12.Text+'''';radiogroup3.ItemIndex=5 then ADOQuery3.Filter:='Место_работы='''+edit24.Text+'''';radiogroup3.ItemIndex=6 then ADOQuery3.Filter:='';;TForm1.Button14Click(Sender: TObject);, Xarr: Variant;: Integer;: Integer;:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);:=CreateOLEObject('Excel.Application');.WorkBooks.add;.visible:=true;:= 1;.First;not ADOQuery1.Eof do:=1;i<=ADOQuery1.FieldCount do[i] := ADOQuery1.Fields[i-1].Value;:= i+1;;.Range['A'+IntToStr(j),(64+ADOQuery1.FieldCount)+IntToStr(j)].Value := Xarr;.Next;:=j+1;;.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;.Selection.Font.Name:='Arial cur';.Selection.Font.Size:=10;.selection.Columns.AutoFit;.Range['A1','A1'].select;;TForm1.Button15Click(Sender: TObject);, Xarr: Variant;: Integer;: Integer;:=VarArrayCreate([1,ADOQuery2.FieldCount],varVariant);:=CreateOLEObject('Excel.Application');.WorkBooks.add;.visible:=true;:= 1;.First;not ADOQuery2.Eof do:=1;i<=ADOQuery2.FieldCount do[i] := ADOQuery2.Fields[i-1].Value;:= i+1;;.Range['A'+IntToStr(j),(64+ADOQuery2.FieldCount)+IntToStr(j)].Value := Xarr;.Next;:=j+1;;.Range['A1',CHR(64+ADOQuery2.FieldCount)+IntToStr(j)].select;.Selection.Font.Name:='Arial cur';.Selection.Font.Size:=10;.selection.Columns.AutoFit;.Range['A1','A1'].select;;TForm1.Button16Click(Sender: TObject); XL, Xarr: Variant;: Integer;: Integer;:=VarArrayCreate([1,ADOQuery3.FieldCount],varVariant);:=CreateOLEObject('Excel.Application');.WorkBooks.add;.visible:=true;:= 1;.First;not ADOQuery3.Eof do:=1;i<=ADOQuery3.FieldCount do[i] := ADOQuery3.Fields[i-1].Value;:= i+1; end;.Range['A'+IntToStr(j),(64+ADOQuery3.FieldCount)+IntToStr(j)].Value := Xarr;.Next;:=j+1; end;.Range['A1',CHR(64+ADOQuery3.FieldCount)+IntToStr(j)].select;.Selection.Font.Name:='Arial cur';.Selection.Font.Size:=10;.selection.Columns.AutoFit;.Range['A1','A1'].select;;TForm1.Button17Click(Sender: TObject);RadioGroup4.ItemIndex=0 then begin.Visible:=true;not ADOQuery1.Locate('Код_операции',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;RadioGroup4.ItemIndex=1 then begin.Visible:=true;not ADOQuery1.Locate('Код_читателя',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;RadioGroup4.ItemIndex=2 then begin.Visible:=true;not ADOQuery1.Locate('Код_книги',Edit21.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup4.ItemIndex=3 then begin.Visible:=true;not ADOQuery1.Locate('Дата_выдачи',Edit21.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup4.ItemIndex=4 then begin.Visible:=true;not ADOQuery1.Locate('Дата_возврата',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;RadioGroup4.ItemIndex=5 then begin.Visible:=true;not ADOQuery1.Locate('Задолженность',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;RadioGroup4.ItemIndex=6 then begin.Visible:=true; if not ADOQuery1.Locate('Дни_задолженности',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;

end;TForm1.Button18Click(Sender: TObject);RadioGroup5.ItemIndex=0 then begin Edit22.Visible:=true;not ADOQuery2.Locate('Код_книги',Edit22.text,[loCaseInsensitive,lopartialkey]) then('Не найден'); end;RadioGroup5.ItemIndex=1 then begin.Visible:=true;not ADOQuery2.Locate('Автор',Edit22.text,[loCaseInsensitive,lopartialkey]) then('Не найден'); end;RadioGroup5.ItemIndex=2 then begin Edit22.Visible:=true;not ADOQuery1.Locate('Название',Edit22.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup5.ItemIndex=3 then begin Edit22.Visible:=true;not ADOQuery2.Locate('Год_издания',Edit22.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup5.ItemIndex=4 then begin Edit22.Visible:=true; if not ADOQuery2.Locate('Количество_экземпляров',Edit22.text,[loCaseInsensitive,lopartialkey) then showMessage('Не найден'); end;;TForm1.Button19Click(Sender: TObject);if RadioGroup6.ItemIndex=0 then begin Edit23.Visible:=true;not ADOQuery3.Locate('Код_читателя',Edit23.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;

if RadioGroup6.ItemIndex=1 then begin Edit23.Visible:=true;not ADOQuery3.Locate('ФИО_читателя',Edit23.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');;RadioGroup6.ItemIndex=2 then begin Edit23.Visible:=true; if not ADOQuery3.Locate('Дата_регистрации',Edit23.text,[loCaseInsensitive,lopartialkey]) then('Не найден'); end;RadioGroup6.ItemIndex=3begin.Visible:=true; if not ADOQuery3.Locate('адрес',Edit23.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup6.ItemIndex=4 then begin.Visible:=true;not ADOQuery3.Locate('Телефон',Edit23.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;RadioGroup6.ItemIndex=5 then begin.Visible:=true;not ADOQuery3.Locate('Место_работы',Edit23.text,[loCaseInsensitive,lopartialkey]) then('Не найден');;;

Похожие работы на - Создание программы 'Читальный зал'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!