Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка СУБД MySQL Borland Кузин.doc
Скачиваний:
85
Добавлен:
13.05.2015
Размер:
2.85 Mб
Скачать
    1. Создание отчетов

Для построения отчетов используются компоненты, расположенные на вкладке QReport. Поставим задачу создания отчета, который бы для каждого поставщика выводил общую информацию, перечень поставок и их общее количество. Создайте новую форму (Form7), задайте для свойстваCaptionформы значение «Отчет по поставщикам».

Поместите на форму три компонента ADODataSetи три компонентаDataSource. Свяжите каждый компонентDataSource«со своим»ADODataSet. Задайте свойства компонентовADODataSetкак указано в таблице.

Компонент

CommandText

DataSource

IndexFiledName

MasterFields

ADODataSet1

select * from providers, towns where providers.town_id=towns.town_id order by providers.provider_id

-

-

-

ADODataSet2

select * from providers, supply, projects where projects.Project_ID= supply.Project_ID AND providers.Provider_ID= supply. Provider_ID

DataSource1

Provider_ID

Provider_ID

ADODataSet3

select providers.provider_id, count(*) from providers, supply, projects where projects.Project_ID= supply.Project_ID AND providers.Provider_ID= supply. Provider_ID group by provider_id

DataSource1

Provider_ID

Provider_ID

Поместите на форму компонент QuiсkRep, представляющий собой основу отчета, и задайте для его свойстваDataSetзначениеADODataSet1.

Поместите на форму компонент QRBandи задайте для его свойстваBandTypeзначениеrbTitle. Это будет заголовок отчета. На него поместите компонентQRLabelи задайте для его свойстваCaptionзначение «Поставщики».

Поместите на форму под компонентом QRBandеще один компонентQRBandи задайте для его свойстваBandTypeзначениеrbDetail. В этой части отчета будет выводиться общая информация о поставщике. Поместите наQRBandметкиQRLabel, а также поляQRDBTextкак показано на рисунке. Для свойстваDataSetкомпонентовQRDBTextзадайте значениеADODataSet1. Свяжите компонентыQRDBTextс полями данных, задав для свойствDataFieldзначенияProvider_ID,ProviderиTown.

Поместите на форму под компонентом QRBandкомпонентQRSubDetail. Для свойстваDataSetкомпонентаQRSubDetailзадайте значениеADODataSet2. Поместите наQRSubDetailметкиQRLabel, а также поляQRDBTextкак показано на рисунке. Для свойстваDataSetкомпонентовQRDBTextзадайте значениеADODataSet2. Свяжите компонентыQRDBTextс полями данных, задав для свойствDataFieldзначенияProjectиQuantity.

Поместите на форму под компонентом QRBandеще один компонентQRSubDetail. Для свойстваDataSetкомпонентаQRSubDetailзадайте значениеADODataSet3. Поместите наQRSubDetailметкуQRLabel, а также полеQRDBTextкак показано на рисунке. Для свойстваDataSetкомпонентаQRDBTextзадайте значениеADODataSet3. Свяжите компонентQRDBTextс полем данных, задав для свойстваDataFieldзначениеcount(*).

Поместите на форму компонент еще один компонент QRBandи задайте для его свойстваBandTypeзначениеrbPageFooter. Это будет подпись отчета. Поместите наQRBandметку с произвольным тестом.

Для генерации отчета добавьте в меню главной формы приложения пункт «Отчет».

Добавьте обработчик выбора пункта меню следующего вида:

void __fastcall TForm1::N5Click(TObject *Sender)

{

Form7->Show();

Form7->QuickRep1->Preview();

}

Проверьте работу формы по генерации отчета: