- •Лабораторная работа №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.3.1.3. Примеры выражений
Ниже несколько примеров допустимых выражений:
Выражение |
Описание |
1 |
Целая константа, возвращается 1 |
1.5 |
Константа с плавающей запятой, возвращается 1.5 |
‘Delphi’ |
Строковая константа, возвращается ‘Delphi’ как строка |
True |
Логическая константа, возвращается True |
1 + 2 |
Цифровое вычисление, возвращается 3 |
2 * (3 + 2.5) |
Цифровое вычисление, возвращается 11 |
‘Delphi’ + ‘ is great’ |
Строковое вычисление, возвращается ‘Delphi is great’ |
Name |
Возвращается значение поля Name, если это присутствует |
|
Возвращается значение поля Name из таблицы Customer |
Name + ‘ ‘ + Contact |
Строковое вычисление, возвращается значение поля Name плюс пробел плюс значение поля Contact |
AmountPaid * TaxRate / 100 |
Расчет математического выражения |
‘Printed ‘+ Date |
Строковое вычисление |
‘Total amount paid is ‘ + str(AmountPaid) |
Строковое вычисление |
If (AmountPaid > 5000, ‘Large order’, ‘Small order’) |
Возвращает ‘Large order’ если AmountPaid больше чем 5000, иначе ‘Small order’ |
if(CheckField, ’X’, ’‘) |
Печатает X если CheckField истинно |
3.2. Использование выражений
Для печати выражения в отчете вы должны использовать компонент TQRExpr. Введите выражение в свойстве Expression или дважды щелкните по свойству для вызова диалога построения выражения.
По
строитель
выражений позволяет строить выражения
визуально и может оказать помощь в
изучение построения выражений.
Используйте свойство Mask для форматирования вывода. Форматирование выполняется по тем же правилам, которые действуют для компонента TQRDBText.
Если ваше выражение включает агрегатные функции типа SUM или COUNT, то вам требуется связать свойство Master с DataSet. Для простых отчетов это обычно тот же самый DataSet, который связан с TQuickRep, но в более сложном отчете со многими DataSets вы обязаны позаботиться о связи с правильным набором данных (DataSet). Выражение с агрегатной функцией пересчитывается каждый раз, когда указатель в главной таблице перемещается на следующую запись.
Следующее важное свойство для TQRExpr это ResetAfterPrint. Если вы используете агрегатные функции в выражение, вы можете желать или наоборот, чтобы выражение очищалось каждый раз после того, как оно отпечатается. Если не сбрасывать, то оно будет продолжать обновляться, но вы можете пожелать поместить выражение на подвал группы и делать отдельные вычисления для каждой группы. Установка свойства ResetAfterPrint позволяет достигнуть данного результата.
3.3. Размер стека
Текущая версия интерпретатора выражений использует стек вашего приложения для передачи параметров. Во время подготовки сложного выражения с большим количеством уровней скобок на стеке может быть занято несколько килобайт. В Delphi 1.0 размер стека по умолчанию только 16Kb и в этом случае предел может быть легко превышен, как результат ошибка времени выполнения 202, если включена проверка стека. Для увеличения размера стека в Delphi 1.0 выберите Options|Project из меню, перейдите на закладку Linker и увеличьте размер стека до 32768 байт как минимум. Следующие версии QuickReport не будут использовать стек для подготовки выражений.
