- •Лабораторная работа №5 Составление отчетов
- •Скомпилируйте приложение
- •Скомпилируйте приложение.
- •1. Первый отчет
- •1.1. Простой отчет
- •1.2. Другие типы секций
- •1.3. Получение данных
- •1.4. Фильтрация и сортировка данных
- •1.5. Добавление текста и полей данных
- •2. Создание отчетов
- •2.1. Разметка, единицы измерения и масштаб
- •2.2. Размер бумаги и границы
- •2.3. Выбор шрифта
- •2.4. Заголовок отчета и описание
- •2.5. Добавление секций
- •2.6. Размеры секций
- •2.8. Выключение секций
- •2.9. Добавление печатных компонент к отчету
- •2.2.10.4. Размер
- •2.2.10.5. Стиль шрифта и цвет текста
- •2.2.10.6. Выравнивание
- •2.2.10.7. Выравнивание по секции
- •2.2.10.8. Цвет фона и прозрачность
- •2.2.10.9. Рамки
- •2.2.10.10. Разрешение и запрет
- •2.2.10.11. Печать статического текста
- •2.11. Печать из полей базы данных
- •2.2.11.1. Форматирование вывода
- •2.2.11.2. Печать мемо полей
- •2.2.11.3. Печать простых графических фигур
- •2.12. Печать графики
- •2.2.12.1. Статические изображения
- •2.2.12.2. Изображения, хранящие в таблицах
- •2.13. Печать RichText полей
- •3. Использование выражений
- •3.1. Создание выражений
- •2.3.1.1. Использование полей базы данных в выражениях
- •2.3.1.2. Использование строк в выражениях
- •2.3.1.3. Примеры выражений
- •3.2. Использование выражений
- •3.3. Размер стека
- •4. Создание групп
2.11. Печать из полей базы данных
Наиболее простой путь печатать поле из таблицы или запроса – это использовать компонент TQRDBText. Он работает аналогично компоненту TQRLabel, но вместо свойства Caption имеет свойства DataSet и FieldName. Данные свойства используются для связывания с любым полем. Все типы полей, которые поддержаны в Delphi могут быть использованы с данным компонентом, за исключением двоичных данных из blob полей.
После выбора поля его имя показывается в редакторе, если ничего не выбрано, то ничего и не показывается.
Уникальное свойство данного компонента – это то, что компонент может работать, даже если компонент данных (data controls) запрещен. TTable и TQuery имеет метод DisableControls, который запрещает обновление данных. Это используется для увеличения скорости работы программы. Но QuickReport может получать данные даже если компонент запрещен, этим вы можете увеличить скорость генерации отчета. Но будьте осторожны, некоторые Master-Detail связи не работают в данном случае. Поэтому данная возможность не должна использоваться в случае использования TQRSubDetail компонента.
2.2.11.1. Форматирование вывода
TQRDBText использует различные опции форматирования для полей. Если форматирование не назначено, то используется формат по умолчанию назначенный Delphi и текущие установки Windows. Используется для полей типа дата (date), время (time), денежные (currency) и с плавающей запятой.
Для указания форматирования используется свойство Mask. Для различных типов полей маска работает по-разному.
Цифровые поля, включая Integer и с плавающей запятой, денежные и BCD поля форматируются с помощью функции FormatFloat. Поля дат и времени с помощью функции FormatDateTime. Информация по данным функциям можно найти в документации по Delphi.
2.2.11.2. Печать мемо полей
Memo поля печатаются также как прочие поля с помощью TQRDBText. Вы можете назначить область печати, сбросив свойства AutoSize и AutoStretch и вручную назначить размеры. Только та часть текста, которая попадает в заданные границы, будет напечатана. Для расширения memo полей установите свойство AutoStretch. QuickReport сначала старается использовать размеры, которые вы назначили, затем старается расширить компонент и секцию. Если на странице не хватает места, то текст переносится на следующую страницу -колонку. В Delphi 1.0 memo поля не могут превышать размер в 64Kb, в Delphi 2.0 и 3.0 нет лимита на размер поля.
2.2.11.3. Печать простых графических фигур
Простые графические фигуры (Shape) часто используются для создания различных визуальных эффектов и улучшения внешнего вида отчета. Например рамки вокруг компонента. Для этого может использоваться компонент TQRShape. Поместите компонент на секцию и установите его свойство в одно из следующих значений Rectangle (прямоугольник), Circle (круг), HorzLine (горизонтальная линия), VertLine (вертикальная линия), LeftAndRight или TopAndBottom. Используйте свойство Pen для назначения ширины и цвета линий и свойство Brush для назначения типа и цвета. Текущая версия QuickReport не имеет возможности автоматически расширять или выравнивать фигуры для заполнения секции, но это может быть выполнено вручную в любом обработчике событий во время генерации отчета.
