Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП 01. Базы данных. Часть 2 — копия.doc
Скачиваний:
33
Добавлен:
09.12.2018
Размер:
637.44 Кб
Скачать

Задание на практическую работу № 4

  1. Обеспечить возможность заполнения и редактирования таблиц не с помощью компонента DBNavigator, а заполняя поля на отдельной форме. Затем по нажатию определенной кнопки введенные пользователем значения должны заноситься в таблицу. Использовать методы Open, Insert, Post, Close…

  2. Выполнить поиск в одной таблице по значению поля, используя процедуру Lookup. В качестве результата вывести все значения найденной записи данной таблицы. Организовать на отдельной форме.

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

  4. Реализовать каскадное удаление информации в таблицах.

1.5. Практическая работа № 5: работа с отчетами

Компоненты, предназначенные для создания отчетов, находятся на странице QReport палитры компонентов.

Примечания: 1. В Borland Delphi версии 7.0 компоненты QReport по умолчанию не установлены. Для их использования необходимо выбрать пункт меню Component | Install Packages, нажать кнопку Add и указать пакет dclqrt70.bpl (он находится в каталоге X:\Program Files\Borland\Delphi7\Bin, где X — буква диска, на который установлена Delphi).

2. В Borland Delphi 7.0 имеется и более мощное средство для создания отчетов — компоненты Rave Reports. Особенности работы с этими компонентами рассмотрены в [3].

1.5.1. Создание простейшего отчета

Главным элементом отчета является компонент QuickRep, представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета.

Компонент QuickRep при помещении его на форму имеет вид страницы формата А4, первоначально отображаемый в натуральную величину. Изменить размеры компонента можно с помощью его свойств Height и Width.

Компонент QuickRep связывается с набором данных Table или Query, для которого создается отчет, с помощью свойства DataSet. На практике компонент QuickRep обычно связывается с набором данных, записи которого отображаются на форме в визуальных компонентах. В этом случае в отчет попадают записи, удовлетворяющие, например, критерию фильтрации и/или сортировки, задаваемому пользователем. Для того чтобы связать QuickRep с набором данных, необходимо указать следующее:

QuickRep1.DataSet:=Form1.Table1;

или задать свойство DataSet во время проектирования в инспекторе объектов.

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

Управлять наличием полос в отчете можно двумя путями.

Первый — с помощью свойства Bands компонента QuickRep. При разработке приложения включение/отключение полосы выполняется установкой соответствующего подсвойства свойства Bands (например, для полосы заголовка Title таким подсвойством является HasTitle). C помощью этого свойства в простой отчет можно включать следующие полосы:

  • HasPageHeader — верхний колонтитул

  • HasTitle — заголовок отчета

  • HasColumnHeader — заголовки столбцов

  • HasDetail — область данных

  • HasSummary — итог отчета

  • HasPageFooter — нижний колонтитул

Второй путь — перечисленные полосы можно вставлять в отчет с помощью компонента полосы QRBand, при этом тип вставляемой полосы устанавливается через свойство BandType этого компонента.

При создании в отчет нужно включать не более одной полосы каждого типа, т.к. при печати отчета «лишние» полосы одного и того же типа учитываться не будут. После создания полосы определенного типа в ней размещаются соответствующие компоненты, при этом необходимо использовать только компоненты страницы QReport. Можно разместить компонент отчета и вне полосы — непосредственно на компоненте-отчете QuickRep. В этом случае он будет выводиться на каждой странице отчета.

Каждая полоса может иметь отдельную рамку, которой управляет свойство Frame, не отличающееся от аналогичного свойства самого компонента отчета QuickRep.

Обычно используются следующие компоненты отчета:

  • QRLabel — надпись, содержащая текст, которая может размещаться на любой полосе, но для полос данных практически не используется;

  • QRDBText — значение поля записи набора данных, обычно размещается в полосе данных;

  • QRExpr — значение, формируемое на основе выражения, в котором могут использоваться значения полей записей; обычно применяется для полос данных и нижних колонтитулов;

  • QRSysData — системная информация, обычно используемая для итоговых полос и полос колонтитулов; ее вид определяется свойством Data.

Итак, создадим простейший отчет.

Поместите на форму компонент Table. Затем поместите компонент QuickRep. В его свойстве DataSet выберите Table1. Теперь он связан с Table1.

Примечание: если для создания отчета вы используете набор данных, находящийся на ранее созданной форме, новый компонент Table не требуется. В этом случае необходимо вручную задать в свойстве DataSet имя набора данных и формы, на которой он находится. Например, Form1.Table1.

Поместите на QuickRep полосы PageHeader (верхний колонтитул), Title, ColumnHeader и Detail. Это можно сделать, задав нужные свойства у QuickRep, как описано выше.

На полосу PageHeader поместите компонент QRSysData и установите его свойство Data в qrsDateTime, чтобы он показывал и дату, и время.

На полосу ColumnHeader поместите компоненты QRLabel, которые назовите так же, как называются поля в таблице.

На полосу Detail поместите под каждым полем компоненты QRDBText. Эти компоненты надо связать с конкретной таблицей и полем. Для этого в свойстве DataSet укажите таблицу (для таблиц других форм — с указанием имени формы, как описано выше), а в поле DataField выберите поле.

Итак, мы получили (рис. 18):

Рис. 18. Структура простейшего отчета

Чтобы просмотреть отчет во время проектирования (рис. 19), нажмите на нем правую кнопку мыши и выберите из меню пункт Preview (убедитесь, что набор данных, для которого создан отчет, активен).

Рис. 19. Предварительный просмотр созданного отчета

Теперь, чтобы во время выполнения программы получить подобный отчет, вызовите метод Preview компонента QuickRep:

Form2.QuickRep1.Preview;

Это можно сделать, например, в обработчике нажатия кнопки «Отчет» на основной форме.