Автор работы: Пользователь скрыл имя, 02 Декабря 2013 в 18:33, дипломная работа
Для эффективного управления предприятиями, фирмами и организациями различных широко внедряются системы автоматизированного управления, ядром которых являются базы данных (БД). При большом объеме информации и сложности, производимых с ней операций проблема эффективности средств организации хранения, доступа и обработки данных приобретет особое значение. Учитывая важность и значимость баз данных в современной жизни, весьма серьезные требования предъявляются к квалификации специалистов, создающих приложения на их основе.
Введение
1. Способ решения поставленной задачи
2 Проектирование базы данных
2.1 Разработка базы данных
3 Среда разработки программного продукта
3.1 Работа с базами данных Access в Delphi
3.2 Компоненты доступа к данным
3.3 Доступ к данным
3.4 Создание отчетов в Delphi
3.5 Создание запросов на языке SQL
4 Процесс разработки программного обеспечения
5 Программная и эксплуатационная документация
Заключение
Список использованной литературы
Метод Insert переводит набор данных в режим вставки и добавляет к нему новую пустую запись. Для добавления записи нужно:
- перевести набор данных в режим записи;
- задать значение полей новой записи;
- подтвердить изменения или отказаться от них.
Удаление текущей записи выполняет метод Delete, который работает только с модифицируемым набором данных. В случае успешного удаления записи текущей становится следующая запись, если же удалялась последняя запись, то курсор перемещается на предыдущую запись, которая после удаления становится последней. В отличие от некоторых СУБД, в Delphi удаляемая запись действительно удаляется из набора данных.
Порядок расположения записей может быть неопределённым. По умолчанию записи не отсортированы или сортируются. С отсортированными наборами записей работать более удобно. Сортировка заключается в упорядочивании записей по определённому полю в порядке возрастания или убывания содержащихся в нём значений. Сортировку можно выполнять и по нескольким полям.[5]
При сортировки по двум полям записи сначала упорядочиваются по значениям первого поля, а затем группы записей с одинаковым значением первого поля сортируются по второму полю. Сортировка наборов данных Table и Query выполняется различными способами. Сортировка наборов данных Table выполняется автоматически по текущему индексу. При смене индекса происходит автоматическое переупорядочивание записей. Таким образом, сортировка возможна по полям, для которых создан индекс.
Для сортировки по нескольким полям нужно создавать индекс, включающий эти поля. Направление сортировки определяется параметром ixDescending текущего индекса, по умолчанию он выключен, и упорядочивание выполняется в порядке возрастания значений. Если для индекса признак ixDescending включен, то сортировка выполняется в порядке убывания значений. Поля, по которым сортируются записи, устанавливаются через свойств IndexName.
Перемещение по набору данных заключается в управлении указателем текущей записи. Этот указатель определяет запись, с которой будут выполняться такие операции, как редактирование или удаление.
Перед перемещение указателя текущей записи набор данных автоматически переводится в режим просмотра. Если текущая запись находилась в режимах редактирования или вставки, то перед перемещением указателя сделанные в записи изменения вступают в силу, для чего набор данных автоматически вызывает метод CheckBrowseMode. Для перемещения указателя текущей записи в наборе данных используются методы:
- Процедура First – установка на первую строку;
- Процедура Next – установка на следующую строку;
- Процедура Last – установка на последнюю строку;
- Процедура Prior – установка на предыдущую строку.
При перемещении по записям набора данных связанные с ним визуальные компоненты отображают изменения данных, причем смена отображения может происходить достаточно быстро.
Побочным эффектом выполнения ряда операций с наборами данных является изменение положения указателя текущей записи. Часто этот эффект ненадёжен, так как после выполнения такой операции указатель находится не в том месте, где был до начала операции. При этом приходится снова отыскивать нужную запись и ставить на нее указатель, что неудобно даже при небольшом количестве записей.
Фильтрация записей – это задание ограничений для записей, отбираемых в набор данных. Набор данных представляет собой записи, набранные из одной или нескольких таблиц. Состав записей в наборе данных в данный момент времени зависит от установленных ограничений, в том числе и от фильтров. Система Delphi дает возможность осуществлять фильтрацию записей:
- по выражению;
- по диапазону.
По умолчанию фильтрация записей не ведётся, и набор данных Table содержит все записи связанной с ним таблицы БД, а в набор данных Query включаются все записи, удовлетворяющие SQL-запросу, содержащемуся в свойстве SQL. Фильтрация похожа на SQL–запросы, но является менее мощным средством. По сравнению с SQL–запросами фильтрация менее эффективна, так как ограничивается количество записей, видимых в наборе.
При использовании фильтрации по выражению набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей.
Достоинством фильтрации по выражению является то, что она применима к любым полям, в том числе и неиндексированным. В связи с тем, что в процессе отбора просматриваются все записи таблицы, фильтрация по выражению эффективна при небольшом количестве записей.
Для задания выражения фильтра представляет собой конструкцию, в состав которой могут входить следующие элементы:
- имена полей таблицы;
- литералы;
- операции сравнения;
- арифметические операции;
- логические операции;
- круглые и квадратные скобки.
Если имя поля содержит пробелы, то его заключают в квадратные скобки. Имена переменных в выражении фильтра использовать нельзя. Если в выражении фильтра требуется включить значение переменной или свойства какого-либо компонента, то это значение должно быть преобразовано в строковый тип. Операции сравнения представляют собой обычные отношения <,>,=,<=,>=,<>. Арифметическими являются операции +, -,* и /. В качестве логических операций можно использовать AND, OR и NOT. Круглые скобки применяются для изменения порядка выполнения арифметических и логических операций.
Набор данных Table допускается два способа задания условии фильтрации: су помощью выражения фильтра Filter и в обработчике события OnFilterRecord.
В случае набора данных Query для записей можно использовать: SQL-запрос, обработчик событияOnFilterRecord, выражения фильтра.
При фильтрации по диапазону в набор данных включаются записи, значения полей которых попадают в заданный диапазон, т.е. условием фильтрации является выражение вида «значение>нижняя граница AND значение < верхней границы». Такая фильтрация применяется к наборам данных Table.
Достоинство фильтрации по диапазону является высокая скорость обработки записей. В отличие от фильтрации по выражению, когда последовательно просматриваются все записи таблицы, фильтрация по диапазону ведётся индексно-последовательным методом, поэтому этот способ фильтрации применим только для индексированных полей. Индекс поля, диапазон которого задан как текущий с помощью свойства IndexName или IndexFieldName. Если текущий индекс не установлен, то по умолчанию используется главный индекс.
Для включения и выключения фильтрации по диапазону применяются методы ApplyRange и CancelRange. Первый из них активизирует фильтрацию, а другой - деактивизирует. Предварительно для индексного поля или полей, по которому выполняется фильтрация, следует задать диапазон допустимых значений. Когда одна из границ диапазона не задана, то диапазон открыт, то есть нижняя граница становится равной минимально возможному, а верхняя граница – максимально возможному значению этого поля.
Поиск записи, удовлетворяющей определённым условиям, означает переход на эту записи. Поиск во многом похож на фильтрацию, так как в процессе поиска также выполняется проверка полей записей на некоторые условия. Отличие заключается в том, что в результате поиска количество записей в наборе данных не изменяется.
При организации поиска записей важное значение имеет наличие индекса для полей, по которым ведётся поиск. Индексирование значительно повышает скорость обработки данных, кроме того, ряд методов может работать только с индексированными полями.
Для поиска записей по полям служат методы Locate и Lookup, причем поля могут быть не индексированными. Функция Locate ищет запись с заданными значениями полей. Если удовлетворяющие условиям поиска записи существует, то указатель текущей записи устанавливается на первую из них. Если запись найдена, функция возвращает значение True, в противном случае значение False. Обычно при разработки приложения пользователю предоставляется возможность влиять на процесс поиска су помощью управляющих элементов, расположенных на форме. При этом действия пользователя по управлению поиском в наборе данных мало, чем отличаются от аналогичных действий при выполнении фильтрации. Функция Lookup так же осуществляет поиску записи, удовлетворяющей определённым условиям, но, в отличие от метода Locate, не перемещает указатель текущей записи, а считывает информацию из полей записи. Еще одно отличие между двумя методами заключается в том, что метод Lookup осуществляет поиск на точное соответствие значений для поиска и значений в полях записей с учетом регистра букв.
Для набора данных Table имеются методы, позволяющие вести поиск записей только по индексным полям. Перед вызовом любого из этих методов следует установить в качестве текущего индекс, построенный по используемым для поиска полям. Методы поиска можно разделить на две группы, в первой группе методы, предназначенные для поиска на точное соответствие, а другую образуют методы, допускающие только частичное совпадение заданных для поиска значений и значений полей записей. Если заданным условиям поиска соответствует несколько записей, то указатель текущей записи устанавливается на первую из них. Порядок сортировки и, соответственно, порядок расположения записей в наборе даны, определяется текущим индексом, по которому и ведется поиск.[5]
3.4 Создание отчетов в Delphi
Для вывод информации не печать использовались отчеты созданные в Delphi. Отчет – это печатный документ, содержащий данные, аналогичные получаемые в результате выполнения запроса к БД. В Delphi для создания отчетов служит генератор отчетов QuickReport,содержащий обширный набор компонентов.
Компоненты, предназначенные для создания отчетов, находятся на странице QReport палитры компонентов. Большинство компонентов отчета являются визуальными. Многие из них мало отличаются от аналогичных компонентов страниц Standard, Additional и Data Controls. Например, компоненту QRImage соответствуют компоненты Image и DBImage.
Главным компонентом отчета является компонент-отчет QuickRep, представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета. По умолчанию он имеет имя QuickRep1. если на форме размещается другой отчет, он получает имя QuickRep2 и т.д.
Компонент QuickRep при перемещение его на форму имеет вид страницы формата А4, первоначально отображаемой в натуральную величину. На этапе разработки приложения можно изменить масштаб страницы и размещенных на ней компонентов с помощью свойства Zoom типа Integer (значение этого свойства устанавливается в процентах, по умолчанию 100%).
Отчет можно поместить
на любую форму приложения, например
на главную. В этом случае отчет (страница)
создает своего рода фон, на котором
расположены управляющие
Компонент QuickRep связывается с набором данных Table или Query, для которого создается отчет, с помощью свойства DataSet. При этом наборе данных Query может содержать записи, выбранные из разных таблиц. При печати отчета в процессе выполнения приложения набор даны должен быть открыт. Во время построения отчета можно использовать специально создаваемые наборы данных и размещать его на форме, при этом источник данных DataSource не требуется. На практике компонент QuickRep обычно связывается с набором данных, записи которого отображаются на форме в визуальных компонентах. В этом случае в отчет попадают записи, удовлетворяющие, например, критерию фильтрации и сортировки, задаваемому пользователем.
Отчет состоит из отдельных полос – составных частей отчета (Рисунок 5), которые определяют содержание и вид созданного документа. Полоса представляет собой элемент отчета. Каждый элемент размещаются на своем месте и предназначен для отображения соответствующих компонентов отчета и вывода данных.
Конструирование отчета в основном аналогично конструированию формы. Управлять наличием полос в отчете можно с помощью свойства Bands множественного типа TQuickRepBadns. При разработки приложения включение/отключение полосы выполняется установкой логического значения соответствующего подсвойства свойства Bands, например, для полосы заголовка отчета этим подсвойством является HasTitle. С помощью этого свойства можно включать полосы: верхний колонтитул, заголовок отчета, заголовки столбцов, область данных, итог отчета, нижний колонтитул. Так же эти полосы можно вставлять в отчет с помощью компонента полосы QRBand.
Полоса отчета (компонент QRBand) является основной составной частью отчета, на которой размещаются другие его компоненты. Типы полосы определяются свойством BandType типа TQRBandType, которое может принимать следующие значения:
- rbTitle – заголовок отчета;
- rbpageHeader – верхний колонтитул;
- rbDetail – данные записей набора данных;
- rbPageFooter – нижний колонтитул;
- rbSummary – итог отчета;
- rbGroudHeader – заголовок группы, который находится для каждой группы;
- rbGroudFooter – примечание группы, которое выводится для каждой группы;
- rbSubDetail – данные подчиненного
набора данных для отчета «
- rbColumnHeader – заголовки столбцов, печатаемые один раз на каждой странице над данными.
При установки типа полосы она автоматически размещается на своем месте в отчете выравнивается по ширине страницы отчета с учетом левого и правого полей. Разработчик не имеет возможности переместить полосу на другое место с помощью мыши. Изменить ширину полосы можно косвенно, изменяя размеры страниц и полей.
При создании в отчет нужно включить не более одной полосы каждого вида, так как при печати отчета «лишние» полосы одного и того же вида учитываться не будут. Например, если в отчет включены две полосы заголовка отчета, то ошибки транзакции не возникает, но в качестве заголовка используется первая из этих полос. Каждая полоса может иметь отдельную рамку, которой управляет свойство Frame,не отличающегося от аналогичного свойства самого компонента отчета QuickRep.
Заголовок отчета выводиться один раз на первой странице сразу под верхним колонтитулом, если он есть. В полосе заголовка обычно размещаются надписи QRLabel, содержащие требуемый текст, как правило, название всего отчета. При необходимости в заголовке можно разместить, например, сведения о названии, адресе и телефоне организации, а также логотип.
Информация о работе Информационная система контроля посещаемости студентов