Отображение графических и мемо-полей в отчетах
QuickReport позволяет создавать отчеты с использованием любых типов данных. Если вместо определения DataSource создать обработчик события OnNeedData, можно с помощью QuickReport напечатать любые данные, меняя свойства компонентов TQRLabel, что во многих случаях используется для печати произвольной информации (иногда не имеющей отношения к базам данных).
QuickReport не имеет собственного компонента для отображения графических полей. Вместо этого можно использовать стандартные компоненты Timage или TDBImage (рис. 7).
Рис. 7. Использование TDBImage для отображения графических полей
Следует отметить, что графические поля баз данных может печатать далеко не всякий профессиональный генератор отчетов. Например, ReportSmith, входивший в комплект поставки ряда продуктов Borland, может печатать графические изображения, не имеющие непосредственного отношения к данным (например, взятые из файлов формата *.bmp), но отнюдь не графические поля таблиц.
Для отображения мемо-полей можно использовать компонент TQRDBText. Если содержимое мемо-поля, отображаемого с помощью этого компонента, не умещается в одну строку, высота этого компонента (и высота содержащего его компонента TQRBand) в режиме предварительного просмотра и при печати отчета увеличивается таким образом, чтобы внутри компонента TQRDBText уместилось все содержимое memo-поля. Чтобы избежать наложения получившегося текста на другие элементы отчета при его печати, можно просто размещать компоненты TQRDBText, отображающие memo-поля, в нижней части TQRBand (рис 7).
Рис. 7. В левой нижней части данного отчета компонент TQRDBText отображает memo-поле
Рис. 8. А вот так выглядят memo-поля в отчете
Если таких memo-полей несколько и они должны быть размещены друг под другом, можно использовать несколько компонентов TQRBand одного типа для одной записи. В этом случае печататься они будут в порядке их создания.