Разработка баз данных в Delphi. 11 Уроков

       

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


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

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

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

·        DEN – номер дня;

·        MES – номер месяца;

·        GOD – номер года;

·        TOVAR – наименование отпущенного товара;

·        POKUP – наименование покупателя;

·        KOLVO – количество единиц отпущенного товара.

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

Создадим простейший отчет, состоящий из заголовка и сведений об отпуске товара. В отчет включаются все факты отпуска товара. Сортировка производится по номеру события отпуска товара. Для этого разместим на форме компонент TTable, свяжем его с таблицей Rashod.DB и откроем (Active = True). Разместим на форме компонент TQuickRep. Поместим в его свойство DataSet значение Table1, назначив таким образом отчету НД, записи которого будут выводиться в отчете. Добавим в отчет компонент TQRBand. В его свойство BandType компонента QRBand1 по умолчанию будет установлено значение rbTitle, то есть компонент QRBand1 определяет заголовок отчета Разместим на QRBand1 компонент TQRLabel. Установим в свойство Caption этого компонента значение Отпуск товаров со склада и выберем в свойстве Font жирный наклонный шрифт высотой 16 пунктов. Вид формы отчета к этому моменту показан на рис.5.



Рис. 5. В отчете определен только его заголовок.

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



Рис. 6. Отчет с заголовком и группой детальной информации.
Для просмотра получившегося отчета щелкнем по нему правой кнопкой мыши и из всплывающего меню выберем элемент Preview. Окно предварительного просмотра отчета показано на рис. 7.

Рис. 7. Содержимое отчета в окне предварительного просмотра.
Чтобы окно предварительного просмотра открывалось при активизации формы, создадим такой обработчик события OnActivate формы:
 
procedure TForm1.FormActivate(Sender: TObject);
begin
  QuickRep1.Preview;
end;
а чтобы после выхода из окна предварительного просмотра закрывалась бы форма, на которой расположен текст, используем такой обработчик события AfterPreview:
 
procedure TForm1.QuickRep1AfterPreview(Sender: TObject);
begin
  Form1.Close;
end;

Содержание раздела