Delphi 3 и создание приложений баз данных


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


Компоненты TQuickRep и TQRBand являются минимально достаточными для создания простого отчета, не содержащего внутри себя группировок информации.

Пусть имеется таблица БД Rashod DB, содержащая сведения об отпуске материалов со склада. В состав ТБД входят поля

• N_RASH - уникальный номер события отпуска товара;

• DEN - номер дня;

• MES - номер месяца;

GOD - номер года;

• TOVAR - наименование отпущенного товара;

• POKUP - наименование покупателя,

• KOLVO - количество единиц отпущенного товара

Заметим, что дата отпуска товара хранится в разбивке на день, год и месяц Сделано так специально, с целью показать, как в отчетах используются выражения и вычисляемые поля

Создадим простейший отчет, состоящий из заголовка и сведений об отпуске товара В отчет включаются все факты отпуска товара Сортировка производится по номеру события отпуска товара

Разместим в форме компонент TTable (имя Table1), свяжем с таблицей БД Rashod DB и откроем его (Active = True) Разместим в форме компонент TQuickRep (имя QuickRep!) Установим в свойство DataSef отчета значениеTable1, назначив таким образом отчету НД, записи из которого будут выводиться в отчет Добавим в отчет компонент TQRBand (имя QRBandl) Свойство BandTvpe компонента QRBandl по умолчанию установлено в значение rb Title, то есть компонент QRBandl определяет заголовок отчета Разместим в пространстве отчета, занимаемом компонентом QRBandl, компонент TQRLabel (статический текст) с именем QRLabell Установим в свойство Caption этого компонента значение 'Отпуск товаров со склада' и установим в свойстве Font жирный наклонный шрифт высотой 16 пунктов Вид отчета показан на рис 14 4

Рис 14.4 В отчете определен только его заголовок Рис 14.5 Отчет с заготовкой и группой детальной информации

Теперь разместим в отчете данные, соответствующие текущей записи таблицы Rashod Для этого поместим в отчет новый компонент TQRBand (имя QRBandl) и установим в его свойство BandType значение rbDetail Затем разместим в группе шесть компонентов TQRDBText с именами QRDBText1. QRDBText6. Свяжем данные компоненты соответственно с полями НД -N_RASH, TOVAR, KOLVO, DEN, MES, GOD Для этого в свойство DataSet каждого компонента QRDBText установим значение Table1, а в свойство DataField- значение имени соответствующего поля Вид отчета показан на рис 14.5

Для просмотра получившегося отчета щелкнем по нему правой кнопкой мыши и из всплывающего меню выберем элемент Рreview. Получим окно предварительного просмотра отчета (рис 14.6)

Чтобы окно предварительного просмотра выдавалось при активизации формы, введем в обработчик события OnActivate формы такой код

procedure TForm1.FormActivate(Sender: TObject)

begin

QuickRep!.Preview; end;

Чтобы после выхода из окна предварительного просмотра отчета закрывалась и форма, в которой расположен отчет, введем в обработчик события AfterPreviCK отчета такой код

procedure TForm1.QuickReplAfterPreview (Sender : T0bject);

begin

Form1.Close;

end;




- Начало -  - Назад -  - Вперед -