Создание программы "Читальный зал"
Инфологическое проектирование базы данных "Читальный зал" в среде СУБД MS Access. Расширение теоретических и практических знаний по использованию готовых и созданию собственных БД, применяя систему объектно-ориентированного программирования Delphi.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.12.2013 |
Размер файла | 3,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Задание к курсовой работе по дисциплине «Языки и системы программирования»
Спроектировать базу данных "Читальный зал", которая бы отображала особенности предметной области;
Спроектировать таблицы (3-5), удобные для учета информации в базе данных;
Обеспечить возможность выбора необходимой информации из таблиц и получение запросов и отчетов по этим данным;
Произвести выбор и обоснование СУБД и средства разработки приложения, создать и (или) описать схему базы данных и необходимых таблиц;
Обеспечить возможность выполнения стандартных действий над данными (добавить, сохранить, удалить, редактировать); создать удобный интерфейс пользователя;
Разработать приложение для работы с созданной базой данных в среде объектно-ориентированного программирования Delphi с использованием технологии ADO;
Оформить пояснительную записку и защитить курсовую работу.
Задание выдал: кфмн, доцент Санников Е.В.
Задание получил: студент Кириллов М.В. гр. 50-1
Дата выдачи задания: 15.02.2012
Краткое описание курсовой работы
Библиотекарь ведёт учёт всех туристов, заказавших билеты. Поэтому возникает потребность в хранении и обработке данных, сгруппированных следующим образом: - информация о ЧИТАТЕЛЯХ (код читателя, ФИО читателя, дата регистрации, адрес, телефон, место работы); - информация о ФОНДЕ (код книги, автор, название, год издания, количество экземпляров);
- информация о БИБЛИОТЕКЕ (код операции, код читателя, код книги, дата выдачи, дата возврата, задолженность (логический тип), дни задолженности).
Содержание
Введение
1. Теоретическая часть
1.1 Выбор СУБД. MS Access
1.2 Delphi
1.3 Технология ADO
1.4 SQL
2. Практическая часть
2.1 Описание предметной области
2.2 Создание реляционной базы данных
2.3 Инфологическое проектирование БД «Читальный зал» в среде СУБД MS Access
2.4 Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»
Заключение
Список литературы
Приложение: листинг программы
Введение
Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД) [1].
Данная курсовая работа посвящена упрощению одной из сторон практической деятельности с использованием баз данных.
База данных - это поименованная совокупность структурированных данных предметной области.
Учитывая интегрирование компьютерных технологий в повседневную жизнь, такие учреждения как, например, библиотеки могут использовать компьютерные программы для хранения различных данных (информация о книгах, об абонементах, о читателях и т.д.).
Целью курсовой работы является создание программы «Читальный зал», которое упрощает работу сотрудников библиотеки, что приводит к экономии большого количества времени.
Задачами курсовой работы является систематизация, закрепление и расширение теоретических и практических знаний по использованию готовых и созданию собственных баз данных, применяя систему объектно-ориентированного программирования Delphi, а также развитие навыков ведения самостоятельной работы.
Предметом исследования является библиотека.
Все поставленные задачи описаны на листе с заданием.
Раздел 1. Теоретическая часть
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 Access -- реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, сортировку по разным полям, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.
База данных. В общем смысле - совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. В терминах СУБД MS Access база данных - это набор данных и объектов, связанных общей задачей. Каждая база данных - это совокупность таблиц, запросов, форм, отчётов, макросов и модулей, которая хранится в файле с произвольным именем и расширением.MDB.
Microsoft Access объединяет сведения из разных источников в одной реляционной базе данных. Создаваемые формы, запросы и отчеты позволяют быстро и эффективно обновлять данные, получать ответы на вопросы, осуществлять поиск нужных данных, анализировать данные, печатать отчеты [4].
MS Access является файл-серверной СУБД и потому применима лишь к маленьким приложениям. Отсутствует ряд механизмов, необходимых в многопользовательских БД. Существенно расширяет возможности MS Access по написанию приложений механизм связи с различными внешними СУБД: "связанные таблицы" (связь с таблицей СУБД) и "запросы к серверу".
1.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, ориентированные на разработку приложений для.NET.
Первая версия полноценной среды Delphi для.NET -- Delphi 8. Среда позволяет писать приложения только для.NET.
В Delphi 2005 можно писать приложения для.NET, используя стандартную библиотеку классов.NET и VCL для.NET. Среда позволяет писать.NET-приложения на C#. Delphi 2005 также позволяет писать обычные приложения с использованием библиотек VCL и CLX.
Delphi 8, 2005, 2006 используют Microsoft.NET Framework версии 1.1. Delphi for.NET 2007, включённая в состав CodeGear RAD Studio 2007, разработана для Microsoft.NET Framework 2.0.
Начиная с версии 2009, поддержка Delphi.NET была прекращена. Для разработки под.NET предлагается Delphi Prism.
1.3 Технология ADO
Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO), которая основана на возможностях СОМ, а именно интерфейсов OLE DB.
Технология ADO завоевала популярность у разработчиков, благодаря универсальности -- базовый' набор интерфейсов OLE DB имеется в каждой современной операционной системе Microsoft. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных и, конечно, установленная ADO. [8]
Провайдеры ADO обеспечивают соединение приложения, использующего данные через ADO, с источником данных (сервером SQL, локальной СУБД, файловой системой и т. д.). Для каждого типа хранилища данных должен существовать провайдер ADO.
Провайдер "знает" о местоположении хранилища данных и его содержании, умеет обращаться к данным с запросами и интерпретировать возвращаемую служебную информацию и результаты запросов с целью их передачи приложению.
Список установленных в данной операционной системе провайдеров доступен для выбора при установке соединения через компонент TADOConnection.
При инсталляции Microsoft ActiveX Data Objects в операционной системе устанавливаются следующие стандартные провайдеры.
· Microsoft Jet OLE DB Provider обеспечивает соединение с данными СУБД Access при посредстве технологии ОАО.
· Microsoft OLE DB Provider for Microsoft Indexing Service обеспечивает доступ только для чтения к файлам и Internet-ресурсам Microsoft Indexing Service.
· Microsoft OLE DB Provider for Microsoft Active Directory Service обеспечивает доступ к ресурсам службы каталогов (Active Directory Service).
· Microsoft OLE DB Provider for Internet Publishing позволяет использовать ресурсы, предоставляемые Microsoft FrontPage, Microsoft Internet Information Server, HTTP-файлы.
· Microsoft Data Shaping Service for OLE DB позволяет использовать иерархические наборы данных.
· Microsoft OLE DB Simple Provider предназначен для организации доступа к источникам данных, поддерживающим только базисные возможности OLE DB.
· Microsoft OLE DB Provider for ODBC drivers обеспечивает доступ к данным, которые уже "прописаны" при помощи драйверов ODBC. Однако реальное использование столь экзотичных вариантов соединений представляется проблематичным. Драйверы ODBC и так славятся своей медлительностью, поэтому дополнительный слой сервисов здесь ни к чему.
· Microsoft OLE DB Provider for Oracle обеспечивает соединение с сервером Oracle.
· Microsoft OLE DB Provider for SQL Server обеспечивает соединение с сервером Microsoft SQL Server.
В программе «BDLibrary» используется провайдер Microsoft Jet OLE DB Provider, так как таблицы данных, с которыми она взаимодействует, были созданы в СУБД Access. [8]
1.4 SQL
Компоненты Delphi для работы с базами данных были созданы в расчете на работу с SQL и архитектурой клиент/сервер. При работе с ними вы можете воспользоваться характеристиками расширенной поддержки удаленных серверов. Delphi осуществляет эту поддержку двумя способами. Во-первых, непосредственные команды из Delphi позволяют разработчику управлять таблицами, устанавливать пределы, удалять, вставлять и редактировать существующие записи. Второй способ заключается в использовании запросов на языке SQL, где строка запроса передается на сервер для ее разбора, оптимизации, выполнения и передачи обратно результатов [8].
Delphi поддерживает статический и динамический SQL. В Delphi имеется объект TQuery, который используется для хранения и выполнения SQL-запросов.
Свойство TQuery SQL содержит текст SQL-запроса, выполняемых TQuery. Данное свойство имеет тип TStrings, означающее, что оно может хранить в списке целую серию строк. Список ведет себя подобно массиву, но в действительности это специальный класс с уникальными возможностями.
Компонент TQuery позволяет выполнять два типа SQL-запросов:
§ Статические SQL-запросы
§ Динамические SQL-запросы
Статический SQL-запрос устанавливается во время проектирования и не содержит никаких параметров или переменных. Например, следующая строка является статическим SQL-запросом:
SELECT * FROM CUSTOMER WHERE CUST_NO = 1234
Динамический SQL-запрос, или, как его еще называют, параметрический запрос, включает в себя параметры для колонок или имени таблицы. Например, следующая строка является динамическим SQL-запросом:
SELECT * FROM CUSTOMER WHERE CUST_NO = :Number
Переменная Number, указанная после двоеточия - параметр, который вы назначаете во время выполнения приложения. Во время выполнения запроса параметр может изменяться.
Delphi-приложения могут использовать SQL для получения доступа к следующим БД:
§ Таблицы Paradox или dBASE, использующие локальный SQL. Допустимый синтаксис является подмножеством стандарта ANSI-standard SQL и включает основные SELECT, INSERT, UPDATE, и DELETE запросы. Для получения дополнительной информации о локальном синтаксисе SQL обратитесь к справке Using Local SQL.
§ Базы данных Local InterBase Server, включая Local InterBase Server. Допускаются любые запросы InterBase SQL. Для получения дополнительной информации о синтаксисе и ограничениях обратитесь к электронной справке SQL Statement and Function Reference.
§ Базы данных на удаленных серверах баз данных (только в версии Delphi Client/server). По-видимому вы установили подходящий SQL Link. В SQL серверах допускаются любые стандартные SQL запросы. Для получения дополнительной информации о синтаксисе и ограничениях обратитесь к электронной справке вашего сервера [8].
Раздел 2. Практическая часть
2.1 Описание предметной области
В данном курсовом проекте в качестве предметной области рассматриваются сведения о читателях, заказавших книги в библиотеке. База данных решает задачу учёта всех данных библиотеки.
В первую очередь библиотекарь ведет учет начальных данных о каждой книги, пришедшей в архив: название, жанр, год и т.д. Для удобства работы пользователя (библиотекаря), для часто повторяющихся данных должны быть созданы таблицы-справочники, так называемые классификаторы (например, справочник наименований). Тогда при вводе данных, пользователю необходимо будет лишь выбрать требуемое значение из раскрывающегося списка, а не вводить вручную. Также при изменении значения в справочнике, оно отобразиться для всех связанных записей.
В дальнейшем библиотекарь регистрирует и дополняет происходящие изменения для каждого студента: переход в другую группу, изменение адреса, получение другого кода и т. п.
Проект должен предусматривать добавление, редактирование, удаление записей каждой категории данных (например, справочников) с помощью входных форм, а также просмотр или печать необходимой информации в удобном виде при помощи выходных отчетов.
2.2 Создание реляционной базы данных
Реляционная СУБД -- СУБД, управляющая реляционными базами данных.
Система управления реляционными базами данных Microsoft Access позволяет создавать реляционные базы данных, а также обеспечивать их обработку с помощью запросов, форм и отчетов.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
§ каждый элемент таблицы -- один элемент данных;
§ все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);
§ каждый столбец имеет уникальное имя;
§ одинаковые строки в таблице отсутствуют;
§ порядок следования строк и столбцов может быть произвольным.
Базовыми понятиями реляционных СУБД являются:
§ атрибут;
§ отношение;
§ кортеж.
База данных - это организованная структура, предназначенная для хранения информации. С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения её содержимым, редактирования содержимого и отбором данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи [7].
2.3 Инфологическое проектирование БД «Читальный зал» в среде СУБД MS Access
Чтобы запустить Microsoft Access, нужно выполнить команду Пуск/Программы/Microsoft Access. Когда Access начнет работу, появится диалоговое окно, показанное на рисунке 1. Выбираем «Новая база данных». Затем необходимо сохранить БД с произвольным именем в нужный каталог. Теперь база данных с указанным именем готова к работе.
Рисунок №1. Начальное окно диалога Access позволяет создать новый файл БД Access или открыть существующий.
Таблицы в готовой базе данных можно создавать разными способами:
1. конструктором;
2. в режиме таблицы;
3. мастером таблиц;
4. импортом таблиц;
5. связью с таблицами.
Рассмотрим создание таблиц с помощью конструктора. Для этого на вкладке Создание выберите команду Конструктор таблиц:
Рисунок №2. Выбираем Конструктор таблиц
В появившееся диалоговое окно конструктора введем необходимые поля таблицы.
Рисунок №3. Окно конструктора, предназначенное для редактирования структуры таблицы «БИБЛИОТЕКА»
Объявим поле «Код читателя» и поле «Код книги» ключевыми. Очень важным при проектировании таблиц является создание ключевых полей, которые будут использованы в будущем при организации связей между таблицами.
Ключевое поле - это поле, однозначно определяющее каждую запись в таблице. Чтобы поле сделать ключевым, необходимо:
1. Открыть таблицу в режиме конструктора;
2. Выделить одно или несколько полей, которые требуется определить как ключевые.
3. В контекстном меню выбрать пункт «Ключевое поле» или нажать кнопку на панели инструментов.
Таблица может содержать одно и более ключевых полей, - это зависит от задач, которые ставит перед собой пользователь.
После создания структуры таблицы ее необходимо сохранить, а затем приступить к заполнению.
В свойствах этих полей укажем «Индексированное поле» укажем «Да (Совпадения не допускаются)».
Сохраним таблицу под названием «БИБЛИОТЕКА».
Аналогично создаются таблицы «ЧИТАТЕЛИ» и «ФОНД».
Для таблицы «ЧИТАТЕЛИ» в свойстве поля «Код читателя» укажем «Индексированное поле: Да (Совпадения не допускаются)». Для таблицы «ФОНД» в свойстве поля «Код книги» укажем «Индексированное поле: Да (Совпадения не допускаются)».
Имена полей таблиц вводятся самостоятельно. При написании имени поля не рекомендуется использовать символ пробела. Для каждого поля самостоятельно выбирается тип данных (текстовый, поле Memo, числовой, дата/время, денежный, счетчик, логический, и пр.), а также свойства полей (формат и размер поля, число десятичных знаков, маска ввода, подпись, значение по умолчанию и т.д.).
Рисунок №4. Окно конструктора, предназначенное для редактирования структуры таблицы «ЧИТАТЕЛИ»
Рисунок №5. Окно конструктора, предназначенное для редактирования структуры таблицы «ФОНД»
Теперь введем данные для всех трёх таблиц.
Рисунок №6. Режим просмотра таблицы «ЧИТАТЕЛИ»
Рисунок №7. Режим просмотра таблицы «ФОНД»
Рисунок №8. Режим просмотра таблицы «БИБЛИОТЕКА»
Создание межтабличных связей:
1.
Связь между таблицами устанавливается командой «Работа с базами данных» / «Схема данных», а также с помощью кнопки.
2.
Необходимо указать таблицы, между которыми устанавливаются связи. Для этого нажмем кнопку - и добавим все три таблицы. Установим между ними соответствующие связи. Для этого в окне «Схема данных» (рисунок №10) в таблице «ЧИТАТЕЛИ» выделим поле «Код читателя» и перетащим его мышью на поле «Код читателя» из таблицы «БИБЛИОТЕКА». Установим все параметры как указано на рисунке 10.
Рисунок №9. Диалоговое окно «Изменение связей»
Аналогично установим связь между таблицами «ФОНД» и «ЧИТАТЕЛИ». Схема связей будет выглядеть следующим образом:
Рисунок №10. Диалоговое окно «Схема данных»
2.4 Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»
1-ый шаг. Отобразим все четыре таблицы на форме.
Для создания главной формы (рис. 13) откроем Delphi и создадим новый проект. Поместим на него кнопку Button и в свойстве Caption назовём её «Выход». Двойным щелчком нажмём на неё и пропишем:
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
Также добавляем элемент 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. Форма «Читальный зал» со всеми компонентами
2-ой шаг. Создание произвольных запросов к БД.
Добавляем элемент PageControl со вкладки Win32 и создадим на нём шесть вкладок с именами задач. Добавляем компонент Edit 1 и кнопку Button. В Edit 1 пишем: Select * from (название таблицы) БИБЛИОТЕКА where 1=1.
Рисунок №27. Компонент Edit и кнопка Button
Далее двойным щелчком нажимаем на кнопку Button и прописываем там:
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Active:= False;
ADOQuery1.SQl.Text:= Edit1.Text;
ADOQuery1.Active:= True;
end;
Рисунок №28. Код программы
Запускаем приложение. Допустим нам нужные все данные по 22-ому коду операции. Для этого в компоненте Edit вписываем Select * from БИБЛИОТЕКА where код_операции=22. После этого нажимаем кнопку «Выполнить запрос». В результате перед нами появится таблица с данными по 22-ому коду операции.
Рисунок №29. Результат запроса по9-ому коду туриста
3-ий шаг.Создания отчета: на форме размещаем компоненты 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);
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с.
Приложение: листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids,
RpCon, RpConDS, RpDefine, RpRave, ComObj;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Button1: TButton;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
DataSource2: TDataSource;
DataSource3: TDataSource;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
PageControl3: TPageControl;
TabSheet10: TTabSheet;
TabSheet11: TTabSheet;
TabSheet12: TTabSheet;
TabSheet13: TTabSheet;
TabSheet14: TTabSheet;
TabSheet15: TTabSheet;
PageControl5: TPageControl;
TabSheet22: TTabSheet;
TabSheet23: TTabSheet;
TabSheet24: TTabSheet;
TabSheet25: TTabSheet;
TabSheet26: TTabSheet;
TabSheet27: TTabSheet;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
Button2: TButton;
RvProject1: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
RvProject2: TRvProject;
RvDataSetConnection2: TRvDataSetConnection;
RvProject3: TRvProject;
RvDataSetConnection3: TRvDataSetConnection;
Button5: TButton;
Button6: TButton;
Button7: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Button8: TButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
ComboBox2: TComboBox;
Button9: TButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
ComboBox3: TComboBox;
Button10: TButton;
RadioGroup1: TRadioGroup;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button11: TButton;
RadioGroup2: TRadioGroup;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Button12: TButton;
RadioGroup3: TRadioGroup;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
RadioGroup4: TRadioGroup;
Edit21: TEdit;
Button17: TButton;
RadioGroup5: TRadioGroup;
Edit22: TEdit;
Button18: TButton;
RadioGroup6: TRadioGroup;
Edit23: TEdit;
Button19: TButton;
Edit11: TEdit;
Edit12: TEdit;
Edit24: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ADOQuery1.Active:= False;
ADOQuery1.SQl.Text:= Edit1.Text;
ADOQuery1.Active:=True;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery2.Active:= False;
ADOQuery2.SQl.Text:= Edit2.Text;
ADOQuery2.Active:= True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery3.Active:= False;
ADOQuery3.SQl.Text:= Edit3.Text;
ADOQuery3.Active:=True;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Form1.RvProject1.Execute;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.RvProject2.Execute;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.RvProject3.Execute;
end;
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;
procedure TForm1.Button9Click(Sender: TObject);
var a,t:string;
begin
if ComBobox2.text='' then showmessage('Не выбрано поле сортировки');
if ComBobox2.text='Код_книги' then t:='Код_книги';
if ComBobox2.text='Автор' then t:='Автор';
if ComBobox2.text='Название' then t:='Название';
if ComBobox2.text='Год_издания' then t:='Год_издания';
if ComBobox2.text='Количество_экземпляров' then t:='Количество_экземпляров';
adoquery2.Close;
adoquery2.SQL.Clear;
a:='select * from ФОНД order by '+t;
if radiobutton4.checked=true then a:=a+' desc';
adoquery2.SQL.Add(a);
adoquery2.Open;
datasource2.DataSet:=adoquery2;
end;
procedure TForm1.Button10Click(Sender: TObject);
var u,r:string;
begin
if ComBobox3.text='' then showmessage('Не выбрано поле сортировки');
if ComBobox3.text='Код_читателя' then r:='Код_читателя';
if ComBobox3.text='ФИО_читателя' then r:='ФИО_читателя';
if ComBobox2.text='Дата_регистрации' then r:='Дата_регистрации';
if ComBobox3.text='адрес' then r:='адрес';
if ComBobox3.text='Телефон' then r:='Телефон';
if ComBobox3.text='Место_работы' then r:='Место_работы';
adoquery3.Close;
adoquery3.SQL.Clear;
u:='select * from ЧИТАТЕЛИ order by '+r;
if radiobutton6.checked=true then u:=u+' desc';
adoquery3.SQL.Add(u);
adoquery3.Open;
datasource3.DataSet:=adoquery3;
end;
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;
procedure TForm1.Button12Click(Sender: TObject);
begin
ADOQuery2.Filtered:=True;
if radiogroup2.ItemIndex=0 then ADOQuery2.Filter:='Код_книги='''+edit13.Text+'''';
if radiogroup2.ItemIndex=1 then ADOQuery2.Filter:='Автор='''+edit14.Text+'''';
if radiogroup2.ItemIndex=2 then ADOQuery2.Filter:='Название='''+edit15.Text+'''';
if radiogroup2.ItemIndex=3 then ADOQuery2.Filter:='Год_издания='''+edit16.Text+'''';
if radiogroup2.ItemIndex=4 then ADOQuery2.Filter:='Количество_экземпляров='''+edit17.Text+'''';
if radiogroup2.ItemIndex=5 then ADOQuery2.Filter:='';
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
ADOQuery3.Filtered:=True;
if radiogroup3.ItemIndex=0 then ADOQuery3.Filter:='Код_читателя='''+edit18.Text+'''';
if radiogroup3.ItemIndex=1 then ADOQuery3.Filter:='ФИО_читателя='''+edit19.Text+'''';
if radiogroup3.ItemIndex=2 then ADOQuery3.Filter:='Дата_регистрации='''+edit20.Text+'''';
if radiogroup3.ItemIndex=3 then ADOQuery3.Filter:='адрес='''+edit11.Text+'''';
if radiogroup3.ItemIndex=4 then ADOQuery3.Filter:='Телефон='''+edit12.Text+'''';
if radiogroup3.ItemIndex=5 then ADOQuery3.Filter:='Место_работы='''+edit24.Text+'''';
if radiogroup3.ItemIndex=6 then ADOQuery3.Filter:='';
end;
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;
procedure TForm1.Button15Click(Sender: TObject);
var
XL, Xarr: Variant;
i: Integer;
j: Integer;
begin
Xarr:=VarArrayCreate([1,ADOQuery2.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
ADOQuery2.First;
while not ADOQuery2.Eof do
begin
i:=1;
while i<=ADOQuery2.FieldCount do
begin
Xarr[i] := ADOQuery2.Fields[i-1].Value;
I := i+1;
end;
XL.Range['A'+IntToStr(j),
CHR(64+ADOQuery2.FieldCount)+IntToStr(j)].Value := Xarr;
ADOQuery2.Next;
j:=j+1;
end;
XL.Range['A1',CHR(64+ADOQuery2.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;
procedure TForm1.Button16Click(Sender: TObject);
var XL, Xarr: Variant;
i: Integer;
j: Integer;
begin
Xarr:=VarArrayCreate([1,ADOQuery3.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
ADOQuery3.First;
while not ADOQuery3.Eof do
begin
i:=1;
while i<=ADOQuery3.FieldCount do
begin
Xarr[i] := ADOQuery3.Fields[i-1].Value;
I := i+1; end;
XL.Range['A'+IntToStr(j),
CHR(64+ADOQuery3.FieldCount)+IntToStr(j)].Value := Xarr;
ADOQuery3.Next;
j:=j+1; end;
XL.Range['A1',CHR(64+ADOQuery3.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;
procedure TForm1.Button17Click(Sender: TObject);
begin
if RadioGroup4.ItemIndex=0 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_операции',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=1 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_читателя',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=2 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_книги',Edit21.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=3 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Дата_выдачи',Edit21.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=4 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Дата_возврата',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=5 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Задолженность',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end;
if RadioGroup4.ItemIndex=6 then begin
Edit21.Visible:=true; if not ADOQuery1.Locate('Дни_задолженности',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end;
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
if RadioGroup5.ItemIndex=0 then begin Edit22.Visible:=true;
if not ADOQuery2.Locate('Код_книги',Edit22.text,[loCaseInsensitive,lopartialkey]) then
Подобные документы
Процесс проектирования базы данных, разработка её логической структуры в соответствии с инфологической моделью предметной области. Работа с программой СУБД Access, свойства таблиц и их полей, создание межтабличных связей; инфологическое проектирование.
курсовая работа [1,7 M], добавлен 17.12.2009Создание базы данных в среде MS Access. Создание и работа с базой данных в ателье. Алгоритм решения задачи. Выбор пакета прикладных программ. Проектирование форм выходных документов с использованием СУБД MS Access. Структура записи таблиц базы данных.
курсовая работа [1,6 M], добавлен 30.01.2009Разработка простейшей базы данных с использованием приемов работы с Microsoft Access в среде программирования Delphi. Назначение базы данных, условия эксплуатации, выполнения и запуска программы "База данных районного отдела налоговой инспекции".
курсовая работа [1,3 M], добавлен 14.12.2012Рассмотрение теоретических аспектов создания баз данных с применением системы объектно-ориентированного программирования Delphi. Ознакомление с компонентами доступа. Разработка базы данных "Библиотека". Описание основ интерфейса созданной программы.
курсовая работа [1004,9 K], добавлен 26.10.2014Этапы создания обучающей программы "Трюки и Эффекты в Delphi" в интегрированной среде Borland Delphi 7 и СУБД MS Access 2010. Главное меню и организация базы данных MS Access. Основные характеристики и состав основных модулей. Описание программы.
курсовая работа [1,1 M], добавлен 10.01.2016Общая характеристика Delphi как интегрированной среды разработки программного обеспечения. СУБД Access, ее возможности. Создание базы данных в Access для комиссионного букинистического магазина. Создание запросов и фильтров. Описание работы программы.
курсовая работа [3,1 M], добавлен 25.05.2015Анализ баз данных и систем управления ими. Проектирование и создание реляционной базы данных в среде MS Access для ресторана "Дельфин": построение информационно логической модели, разработка структур таблиц базы данных и схемы данных, создание Web-узла.
курсовая работа [3,7 M], добавлен 15.11.2010Проектирование базы данных в среде СУБД MS Access. Автоматизация учета информации о товаре в магазине. Определение требований и функций системы. Анализ предметной области. Разработка, создание таблиц, запросов, форм и отчетов. Инструкция для пользователя.
отчет по практике [523,6 K], добавлен 21.04.2014Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.
курсовая работа [1,8 M], добавлен 04.02.2013Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009