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

4.6. Параметрический запрос для поиска даты, выбранной из списка или введенной в поле ввода

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

Рис. 4.3. Параметрический запрос по дате

Порядок выполнения запроса следующий:

- на модуле данных поставить компонент ADOQuery; в свойстве Connection выставить ADOConnection1; в свойстве SQL набрать запрос (например: Select S.* From Student S Where Dat_r = :Dat_r); в свойстве Parameters, Value, Type выбрать Date, в свойстве Active установить true;

- на форме создать поле для ввода данных (компонент Edit), или поставить календарь (компонент DateTimePicker из вкладки Win32), или поле со списком (компонент Combobox);

- на форму поставить компонент DataSource и в свойстве DataSet выбрать запрос, созданный на модуле данных;

- на форму поставить компонент DBGrid для просмотра результатов выполнения запроса;

- на форму поставить кнопку (компонент Button) для запуска запроса;

- для кнопки создать процедуру реализации параметрического запроса.

Вариант 1 – ввод даты для поиска в поле ввода.

На кнопке «Выполнить запрос первый раз» создают следующую процедуру.

With DM.ADOQuery2 do

begin

Close;

Parameters.ParamByName('Dat_r').Value := StrToDate(Edit1.Text);

Open;

end;

Функция StrToDate преобразует введенный текст в дату.

Вариант 2 – выбор даты из календаря.

На кнопке «Выполнить запрос второй раз» создают следующую процедуру.

DM.ADOQuery2.Close;

DM.ADOQuery2.Parameters.ParamByName('Dat_r').Value := DateTimePicker1.DateTime;

DM.ADOQuery2.Open;

Вариант 3 – выбор даты из списка.

Формирование на форме списка из поля Dat_r (дата рождения) таблицы ADOTable2 (таблица Студенты), расположенной на модуле данных DM. Формирование списка дат осуществляют на событии OnShow формы.

//Очистка старого содержания списка

ComboBox1.Items.Clear;

//Установка указателя в таблице на первую запись

DM.ADOTable2.First;

//Цикл перебора всех записей в таблице

while not DM.ADOTable2.Eof do

begin

//Добавление элемента в список

ComboBox1.Items.Add(DM.ADOTable2['Dat_r']);

//Переход к следующей записи

DM.ADOTable2.Next;

end;

На кнопке «Выполнить запрос третий раз» создают следующую процедуру.

DM.ADOQuery2.Close;

DM.ADOQuery2.Parameters.ParamByName('Dat_r').Value := StrToDate(ComboBox1.Text);

DM.ADOQuery2.Open;

5. СОЗДАНИЕ ОТЧЕТОВ

5.1. Создание отчета в Delphi

В предыдущих версиях Delphi для создания отчетов использовались компоненты вкладки QReport, с помощью которых программист мог сравнительно легко создавать достаточно сложные отчеты. Однако данные компоненты имели один существенный недостаток: их нельзя было использовать в кросс-платформенных приложениях. В связи с этим в версии 7 компоненты QReport заменены компонентами вкладки Rave, имеющими схожую функциональность (создание отчетов), но обладающих более широкими возможностями и, главное, поддерживающими кросс-платформенные приложения. Единственным существенным недостатком технологии Rave Reports является ее некоторая «сыроватость», что приводит к ряду проблем при ее использовании (некорректность работы в Windows 95/98, неотображение ряда кириллических шрифтов и т.д.).

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

На вкладке Rave имеются два ключевых компонента – RvProject и RvSystem, перенос которых в программу внедряет в нее машину генератора отчетов. Проект будущего отчета создается заранее с помощью утилиты Report Manager Designer, которая вызывается из Delphi и взаимодействует с загруженной в среду Delphi программой.

Вызов Rave Designer. Вызов отчета будет производиться с помощью пунктов меню.

Первоначально необходимо поместить на форму, где находится главное меню, компонент RVDataSetConnection (вкладка Rave) и в свойстве DataSet выбрать ADOTable (если отчет создается на основе таблицы) или ADOQuery (если отчет создается на основе запроса).

Вся дальнейшая работа осуществляется под управлением утилиты Rave Reports Designer. Для ее вызова необходимо выбрать в главном меню команду Tools/Rave Designer.

Утилита Rave Designer имеет собственную палитру компонентов, дерево объектов и набор инструментальных кнопок. Центральную часть окна занимает рабочая область с двумя вкладками – Page Designer и Event Editor.

Первая используется подобно окну формы среды Delphi – на ней размещают нужные компоненты из палитры Rave Designer.

На вкладке Event Editor можно написать код для обработчиков событий OnBeforePrint, OnBeforeReport, OnAfterPrint, OnAfterReport для любого размещенного на вкладке Page Designer компонента отчета. Обработчики пишутся на языке, который представляет собой подмножество языка Delphi.

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