304_____________________________________^___Глава 4

обычный компонент RichEdit, текст из которого автоматически передается в ком-
понент QRRichText. Вы можете, например, ввести в свое приложение компонент
RichEdit и предоставить пользователю возможность вводить в него нужный текст,
форматируя соответствующим образом слова и абзацы. Этот текст будет автомати-
чески переноситься в отчет — в размещенный в нем компонент QRRichText. Впро-
чем, и в другие компоненты QuickReport можно программно заносить тексты и
изображения, задаваемые пользователем. Например, вы можете ввести в свое при-
ложение компонент Edit и предоставить пользователю возможность вводить в него
нужный текст. А перед предварительным просмотром или печатью отчета вы мо-
жете перенести этот текст, например, в метку QRLabel, оператором

QRLabell->Caption = Editl->Text;

Компонент QRExpr позволяет отображать в отчете результаты каких-то вы-
числений. Основное свойство этого компонента — Expression. Нажав на кнопку с
многоточием около этого свойства в Инспекторе Объектов, вы попадете в окно,
представленное на рис. 4.23 а. В этом окне вы можете ввести выражение, результа-
ты которого должны отображаться в отчете на месте расположения компонента
QRExpr. Элементами выражения могут быть поля базы данных (Database field), та-
кие переменные (Variable), как текущее время, дата, номер страницы и др., функ-
ции (Function). Кнопка Validate позволяет вам проверить синтаксическую правиль-
ность введенного выражения и посмотреть результат вычисления. Поэксперимен-
тируйте с этим компонентом и вы легко поймете принципы работы с ним.

Пусть, например, вы хотите отобразить текущую дату, включая месяц и год,
но не включая числа. Обычно дата отображается в формате «дд.мм.гг». Значит вам
надо убрать из этого формата первые три символа, отображающие год. Это можно
сделать с помощью функции копирования фрагмента строки COPY(DATE, 4, 5), в
которой первый аргумент указывает строку, второй — индекс первого копируемо-
го символа, третий — число копируемых символов. В приведенном примере
DATE — функция, возвращающая текущую дату в виде строки.

Вы можете просто написать приведенную выше функцию COPY с соответству-
ющими аргументами в свойстве Expression. Но если вы хотите воспользоваться ок-
ном ввода выражений, то вам надо выполнить следующее. Нажмите кнопку Functi-
on. Перед вами откроется окно выбора функции, представленное на рис. 4.23 б. В
левом списке вы видите категории функций, а в правом —доступные функции. В
нашем примере вам надо выбрать в правом списке функцию COPY. При этом под
списками вы видите пояснение функции и ее синтаксис. Нажмите кнопку Continue
(продолжить). Вы попадете в окно ввода параметров, представленное на рис. 4.23
в. Может в его окнах непосредственно писать значения аргументов. Но если в каче-
стве аргумента выступает другая функция (в нашем примере первый аргумент —
функция DATE), то можете нажать кнопку с многоточием около окна соответству-
ющего аргумента. Вы опять попадете в окно 4.23 а, можете в нем опять нажать
Function и выбрать в появившемся окне рис. 4.23 б функцию DATE. После этого вы
вернетесь в окно рис. 4.23 в, но в качестве аргумента в нем уже будет занесена фун-
кция. Таким образом просто вводить выражения, содержащие вложенные функ-
ции.

Когда вы ввели все аргументы, щелкните на О К и вернетесь в основное окно
рис. 4.23 а, в котором будет сформировано требуемое выражение. Щелкните в нем
на О К и сформированное выражение занесется в свойство Expression.

Компонент QRSysData позволяет отображать в отчете системные данные. Его
основное свойство Data, которое может принимать следующие значения: