Form2.QuickRep1.Preview;
End;
После выполнения программы отчет должен содержать следующее:
Рисунок 8. Окно предыдущего пересмотра отчета
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms
Dialogs, DB, StdCtrls, Grids, DBGrids, DBTables;
Type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
Database1: TDatabase;
Table1: TTable;
DataSource1: TDataSource;
Label2: TLabel;
DBGrid2: TDBGrid;
Table2: TTable;
DataSource2: TDataSource;
Button2: TButton;
procedure Button2Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Var
Form1: TForm1;
Implementation
Uses Unit2;
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
Begin
Form2.QuickRep1.Preview;
End;
End.
Компонент TQRExpr
За помощью компоненту TQRExpr в отчет включаются данные, полученные на основе обычных или условных выражений, составленных из значений полей, математических, статичных и другого рода функций, а также нескольких системных переменных. Выражение в компоненте TQRExpr формируется с помощью специального мастера создания выражений, который вызывается в окне инспектора объектов натиском на кнопке с многоточием в строке свойства Expression этого компоненту :
Рисунок 9. Окно мастера создания выражений
В поле Enter expression можно ввести вручную или сложить с помощью мастера выражение, которое вычисляется в момент генерации отчета и помещается на место, тронутое компонентом TQRExpr.
С помощью кнопок раздела Insert at cursor position можно вставить на место, тронутое курсором в поле Enter expression, имя поля данных (кнопка Database field), одну из более чем 20 функций (кнопка Function), одну из 7 системных переменных (кнопка Variable), знака математической, логической операции или операций отношения.
Замечание. Важно помнить, что для правильной работы компоненту TQRExpr его нужно размещать только на полосе TQRBand типа rbDelail или полосе TQRSubDetail, поскольку фактически он заменяет собой вычисляемое поле НД.
Кнопка Function заставит мастера сформировать обращение к одной из встроенных функций и вставить результат, который возвращается ею, на место курсору в поле Enter expression. Доступные в мастеру встроенные функции разбиты по функциональному назначению на несколько групп и перечислены в таблице 6.
Таблица 6. Встроенные функции мастера создания выражений
Функция | Описание |
Группа Date & time DATE TIME | Возвращает строка текущей даты Возвращает строка текущего времени |
Группа Math & trig INT ( X ) FRAC ( X ) SQRT ( X ) DIV ( X, В ) | Возвращает целую часть аргумента Возвращает дробную часть аргумента Возвращает корень квадратный из аргумента Возвращает результат распределения X на В |
Группа Statistical SUM ( X ) COUNT MAX ( X ) MIN ( X ) AVERAGE ( X ) | Возвращает сумму аргумента Возвращает количество итераций Возвращает максимальное значение аргумента Возвращение минимальное значение аргумента Возвращает среднее значение аргумента |
Группа Logical IF( Exp, X, В ) TRUE FALSE | Если условие Exp истинно, возвращает X, иначе - В Возвращает значение True Возвращает значение False |
Группа Information TYPEOF ( Exp ) | Возвращает тип данных для выражения Exp |
Группа Other SRT ( X ) UPPER ( X ) LOWER ( X ) PRETTY ( X ) COPY ( S, ST, LEN) FORMATNUMERIC ( F, N ) | Возвращает строчное представление аргумента Превратит буквы строки X к прописным Превратит буквы строки X к строчным Делает первую букву строки X прописной, другие - строчными Копирует не более LEN символов строки S в строку ST Форматирует число N в соответствии со строкой формата F |
После выбора функции мастер создает дополнительное окно для формирования значений аргумента (аргументов), например такое, как показано на рисунке 10.
Рисунок 10. Пример окна для формирования значений аргументов
Рядом с каждой строкой Argument N (по количества аргументов функции) расположенная кнопка, натиск на которые открывает основное окно мастера (рис.10). Это позволяет формировать сложные обращения к функциям, аргументы которых могут содержать произвольные выражения.
Кнопка Variable в основном окне мастера открывает доступ к одной из системных переменных :
PAGENUMBER - номер текущей страницы отчета;
COLUMNUMBER - номер текущей колонки отчета;
REPORTTITLE - название отчета (свойство TQuickRep.ReportTitle);
APPSTARTTIME - время запуска программы;
APPSTARTDATE - дата запуска программы;
APPNAME - название программы.
Пример: который демонстрирует работу компоненту TQRExpr. Для этого изменим предыдущий пример "Создания самого простого отчета" : объединим поля BOOK, IZDAT, AUTHOR; прибавим колонку подсчету суммы по товару и подсчитаем общую сумму книг.
Окно отчета на этапе конструирования выглядит следующим образом:
Рисунок 11. Окно отчета на этапе конструирования
Для объединения полей BOOK, IZDAT, AUTHOR разместим в отчете компонент TQRExpr1 на полосе TQRBand2 типа rbDelail. В свойстве Expression необходимо реализовать выражение:
BOOK + ' \ ' + IZDAT + ' \ ' + AUTHOR
Для подсчета суммы разместим в отчете компонент TQRExpr2 на полосе TQRBand2 типа rbDelail. В свойстве Expression необходимо реализовать выражение:
KOLVO * PRICE
Для подсчета общей суммы разместим в отчете компонент TQRExpr3 на полосе TQRBand2 типа rbSummary. В свойстве Expression необходимо реализовать выражение:
SUM ( KOLVO * PRICE )
После выполнения программы отчет должен содержать следующее:
Рисунок 12. Окно предыдущего пересмотра отчета
Дата добавления: 2016-02-27; просмотров: 1295;