Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_Delphi_Теория_Контр_работа.doc
Скачиваний:
34
Добавлен:
31.05.2015
Размер:
3.15 Mб
Скачать

5.3. Создание отчета на основе параметрического запроса

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

1. Подготовка формы с полем, содержащим список. Вызов отчета целесообразно осуществить не с главного окна, а из специальной формы. В этой форме должен быть создан список для выбора параметра поиска и кнопка вызова отчета.

Пусть требуется выдать список студентов конкретной группы, шифр которой выбирается из списка. Тогда форма для реализации параметрического запроса и отчета на основе этого запроса может иметь вид, представленный на рис. 5.3.

Рис. 5.3. Форма для параметрического отчета в режиме

редактирования

В тексте программы для данной формы в разделе implementation необходимо выставить uses unit2 (если модуль данных был создан вторым) для доступа к компонентам модуля данных.

На данную форму помещены следующие компоненты:

компонент Label1 (надпись «Выберите шифр группы»);

компонент ComboBox1 (поле с раскрывающимся списком);

компонент Button1 (кнопка Вывести отчет).

Для формы в целом в событии OnActivate записывают следующую процедуру:

имя_модуля_данных.ADOTable1.First;

While not имя_модуля_данных.ADOTable1.Eof do

begin

ComboBox1.Items.Add(имя_модуля_данных.ADOTable1.fieldByName('Sh_gr').Value);

имя_модуля_данных.ADOTable1.Next;

end;

Данная процедура для компонента ComboBox1 создает список шифров групп, который выбирается из компонента имя_модуля_данных.ADOTable1, связанного с таблицей Group.

2. Подготовка параметрического запроса.

Расположить на модуле данных компонент ADOQuery (панель ADO). Для данного компонента настроить следующие свойства: в свойстве Connection выбрать ADOConnection1; в свойстве SQL щелкнуть по кнопке и в открывшемся окне набрать параметрический запрос на языке SQL.

Select S.*

from Stud S

where Sh_gr = :Sh_gr;

В данном запросе имя параметра совпадает с именем поля (запрос выбирает записи по шифру группы (поле Sh_gr)).

Закрыть окно, щелкнув по кнопке ОК.

В Инспекторе Объектов выбрать свойство Parameters и щелкнуть по кнопке в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. В строке ParamType задают ptInputOutput, раскрывают список Value и в строке Type задают тип данных (текстовый, числовой или дата).

Для активации запроса в свойстве Active выбрать true.

Во вкладке Events модуля данных для события onCreate в процедуре обработки события дописать:

ADOQuery1.Active := true;

Номер компонента может быть отличным от единицы.

3. Создание компонентов для связи с отчетом. После создания запроса следует поместить на форму компонент RvDataSetConnections из закладки Rave - . В его свойствеDataSet необходимо указать имя запроса – имя_модуля_данных.ADOQuery1.

Затем следует поместить на форму компонент RvProject из закладки Rave (). В его свойствеProjectFile, когда будет создан макет отчета в Rave Designer, следует указать имя файла проекта отчета и путь к нему.

4. Создать макет отчета в Rave Designer так, как это было описано в предыдущем пункте.

Возможный вид макета отчета представлен на рис. 5.4.

Рис. 5.4. Макет отчета в Rave Designer

Существуют некоторые особенности при формировании макета. Пока не выбран в форме параметр поиска (шифр группы), запрос не осуществляет выбор данных, т.е. источник данных пуст. Это приводит к тому, что при просмотре отчета в режиме Rave Designer не видны данные (отчет пуст).

Вторая особенность заключается в том, что при помещении компонентов полей (компонент DataText из вкладки Report) в полосу DataBand1 в свойстве DataView для каждого поля пусто. Поэтому необходимо в свойстве DataView для каждого поля вручную набирать DataView1, тогда в свойстве DataField появляется список полей, из которых можно выбрать нужное поле. При этом произойдет связь компонента DataText с конкретным полем из запроса (с полем Num_z, Fam и т.д.).

Отчет в режиме просмотра в Rave Designer будет выглядеть, как на рис. 5.5.

Рис. 5.5. Отчет в Rave Designer в режиме просмотра

Как видно из рисунка отчет пуст.

После создания макета отчета он должен быть сохранен с помощью команды меню File/Save, файлу макета отчета задают имя (например Project1.rav или Project2.rav, или какое-то другое).

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

With имя_модуля_данных.ADOQuery1 do

begin

Close;

Parameters.ParamByName('Sh_gr').Value:= ComboBox1.Items[ComboBox1.ItemIndex];

Open;

end;

RvProject1.Execute;

В этой процедуре программа сначала закрывает имя_модуля_данных.ADOQuery1, затем присваивает значение выбранного параметра поиска из компонента ComboBox1 и повторно открывает запрос.

Команда RvProject1.Execute генерирует отчет на основе макета отчета, сохраненного в файле Project1.rav (или каком-то другом).

Если список содержит даты, то используют функцию StrToDate для преобразования строки в дату. Для преобразования строки в целое число используют функцию StrToInt. Для преобразования строки в вещественное число используют функцию StrToFloat.

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

Var

Path : string;

Begin

Path := ExtractFilePath(Application.ExeName);

RvProject1.ProjectFile := Path + ‘Project1.rav’;

End;

В данном тексте Project1.rav – имя файла отчета.

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

Вид формы с выбранным параметром поиска представлен на рис. 5.6.

Рис. 5.6. Форма с выбранным параметром поиска

Вид отчета на основе параметрического запроса, когда параметр поиска выбирается из списка, представлен на рис. 5.7.

Рис. 5.7. Отчет в режиме предварительного просмотра

ЗАКЛЮЧЕНИЕ

Информационные системы находят широкое применение во всех сферах деятельности человека. Любая информационная система состоит из двух основных элементов: базы данных и приложения для работы с ней.

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

Пособие охватывает широкий круг вопросов, связанных с обработкой данных средствами Delphi:

реализация доступа к локальным и сетевым базам данных;

создание и редактирование таблиц и схем баз данных;

создание и редактирование форм для ввода данных; дизайн форм;

реализация сортировки, вычислений и фильтрации;

создание и редактирование различных запросов на выборку данных, вычислительных запросов, запросов на выполнение действий;

создание, редактирование и дизайн отчетов.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]