ValCombo ComboBox
Список доступных таблиц БД.


FieldsL ListBox
Список полей, доступных в текущем наборе данных. Если список пуст, то будут доступны все поля набора данных.


M2 Memo
Редактор скрипта. Чтобы показать или скрыть это окно, воспользуйтесь переключателем "Скрипт".


ComboBox1 ComboBox
Список категорий форматирования. Переменная может отображаться как текст, число, дата, время, булевское значение.


Variables ListBox
Список переменных в выбранной категории. Чтобы вставить переменную в текст, щелкните на ней мышкой.


ValList ListBox
Список доступных полей в выбранной таблице БД.


Add fields... Button
Показвает диалог выбора полей для добавления к списку доступных полей.


M1 Memo
Редактор текста.


ComboBox2 ComboBox
Список способов форматирования для выбранной категории. Если в списке выбран формат "Другой", то становится доступна строка ввода пользовательского формата.


Categories ComboBox
Список категорий переменных.


Add lookup... Button
Показывает диалог, в котором можно создать новое lookup поле на основе поля из другого набора данных.


ОК Button
Запоминает все изменения и закрывает окно.


SplEdit Edit
Символ-разделитель целой и дробной части числа.


Select all Button
Выделяет все поля в списке.


Отмена Button
Отменяет все изменения и закрывает окно.


Edit3 Edit
Количество знаков в дробной части числа.


Вставить Button
Показывает диалог вставки OLE объекта.


Delete Button
Удаляет выделенные поля из списка.


LV1 ListView
Список созданных наборов данных. Двойной щелчок мышью на нужной иконке показывает редактор набора данных.


ParamsLB ListBox
Список параметров, имеющихся в тексте запроса.


Переменная Button
Позволяет быстро вставить переменную в редактируемый текст. Для быстрого вызова можно воспользоваться клавишей Insert.


Edit1 Edit
Строка форматирования. Становится доступной, если в списке выбран формат "Другой". Строки форматирования для каждого из типов описаны в справочной системе Delphi, раздел formatting strings (кроме булевского типа, где строка представлена в формате Значение1;Значение2).


Не использовать CheckBox
Возможны два варианта страницы в дизайнере: с полями печати и без них. Если поля печати включены, то они отображаются в дизайнере и все, что находится вне полей, на печать не выводится. Если отключить поля печати, то предполагается, что страница в дизайнере соответствует области печати, т.е. все, что находится на странице, будет корректно напечатано на любом принтере. Правда, при этом вид страницы в дизайнере будет немного отличаться от распечатанного документа.


Загрузить Button
Загружает рисунок из графического файла.


Обзор... Button
Вызывает диалог открытия файла с картинкой.


LB1 ListBox
Список доступных шаблонов.


Показать сетку CheckBox
Показывает на листе точечную сетку для более удобного размещения объектов.


Утолщенный CheckBox
Задает утолщение для шрифта выделения.


ComB1 ComboBox
Список принтеров, установленных в системе. Если в системе нет установленных принтеров, то в списке можно выбрать только принтер по умолчанию - это позволит работать с дизайнером и делать предварительный просмотр.


VarCombo ComboBox
Список категорий переменных.


Поле из БД Button
Позволяет быстро вставить ссылку на поле таблицы БД в редактируемый текст.


Очистить Button
Очищает рисунок.


E3 Edit
Левое поле страницы.


Memo1 Memo
Поле для ввода краткого описания шаблона.


Memo1 Memo
Описание выбранного шаблона.


Выравнивать объекты CheckBox
При перемещении объекта мышью или при изменении его размеров положение и размеры объекта меняются скачкообразно, в соответствии с шагом сетки. Это позволяет более ровно размещать объекты на листе.


Курсив CheckBox
Задает наклон для шрифта выделения.


Выбирать при открытии отчета CheckBox
Если опция включена, то при открытии отчета выбирается указанный принтер.


VarList ListBox
Список переменных в выбранной категории. Для того, чтобы назначить переменной значение, выберите из выпадающего списка в правой части окна нужную таблицу БД, затем щелкните мышкой на нужном поле из списка полей.


Memo1 Memo
Список переменных, который имеет следующую структуру:

КАТЕГОРИЯ 1

  Переменная1

  Переменная2

^ пробел обязателен!

КАТЕГОРИЯ 2

  Переменная1

  Переменная2

  ....................

Обязательно наличие хотя бы одной категории. Имена переменных пишутся после пробела.


Скрипт CheckBox
Показывает или скрывает редактор скрипта.


E4 Edit
Верхнее поле страницы.


Растянуть CheckBox
Растянуть рисунок по размерам окна.


Panel1 Panel
Выбранная картинка.


Контуром RadioButton
При перемещении или изменении размеров объект выделяется контуром.


Подчеркивание CheckBox
Задает подчеркивание для шрифта выделения.


Делать два прохода CheckBox
Опцию необходимо включать в случае, если для формирования отчета требуется выполнить два прохода. Это может понадобиться, если отчет содержит информацию об общем количестве страниц.


ValCombo ComboBox
Список доступных таблиц БД. В списке также имеется строка "Другие переменные", при выборе которой становятся доступны переменные "дата", "время", "выражение", "номер страницы" и пр.


CB1 ComboBox
Список доступных источников данных - компонентов TfrUserDataSet, TfrDBDataSet. В списке имеются также пункты "Нет" (источник данных не назначен) и "Виртуальный" (назначается источник данных типа TfrUserDataSet с количеством записей, задаваемым в соответствующем поле).


Тип секции GroupBox
Список бэндов, которые можно вставить в отчет. Для вставки бэнда выберите нужный тип и нажмите кнопку "ОК".


Крупный шрифт CheckBox
Переключает размер шрифта, используемого в редакторах текста и скрипта.


E5 Edit
Правое поле страницы.


Прозрачный RadioButton
Задает прозрачный фон для объекта, выводимого с атрибутами выделения.


ValList ListBox
Список доступных полей в выбранной таблице БД. Если выбрана строка "Другие переменные", то в списке становятся доступны переменные "дата", "время", "выражение", "номер страницы" и пр.


Инверсное RadioButton
При перемещении или изменении размеров объект выделяется инверсией.


Edit1 Edit
Поле становится доступно при выборе виртуального источника данных. Задает количество записей в источнике.


Edit1 Edit
Выражение - условие группировки. При изменении значения выражения будет сформирована новая группа. Для подстановки в строку поля из таблицы БД, используйте кнопку в правой части строки.


DatasetCB ComboBox
Список доступных таблиц БД.


Edit1 Edit
Поле для ввода искомой строки.


E1 Edit
Задает количество печатаемых копий.


Перенос слов CheckBox
Включает или выключает перенос слов в длинных строках редакторов текста и скрипта.


E6 Edit
Нижнее поле страницы.


Пикселы RadioButton
Устанавливает единицы измерения, выраженные в экранных пикселах.


Другой RadioButton
Задает фон для объекта, выводимого с атрибутами выделения.


Edit1 Edit
Поле для ввода выражения. Становится доступно при выборе из выпадающего списка строки "Другие переменные", "Выражение".


LB1 ListBox
Список бэндов, которые пересекаются с бэндом Cross data. Для каждого бэнда в списке можно назначить свой источник данных. Для этого выберите бэнд щелчком мыши, а затем выберите соответствующий ему источник.


FieldsL ListBox
Список полей в выбранной таблице БД. Для отметки полей, вставляемых в отчет, щелкайте мышкой по нужным полям, удерживая клавишу Ctrl. Чтобы отметить группу подряд идущих полей, щелкните мышкой на первом поле, и, нажав клавишу Shift, щелкните на последнем.


Различать регистр CheckBox
Если опция включена, то при поиске будет учитываться регистр.


Все RadioButton
Печать всех страниц.


Объемная CheckBox
Трехмерное отображение диаграммы.


Формат Button
Вызывает окно редактора формата переменных. Редатор переменных доступен также из контекстного меню объекта. Для быстрого вызова можно воспользоваться комбинацией клавиш Ctrl+F.


Портретная RadioButton
Устанавливает портретную ориентацию листа.


Миллиметры RadioButton
Устанавливает единицы измерения, выраженные в миллиметрах.


Edit1 Edit
Задает условие, при выполнении которого объект будет выведен с атрибутами выделения.


Переменные... Button
Показывает редактор списка переменных.


По горизонтали RadioButton
Располагает выбранные поля друг за другом по горизонтали.


С начала RadioButton
Ищет текст, начиная с первой страницы.


Одинарная CheckBox
Диаграмма может быть двух типов: одиночная и множественная (т.е. на одной координатной плоскости изображается несколько графиков). Множественная диаграмма может быть использована, например, в отчете с группами, многоуровневом отчете или cross-tab отчете.


Current page RadioButton
Печать только текущей страницы.


Редактировать Button
Редактирует содержимое OLE контейнера.


Альбомная RadioButton
Устанавливает альбомную ориентацию листа.


Дюймы RadioButton
Устанавливает единицы измерения, выраженные в дюймах.


По вертикали RadioButton
Располагает выбранные поля друг за другом по вертикали.


Продолжить RadioButton
Ищет текст, начиная с текущей страницы.


Номера: RadioButton
Печать только выбранных страниц.


OleContainer1 OleContainer
Содержимое OLE контейнера.


CB1 ComboBox
Список возможных типов фигуры.


С подписью CheckBox
Если опция включена, то рядом с диаграммой выводится поясняющая подпись.


FieldsL ListBox
Список полей набора данных, которые можно добавить в список доступных полей. Для того, чтобы добавить группу полей в список, щелкните мышкой на первом поле группы, затем, удерживая клавишу Shift, щелкните на последнем поле.


Properties... Button
Показывает редактор для выделенного набора данных. Команда также доступна с помощью двойного щелчка мыши на нужном наборе данных.


ComB1 ComboBox
Список форматов бумаги, которые поддерживаются выбранным принтером. Если принтер поддерживает пользовательский формат бумаги, то при выборе соответствующего значения становятся доступны поля для ввода размера.


4 точки RadioButton
Задает шаг сетки, равный 4 экранным пикселам.


Включая заголовки CheckBox
Добавляет к каждому полю заголовок. В качестве заголовка используется имя поля.


E2 Edit
Поле для ввода номеров печатаемых страниц.


С осями CheckBox
Показывать координатные оси на диаграмме. Для круговой диаграммы эту опцию надо отключать.


New table... Button
Создает новую таблицу БД.


NameE Edit
Имя нового lookup поля.


DetailL ListBox
Список полей подчиненного набора данных.


TypeCB ComboBox
Тип выбранного параметра.


MasterCB ComboBox
Выбор основного (master) набора данных.


E1 Edit
Ширина бумаги.


8 точек RadioButton
Задает шаг сетки, равный 8 экранным пикселам.


CB1 ComboBox
Выпадающий список установленных в системе принтеров.


Разные цвета CheckBox
Если опция включена, каждое значение в диаграмме (столбец, сектор, линия) показывается разными цветами.


Remove Button
Удаляет выделенный набор данных.


TypeCB ComboBox
Тип поля.


MasterL ListBox
Список полей основного набора данных.


ValueE Edit
Поле ввода значения параметра.


NameE Edit
Имя запроса.


E2 Edit
Высота бумаги.


18 точек (5мм) RadioButton
Задает шаг сетки, равный 18 экранным пикселам, что соответствует 5мм.


Свойства Button
Показывает диалог настройки принтера.


С пометками CheckBox
Показывать пометки над каждым значением.


New query... Button
Создает новый запрос (Query).


SizeE Edit
Размер поля. Имеет значение, если выбран тип поля "строка".


Add Button
Добавляет пару полей (из подчиненного и основного набора данных) в список связанных полей. Для добавления выделите поле в подчиненном наборе, пользуясь мышью, затем соответствующее ему поле в основном наборе, и нажмите эту кнопку.


Value: RadioButton
Присвоить параметру конкретное значение.


Fields editor... Button
Показывает диалог - редактор списка доступных полей.


Печать вплотную к пред.листу CheckBox
Опция позволяет начать печать страницы начиная со свободного места на предыдущем листе.


Цветные кнопки CheckBox
Показывает в цвете кнопки на панелях инструментов и в окне предварительного просмотра. Если опция отключена, то кнопка показывается в цвете только при наведении на нее указателя мыши.


Значение RadioButton
Показывать числовое значение в качестве пометки.


lDatasetCB ComboBox
Набор данных, который используется для lookup поля.


JoinL ListBox
Список связанных полей.


Ask for value before printing RadioButton
Перед формированием отчета запросить значение параметра в диалоге.


Params editor... Button
Показывает диалог - редактор параметров запроса.


NameE Edit
Имя таблицы.


Edit1 Edit
Задает количество колонок на странице для многоколоночных отчетов.


Редактирование после вставки CheckBox
Если опция включена, то после помещения нового объекта на страницу вызывается его редактор.


Процент RadioButton
Показывать процент в качестве пометки.


lResultCB ComboBox
Поле из набора данных lookup, которое будет результирующим.


Clear Button
Очищает список связанных полей.


Assign value from master dataset RadioButton
Взять значение параметра из основного (master) источника данных. Для этого в окне редактирования запроса надо назначить основной источник данных.


SQLMemo Memo
Текст запроса.


IndexCB ComboBox
Выбор индекса для таблицы.


E7 Edit
Задает промежуток между соседними колонками.


Название RadioButton
Показывать название в качестве пометки.


lKeyCB ComboBox
Поле из набора данных lookup, которое является ключевым.


ListCB ComboBox
Поле из набора данных lookup, которое будет отображаться в списке.


AliasCB ComboBox
Местонахождение таблиц БД, на основе которых построен запрос. Здесь может быть значение из выпадающего списка либо путь к каталогу с таблицами. Это поле можно оставить пустым, в этом случае алиас или путь надо указывать в тексте запроса.


FilterE Edit
Выражение фильтра для таблицы.


Название и процент RadioButton
Показывать название и процент в качестве пометки.


lFieldCB ComboBox
Поле из основного набора данных, которое ссылается на ключевое поле из lookup набора данных.


ComboStrings Memo
Строки списка. Если в строке присутствует символ ";", например, "декабрь;12", то в списке будет выведено слово "декабрь", а при выборе этого значения будет подставлена строка "12".


MasterE Edit
Поля, связанные с полями из основного источника данных. Для редактирования связанных полей воспользуйтесь кнопкой в правой части строки.


LoadSQL
Считывает текст SQL запроса из файла


SaveSQL
Записывает текст SQL запроса в файл


<new topic>
Показывает выпадающее меню для выбора масштаба изображения. Команда также доступна при нажатии клавиши "Пробел".


<new topic>
Открывает ранее сохраненный отчет (файл с расширением .frp). Команда также доступна при нажатии клавиш Ctrl+O.


<new topic>
Вызывает диалог сохранения файла. По умолчанию сохраняет отчет в файле .frp. Если доступны фильтры экспорта, то соответствующие типы файлов появятся в выпадающем списке "Тип файла". Команда также доступна при нажатии клавиш Ctrl+S.


<new topic>
Вызывает диалог печати файла. Команда также доступна при нажатии клавиш Ctrl+P.


<new topic>
Осуществляет поиск строки текста в сформированном отчете. Эта команда доступна также при нажатии клавиш Ctrl+F (начать поиск) и F3 (продолжить поиск).


<new topic>
Закрывает окно.


<new topic>
Отображает номер текущей страницы.


<new topic>
Отображает страницы отчета. При нажатии правой кнопки мыши выводится контекстное меню, в котором можно сменить масштаб изображения, а также редактировать содержимое текущей страницы, добавить новую страницу или удалить текущую.


Название и значение RadioButton
Показывать название и числовое значение в качестве пометки.


Шрифт... Button
Настройка параметров шрифта.


E1 Edit
Для построения графика необходимо указать имена двух объектов типа "Текст", в которых содержится название и соответствующее числовое значение. При построении отчета содержимое этих объектов будет накапливаться в мемо диаграммы. В этом поле указывается имя объекта, содержащего название.


CaptionE Edit
Текст, который будет отображаться внутри элемента.


E2 Edit
Для построения графика необходимо указать имена двух объектов типа "Текст", в которых содержится название и соответствующее числовое значение. При построении отчета содержимое этих объектов будет накапливаться в мемо диаграммы. В этом поле указывается имя объекта, содержащего числовое значение.


Строка ввода RadioButton
Элемент является строкой ввода.


E3 Edit
Объект позволяет легко строить графики типа "Top10", т.е. график, в котором представлены только первые самые большие значения, а остальные значения просуммированы в отдельную группу с названием. В этом поле указывается количество выводимых значений.


Список RadioButton
Элемент является выпадающим списком.


E4 Edit
Объект позволяет легко строить графики типа "Top10", т.е. график, в котором представлены только первые самые большие значения, а остальные значения просуммированы в отдельную группу с названием. В этом поле указывается подпись (обычно в качестве подписи используется слово "Другие").


Lookup список RadioButton
Элемент является выпадающим lookup списком.


<new topic>
Создает новую базу данных. Это обязательно при работе с IBX или ADO.


<new topic>
Имя компонента - базы данных.


<new topic>
Имя нового алиаса, представляющего эту базу данных. Если вы работаете с IBX или ADO, здесь указывается имя файла с базой данных. Чтобы выбрать файл, воспользуйтесь кнопкой справа.


<new topic>
Имя драйвера БД (при работе с BDE).


<new topic>
Параметры соединения с БД. Здесь можно указать имя пользователя, пароль и другие нужные параметры. Замечание: разные драйверы БД используют разные наименования параметров.


<new topic>
При установленной опции будет выводиться окно запроса имени пользователя и его пароля, когда вы подключаетесь к БД. Если эти параметры уже заданы в списке параметров БД, эту опцию можно отключать.


<new topic>
Список доступных БД. Выберите нужную БДиз списка, потом выберите таблицу из списка ниже. Для выбора локальных таблиц (Paradox, DBase) можно воспользоваться кнопкой "Обзор".


<new topic>
Список доступных таблиц в выбранной базе данных.


<new topic>
Вы можете выбрать таблицу прямо из файла (если вы используете локальные таблицы Paradox, DBase совместно с BDE).


<new topic>
Код, котрый нужно напечатать. Для вставки в это поле переменной FR или поля таблицы БД используйте кнопки "V" и "D" справа от строки ввода.


<new topic>
Тип штрихкода.


<new topic>
Установка этой опции приведет к формированию дополнительного проверочного кода.


<new topic>
Установка этой опции приведет к печати кода в виде читаемого текста.


<new topic>
Ориентация штрихкода.


<new topic>
Открывает файл в формате .RTF.


<new topic>
Записывает содержимое в файл формата .RTF.


<new topic>
Отменяет последнее выполненное изменение.


<new topic>
Показывает диалог установки параметров шрифта.


<new topic>
Позволяет быстро вставить переменную в текст.


<new topic>
Показывает список установленных в системе шрифтов.


<new topic>
Устанавливает размер шрифта.


<new topic>
Устанавливает или снимает утолщение у шрифта.


<new topic>
Устанавливает или снимает наклон у шрифта.


<new topic>
Устанавливает или снимает подчеркивание у шрифта.


<new topic>
Устанавливает выравнивание текста влево.


<new topic>
Устанавливает выравнивание текста по центру.


<new topic>
Устанавливает выравнивание текста вправо.


<new topic>
Устанавливает или снимает маркировку в выделенном фрагменте.


<new topic>
Устанавливает отступ для первой строки абзаца.


<new topic>
Устанавливает отступ для всех строк абзаца, кроме первой.


<new topic>
Устанавливает отступ справа для текста.


<new topic>
Содержимое объекта.


Designer's topic
Текущая страница документа. Если в документе несколько страниц, то в верхней части страницы появятся дополнительные закладки. Чтобы вывести нужную страницу, щелкните мышкой на соответствующей закладке.


<new topic>
Включает или выключает верхнюю линию рамки выделенного объекта.


<new topic>
Включает или выключает левую линию рамки выделенного объекта.


<new topic>
Включает или выключает нижнюю линию рамки выделенного объекта.


<new topic>
Включает или выключает правую линию рамки выделенного объекта.


<new topic>
Выбор цвета заливки объекта. При нажатии кнопки показывает выпадающий список цветов. Если в списке выбран цвет "Другие", то показывает стандартный диалог выбора цвета.


<new topic>
Устанавливает толщину рамки выделенного объекта. Команда также доступна при нажатии Ctrl+1..9.


<new topic>
Название шрифта, которым отображается выбранный объект "Текст". Чтобы сменить шрифт, щелкните мышью на этом поле и выберите нужный шрифт из списка. Желательно использовать шрифты с символом "Тт" - TrueType, так как они лучше масштабируются.


<new topic>
Размер шрифта, которым отображается выбранный объект "Текст". Чтобы сменить размер, щелкните мышью на кнопке со стрелкой в правой части поля и выберите нужный размер из списка. Если такого размера в списке нет, щелкните мышью на самом поле и введите размер вручную, после этого нажмите Enter.


<new topic>
Устанавливает или снимает утолщение для шрифта, которым отображается выделенный объект "Текст".


<new topic>
Устанавливает или снимает наклон для шрифта, которым отображается выделенный объект "Текст".


<new topic>
Устанавливает выравнивание текста по левому краю в выделенном объекте "Текст".


<new topic>
Устанавливает выравнивание текста по правому краю в выделенном объекте "Текст".


<new topic>
Устанавливает выравнивание текста по центру в выделенном объекте "Текст".


<new topic>
Ориентация шрифта для выбранного объекта "Текст". В нажатом положении выводит вертикальный шрифт.


<new topic>
Устанавливает вертикальное выравнивание текста (по верхнему краю, по центру и по нижнему краю) в выделенном объекте "Текст".


<new topic>
Выбор цвета шрифта. При нажатии кнопки показывает выпадающий список цветов. Если в списке выбран цвет "Другие", то показывает стандартный диалог выбора цвета.


<new topic>
Устанавливает или снимает подчеркивание для шрифта, которым отображается выделенный объект "Текст".


<new topic>
Выбор цвета рамки объекта. При нажатии кнопки показывает выпадающий список цветов. Если в списке выбран цвет "Другие", то показывает стандартный диалог выбора цвета.


<new topic>
Включает все линии рамки выделенного объекта. Команда также доступна при нажатии Ctrl+F.


<new topic>
Выключает все линии рамки выделенного объекта. Команда также доступна при нажатии Ctrl+D.


<new topic>
Устанавливает выравнивание текста по обоим краям в выделенном объекте "Текст".


<new topic>
При нажатой кнопке курсором мыши можно выделять объекты, перемещать их и изменять размеры.


<new topic>
Вставка в документ объекта "Текст". Объект предназначен для отображения многострочного текста, полей из таблицы БД, служебной информации (например, номера страницы, даты, времени).


<new topic>
Вставка в документ рисунка. Рисунок может быть загружен из графического файла в формате BMP, ICO, WMF, EMF, JPG (рисунки в формате JPG доступны в Delphi 3 и выше).


<new topic>
Вставка секции (бэнда) в документ.


<new topic>
Вставка вложенного отчета в документ. При вставке в документе появляется новая пустая страница, на которую ссылается объект. При формировании отчета на месте объекта будет выведено содержимое дополнительной страницы.


<new topic>
Вставка горизонтальной или вертикальной линии в документ. При нажатии кнопки включается режим рисования, при котором курсор мыши принимает вид карандаша. Для отмены режима нажмите кнопку со стрелкой на этой панели.


<new topic>
Вставка подключаемого (Add-In) объекта в документ.


<new topic>
Мастера, установленные в системе. Список мастеров также доступен в меню "Сервис", "Мастера".


<new topic>
Создает новый пустой документ. Новый документ можно также создать на основе шаблона, воспользовавшись командой меню "Файл", "Новый...".


<new topic>
Открывает существующий документ (файл в формате FRF). Команда также доступна при нажатии Ctrl+O.


<new topic>
Сохраняет документ в файле. Если документ новый, запрашивает имя файла. Если в списке "Тип файла" выбран шаблон FastReport, то будет показан диалог для описания шаблона. Команда также доступна при нажатии Ctrl+S.


<new topic>
Строит отчет и показывает его в окне предварительного просмотра. Команда доступна также при нажатии Ctrl+P.


<new topic>
Вырезает (удаляет) выделенные объекты в буфер обмена. Команда также доступна при нажатии Ctrl+X или Shift+Del.


<new topic>
Копирует выделенные объекты в буфер обмена. Команда также доступна при нажатии Ctrl+C или Ctrl+Ins.


<new topic>
Вставляет в документ объекты из буфера обмена. Команда также доступна при нажатии Ctrl+V или Shift+Ins.


<new topic>
Отменяет последнее действие. Система помнит список из последних 100 изменений. Некоторые операции (удаление страницы, установка опций) не могут быть отменены. Команда также доступна при нажатии Ctrl+Z.


<new topic>
Повторяет отмененное действие. Система помнит список из последних 100 отмененных действий. Команда также доступна при нажатии Ctrl+Y.


<new topic>
Перемещает выделенный объект или группу объектов на передний план.


<new topic>
Перемещает выделенный объект или группу объектов на задний план.


<new topic>
Выделяет все объекты на странице. Команда также доступна при нажатии Ctrl+A.


<new topic>
Добавляет новую страницу в документ.


<new topic>
Удаляет текущую страницу из документа. Этой командой следует пользоваться аккуратно - удаленную страницу нельзя восстановить.


<new topic>
Вызывает диалог настройки параметров страницы. Команда доступна также при двойном щелчке мышью на пустом месте страницы.


<new topic>
Показывает на странице точечную сетку для более удобного размещения объектов. Повторное нажатие прячет сетку. Шаг сетки может быть задан в диалоговом окне, которое можно вызвать из меню "Сервис", "Настройка". Команда также доступна при нажатии Ctrl+G.


<new topic>
Выравнивание объектов по сетке. При перемещении объекта мышью или при изменении его размеров положение и размеры объекта меняются скачкообразно, в соответствии с шагом сетки. Это позволяет более ровно размещать объекты на листе. Команда также доступна при нажатии Ctrl+B.


<new topic>
Меняет позицию и размеры выделенных объектов таким образом, чтобы они располагались в узлах сетки.


<new topic>
Закрывает окно дизайнера.


<new topic>
Показывает диалог, в котором можно задать атрибуты выделения. Эта команда доступна, если выбран объект "Текст".


<new topic>
Панель инструментов, с помощью которой можно задать выравнивание объектов относительно друг друга или в окне. При выравнивании учитывается, какой из объектов был выделен первым.


data-бэнд

Бэнд, который может быть подключен к источнику данных. Data-бэндами являются Master data, Detail data, Subdetail data, Cross data.


Описание дизайнера

Дизайнер FastReport предоставляет пользователю удобные средства для разработки внешнего вида отчета и позволяет сразу выполнить предварительный просмотр. Интерфейс дизайнера выполнен на современном уровне с использованием панелей инструментов (toolbars), расположение которых можно изменять по своему вкусу. Информация о расположении панелей запоминается в реестре, и при следующем запуске восстанавливается. Также в реестре запоминаются остальные настройки дизайнера.

Дизайнер доступен из среды Delphi в design-time. Для использования дизайнера в скомпилированном проекте необходимо использовать компонент TfrDesigner из палитры компонентов FastReport, либо включить в список uses модуль FR_Desgn. Использование дизайнера в run-time дает возможность пользователю настраивать вид отчета, а также редактировать сформированный отчет.


Клавиши управления

•	Стрелки - перемещение по объектам.

•	Ctrl + Стрелки - плавное перемещение выделенного объекта или группы объектов.

•	Shift + Стрелки - уменьшение/увеличение размеров объекта.

•	Alt + Стрелки - склеивание объекта с ближайшим в выбранном направлении.

•	Enter - вызов редактора объекта.

•	Del - удаление объекта.

•	Ctrl + Enter - вызов редактора мемо.

•	Ctrl + 1..9 - установка толщины рамки объекта.

•	Ctrl + Z - отменить последнее действие. Число уровней отката - до 100.

•	Ctrl + Y - повторить отмененное действие.

•	Ctrl + G - показать сетку.

•	Ctrl + B - выравнивать объекты по сетке. Любые операции мышью (перемещение, изменение размера объекта, вставка нового объекта и пр.) будут выполняться скачкообразно, если выравнивание включено.

•	Ctrl + F - обрамить выделенный объект.

•	Ctrl + D - снять обрамление с объекта.

•	Ctrl + X - вырезать выделенные объекты в буфер.

•	Ctrl + V - вставить объекты из буфера.

•	Ctrl + C - копировать выделенные объекты в буфер.

•	Ctrl + A - выделить все объекты на листе.

•	Ctrl + N - новый отчет.

•	Ctrl + O - открыть файл с отчетом.

•	Ctrl + S - сохранить отчет в файле.

•	Ctrl + P - предварительный просмотр отчета.


Управление мышью

•	Левая кнопка - выбор объекта; вставка нового объекта; перемещение и изменение размеров объекта или группы объектов.

•	Правая кнопка - контекстное меню объекта, над которым находится указатель мыши.

•	Двойной щелчок левой кнопкой - вызов редактора объекта. Если двойной щелчок сделать на пустом месте листа, то вызывается диалоговое окно "Параметры страницы".

•	Shift + левая кнопка - если объект уже выделен, то снимает с него выделение, иначе объект выделяется. Выделение остальных объектов не изменяется.

•	Ctrl + левая кнопка - при нажатии и перемещении мыши рисуется рамка; после отпускания кнопки мыши выделяются все объекты, попавшие в рамку. Такого же эффекта можно добиться, если щелкнуть левой кнопкой мыши на пустом месте листа, и, не отпуская кнопки, потянуть мышь до нужной позиции.

•	При перемещении бэнда его объекты перемещаются вместе с ним. Если это нежелательно, то перемещение следует выполнять при нажатой клавише Alt.

•	Изменить масштаб выделенных объектов можно, потянув мышкой за красный квадратик на нижнем правом углу группы выделенных объектов.

•	При приближении указателя мыши к границе двух соседних объектов вид указателя изменяется. Если при этом нажать левую кнопку и переместить указатель мыши, граница объектов также перемещается (горизонтальный сплиттинг).


Опции дизайнера

Чтобы установить опции дизайнера, воспользуйтесь командой меню "Сервис/Опции". Здесь можно задать используемые единицы измерения (пикселы, миллиметры, дюймы), указать шаг сетки в точках (шаг сетки 18 точек точно соответствует 5мм. Это особо полезно в случаях, когда надо сделать бланк, размеры которого кратны 5мм. Например, платежное поручение делается таким образом за 10 минут).

Также можно указать способ выделения выбранных объектов - контуром или инверсной заливкой.

Если опция "Цветные кнопки" отключена, то все кнопки становятся черно-белыми; при наведении указателя мыши на кнопку она показывается в цвете.

Наконец, опция "Редактирование после вставки" управляет процессом вставки новых объектов. Если опция включена, каждый раз при вставке объекта будет показываться его редактор. При вставке большого количества пустых объектов опцию лучше отключать.


Список переменных отчета

Что такое список переменных и для чего он нужен? Предположим, имеется база сотрудников, в которой есть поля N, Name1, Name2, Name3. Вспоминать, что скрывается за такими названиями полей, иногда тяжело даже разработчику базы. Поэтому можно сопоставить полям БД нормально названные переменные (Таб.номер, Фамилия, Имя, Отчество), и в объекты вставлять их (в частности, для вставки переменной в объект "Текст" в редакторе мемо есть соответствующая кнопка).

Кроме того, переменной можно сопоставить не только поле из базы, но и математическое выражение, например, сумму значений полей БД, округленное значение, дату, время и пр.

Для работы со списком переменных нужно выбрать в дизайнере пункт "Список переменных" из меню "Файл". Если отчет создается с нуля, то список переменных будет пуст, и для его заполнения нужно нажать кнопку "Переменные" в нижней части окна. После этого в появившемся окне надо ввести список переменных, который имеет следующую структуру:

КАТЕГОРИЯ1

  Переменная1

  Переменная2

^ пробел обязателен!

КАТЕГОРИЯ2

  Переменная1

  Переменная2

  ....................

Обязательно наличие хотя бы одной категории. Имена переменных пишутся после пробела.

После заполнения списка надо сопоставить каждой переменной значение в основном окне. Для этого нужно выбрать переменную в списке слева и выбрать соответствующее значение в списке справа, пользуясь мышью. В списке справа показаны все источники данных (т.е. невизуальные dbaware-компоненты, наследники от TDataSet), которые доступны в данный момент, и имена их полей. В design-time будут доступны все датасеты, находящиеся в открытых модулях (units). В run-time будут доступны все датасеты, находящиеся в созданных формах или модулях данных (TDataModule).

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

•	страница - номер текущей страницы;

•	выражение - при выборе этого значения становится активной строка выражения внизу окна, куда можно ввести любое допустимое выражение (выражение не должно содержать тэги форматирования!);

•	дата - дата начала формирования отчета;

•	время - время начала формирования отчета;

•	№ строки;

•	№ строки сквозной;

•	№ колонки;

•	всего страниц - всего страниц в сформированном документе, соответствует TotalPages. Для использования этого значения отчет должен быть двухпроходным (задается в опциях отчета).


Опции документа

Опции документа можно установить, выбрав пункт меню "Файл/Опции документа".

В выпадающем списке можно выбрать тип принтера из числа установленных в системе. Если в системе нет ни одного принтера, то можно выбрать только "Принтер по умолчанию". Это виртуальный "принтер", который позволяет использовать бумагу любого размера - вплоть до формата А0. Разумеется, печатать на нем нельзя - он всего лишь нужен для обеспечения нормальной работы дизайнера и предварительного просмотра.

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

Опцию "делать два прохода" необходимо включать в случае, если отчет содержит информацию вида "Страница 1 из 15", т.е. ссылку на общее число страниц в отчете.


Опции страницы

Диалоговое окно доступно через пункт меню "Файл/Опции страницы" либо с помощью двойного щелчка левой кнопки мыши на пустом месте страницы. Здесь можно выбрать формат листа из списка поддерживаемых текущим принтером, задать ориентацию. Если принтер поддерживает пользовательские размеры бумаги, то при выборе соответствующего значения из выпадающего списка станут доступны поля для ввода ширины и высоты листа. Следует отметить, что не все принтеры поддерживают произвольные пользовательские размеры (например, драйвер принтера HP LaserJet 6L не дает устанавливать размеры листа меньше чем 76 * 127мм; драйвер принтера HP LaserJet 4L не поддерживает пользовательский формат вообще).

На второй закладке диалога можно задать размеры отступа от краев листа, а также задать опцию "Использовать поля печати". На этом моменте следует остановиться более подробно.

Возможны два варианта страницы в дизайнере: с полями печати и без них. Если поля печати включены (по умолчанию), то они отображаются в дизайнере и все, что находится вне полей, на печать не выводится. Это позволяет добиться максимального соответствия между видом страницы в дизайнере и на бумаге. К примеру, тестовые страницы, напечатанные на струйном, матричном и лазерном принтерах, между собой не отличались.

Но при переходе на другой принтер из-за изменившихся границ печати некоторые объекты могут вылезти за пределы полей и не будут напечатаны. Если отключить поля печати, то предполагается, что страница в дизайнере соответствует области печати, т.е. все, что находится на странице, будет корректно напечатано на любом принтере. Правда, при этом вид страницы в дизайнере будет немного отличаться от распечатанного документа.

Если поля страницы нулевые, то при построении отчета будут использована информация о полях, предоставляемая драйвером принтера. Если же хоть одно из полей ненулевое, то новые поля будут отображены в дизайнере и использованы при построении отчета. Если вы используете матричный принтер, будьте внимательны. Дело в том, что во многих матричных принтерах одно или несколько полей имеет нулевой размер, в связи с чем при формировании отчета и при его распечатке может возникнуть ситуация, когда текст выходит за границы листа. Чтобы избежать этого, явно задавайте поля станицы.

На третьей закладке можно установить некоторые опции для страницы, а также указать количество колонок для печати многоколоночных отчетов. Флажок "Печатать на предыдущем листе" позволяет начать печать страницы начиная со свободного места на предыдущем листе.


Инспектор

Инспектор позволяет манипулировать некоторыми свойствами объектов, а именно: задавать имя объекта, его позицию и размеры, а также видимость. Окно инспектора похоже на Object Inspector в Delphi и функционирует аналогичным образом. Так же, как и остальные панели инструментов, его можно показать или скрыть соответствующей командой меню "Сервис/Панели инструментов". Двойной щелчок на заголовке окна инспектора сворачивает окно в полоску, еще один двойной щелчок - восстанавливает исходные размеры.

Если в строке инспектора набрать вместо числа выражение (например, 55 * 3,5) и нажать Enter, то подставится полученное значение.


Выделение

Для того, чтобы отобразить объект другим шрифтом или цветом в зависимости от какого-либо условия, можно воспользоваться диалогом "Атрибуты выделения". Диалог можно вызвать с помощью кнопки на панели управления рядом с кнопкой цвета шрифта. К примеру, нужно выделить суммы заказов, превышающие 1000$, жирным шрифтом. Для этого в объекте, содержащем сумму заказа, в диалоге указывается условие - Value > 1000 и задаются параметры шрифта. Условие выделения можно указать и по-другому - [Part total] > 1000.

Другой пример использования выделения - для придания отчету презентабельного вида можно сделать чередующуюся раскраску строк данных. Для этого на бэнд надо положить объект "Текст", растянуть его по ширине бэнда, в диалоге выделения набрать условие [LINE#] mod 2 = 0 и указать цвет фона (к примеру, серый).


Мастера

К дизайнеру можно подключать т.н. мастера - расширения среды дизайнера. Вызвать мастер можно из меню "Сервис/Мастера" либо нажав соответствующую кнопку на панели инструментов "Мастера". В среду по умолчанию встроен один мастер, который позволяет быстро разместить на листе отчета поля из таблицы БД. Для этого нужно в диалоговом окне выбрать таблицу БД из выпадающего списка и отметить те поля, которые вы хотели бы вставить в отчет. Отметить поле можно, нажав Ctrl+левая кнопка мыши на нужном поле. Затем необходимо выбрать ориентацию вставляемых полей и опцию включения заголовков полей. При нажатии кнопки ОК в отчет будут вставлены объекты "Текст" со ссылками на выбранные поля.


Описание Preview

•	Открыть файл отчета: Ctrl+L, кнопка на панели.

•	Сохранить отчет в файле: Ctrl+S, кнопка на панели. Если подключены фильтры экспорта, то в списке типов файлов появятся соответствующие типы.

•	Редактировать отчет: Ctrl+E, контекстное меню. Эта команда доступна, если проект скомпилирован с использованием дизайнера.

•	Добавить страницу: Insert, контекстное меню. Эта команда доступна, если проект скомпилирован с использованием дизайнера.

•	Удалить страницу: Delete, контекстное меню. Эта команда доступна, если проект скомпилирован с использованием дизайнера.

•	Поиск текста: Ctrl+F, кнопка на панели. Повторный поиск - F3.

•	Печать отчета: Ctrl+P, кнопка на панели.

•	Сменить масштаб: пробел, кнопка на панели, контекстное меню.

•	Движение по отчету:

Стрелки - прокрутка содержимого окна;

Page Up, Page Down - прокрутка вверх/вниз (крупный кусок);

Ctrl+PageUp, PageDown, кнопки в правом нижнем углу - листание страниц вверх/вниз;

Home/End - работают в зависимости от того, какой скроллбар активен.  В частности, при активном вертикальном соответствуют перемещению в начало/конец отчета;

Ctrl+Home, End - перемещение в начало/конец отчета.


   Объект "Текст"

Представляет собой произвольным образом обрамленный прямоугольник с многострочным  текстом внутри. Задается цвет текста/заливка, тип рамки, толщина  рамки и цвет, все параметры шрифта текста, выравнивание текста внутри прямоугольника и ориентация текста (норм./90 градусов). Объект может быть выведен с использованием атрибутов выделения, если выполняется условие выделения.

В  мемо объекта можно поместить многострочный текст с переменными. Переменные обрамляются квадратными скобками. При формировании отчета, когда в объекте обнаруживается переменная, вызывается событие, которому  передается имя переменной (это может быть и не имя, а выражение - см. разборщик выражений) и ожидается возврат ее значения. Примеры использования переменных:

Длина, см: [Длина]

Длина, см: [Table1."Length_cm"]

Длина, см: [[Длина в дюймах] * 2.54]

Длина, см: [Table1."Length_in" * 2.54]

Редактор объекта позволяет редактировать содержимое мемо, быстро вставлять переменные и поля доступных таблиц БД в мемо, а также редактировать скрипт. Для более удобной работы можно воспользоваться быстрыми клавишами: Insert - вставка переменной; клавиша Ctrl+Enter - аналог кнопки OK; клавиша Ctrl+F - аналог кнопки "Формат".

Помимо основного редактора, имеется редактор, позволяющий выбрать формат переменных. Вызвать его можно либо из контекстного меню объекта, либо из окна редактора мемо (кнопка "Формат"). Переменная может отображаться как текст, число, дата, время, булевское значение. Для каждого из этих типов (кроме текстового представления) можно выбрать один из нескольких способов форматирования, например, для числа можно задать количество знаков после запятой, знак-разделитель целой и дробной части, разделение на разряды. Кроме того, для каждого типа может быть выбран произвольный формат, когда строка форматирования задается вручную (например, #,###,##0.000 для числа). Строки форматирования для каждого из типов описаны в справочной системе Delphi, раздел formatting strings (кроме булевского типа, где строка представлена в формате Значение1;Значение2). Если выбран текстовый тип (по умолчанию), то форматирование производиться не будет.

Указанные опции форматирования будут воздействовать на все переменные, содержащиеся  в объекте. Если переменная не может быть отформатирована указанным способом, она выводится как текст.

Если в объекте несколько переменных, для которых нужно разное форматирование, то можно применить другой способ форматирования. Суть его заключается в том, что к переменной дописывается тэг формата:

[Переменная формат], где формат - одно из следующих значений:

•	#x.x или #Nx.x или #Nyyyyy - числовое представление. x.x - длина числа/число разрядов после запятой; yyyyy - строка типа #,##0.00 (более подробную информацию можно получить в справочной системе Delphi, раздел formatting strings). Если строка x.x или yyyyy содержит символы ".", ",", "-", то последний такой символ будет использован в качестве разделителя целой и дробной части форматированного числа.

•	#Dxxxxx, #Txxxxx - дата и время. xxxxx - строка типа dd.mm.yy.

•	#Bxxxxx;yyyyy - булевское значение. Если значение - ложь, то выводится строка xxxxx, иначе yyyyy.

Вот примеры использования форматирования:

[Table1."N1" #9.2]   [Table1."N2" #N9-2]   [Table1."N3" #N#,##0.00] - для числа

[Table1."Date1" #Ddd.mm.yyyy]   [Table1."Time" #Thh:mm:ss] - для даты и времени

[Table1."Bool1" #BFalse;True]   [Table1."Bool2" #BНет;Да] - для булевского значения

Следует отметить, что тэги формата не работают в редакторе списка переменных.

В контекстном меню объекта можно задать следующие опции:

•	"растягиваемый" - высота объекта будет зависеть от количества строк в нем. При этом опция "растягиваемый" должна быть включена у бэнда, на котором находится объект. При печати бэнда вычисляется его высота, и все объекты с включенным растягиванием выводятся таким образом, что их нижняя граница растягивается до нижней границы бэнда.

•	"перенос слов" - если слово не помещается в строке, оно переносится на следующую строку.

•	"перенос по слогам" - при переносе слова делается разбивка его на слоги. При этом опция "перенос слов" должна быть включена.


   Объект "Секция" (бэнд)

FastReport, как и все распространенные продукты, является бэнд-ориентированным построителем отчетов. Ниже приведен полный перечень бэндов и выполняемых ими функций.

Название	Функция

Report title 	 	печатается один раз в начале отчета

Report summary 	печатается один раз в конце отчета

Page header 	 	печатается вверху на каждой странице

Page footer 	 	печатается внизу на каждой странице

Master header 	 	печатается в начале списка 1-го уровня

Master data 	 	данные списка 1-го уровня

Master footer 	 	печатается в конце списка 1-го уровня

Detail header 	 	печатается в начале списка 2-го уровня

Detail data 	 	данные списка 2-го уровня

Detail footer 	 	печатается в конце списка 2-го уровня

Subdetail header 	печатается в начале списка 3-го уровня

Subdetail data 	 	данные списка 3-го уровня

Subdetail footer 	 	печатается в конце списка 3-го уровня

Overlay 	 	печатается на каждой странице нижним слоем

Column header 	 	печатается в начале каждой колонки

Column footer 	 	печатается в конце каждой колонки

Group header 	 	заголовок группы

Group footer 	 	печатается после группы

Cross header    	эта группа бэндов предназначена

Cross data        	для создания отчетов с переменным количеством

Cross footer	столбцов и разбивкой на страницы

В зависимости от типа бэнда вызываются разные редакторы. Редактор для дата-бэндов позволяет выбрать источник данных из списка доступных либо выбрать виртуальный источник данных. При выборе виртуального источника необходимо указать, из скольких записей он состоит. При формировании отчета бэнд с виртуальным источником будет напечатан столько раз, сколько записей было задано.

Редактор для бэнда GroupHeader позволяет ввести условие группировки. Остальные бэнды не имеют редакторов.

В зависимости от типа бэнда в контекстном меню доступны следующие опции:

•	"растягиваемый" - высота бэнда определяется максимальной высотой находящихся в нем объектов. У объектов также должна быть включена опция "растягиваемый";

•	"разрываемый" - если бэнд не помещается целиком на странице, будут выведены только поместившиеся строки текста, а вывод остальных будет продолжен с новой страницы;

•	"формировать новую страницу" - после печати бэнда формирование отчета продолжается с новой страницы. Если опция включена у дата-бэнда, то новая страница будет сформирована после вывода всех подбэндов;

•	"на первой странице" - если опция отключена, то бэнд не будет выведен на первой странице;

•	"на последней странице" - если опция отключена, то бэнд не будет выведен на последней странице;

•	"повторять на всех страницах" - эта опция доступна у бэндов Master header, Detail header, Subdetail header, Group header, VarColumn header. При включении дублирует бэнд на новой странице или колонке.


   Объект "Рисунок"

Предназначен для вставки графического файла в формате BMP/WMF/ICO (и JPG, если установлен соответствующий модуль) в документ. Редактор объекта позволяет вставить рисунок и очистить содержимое объекта. Рисунок может быть вставлен из поля таблицы БД, если в мемо объекта поместить ссылку на соответствующее поле, например: [Table1."GraphicField"]. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl + Enter.

В контекстном меню объекта можно задать следующие опции:

•	"растягиваемый" - рисунок растягивается по границам объекта;

•	"сохранять пропорции" - если включено растягивание, пропорции рисунка сохраняются;

•	"центровка" - рисунок выводится в центре объекта.


   Объект "Вложенный отчет"

Вложенный отчет - это отчет с размещенным на нем объектом SubReport, который   представляет собой ссылку на другой отчет, расположенный на отдельной странице. При формировании такого отчета вместо объекта SubReport будет выведен соответствующий отчет. Объекты SubReport можно располагать на листе друг под другом или рядом. В случае, если объекты надо расположить друг под другом, их необходимо разнести по разным дата-бэндам (т.е. первый отчет - в первом бэнде Master data, второй  - во втором и т.д.). На использование SubReports накладываются следующие ограничения:

•	нельзя использовать колонки;

•	во  вложенных  отчетах  (не в основном!)  игнорируются бэнды ReportTitle, ReportSummary, PageHeader, PageFooter, ColumnXXX;

•	нельзя использовать разрываемые бэнды;

•	нельзя использовать группы.


   Объект "Линия"

Представляет собой вертикальную либо горизонтальную линию с изменяемым цветом и толщиной. Дизайнер имеет удобные средства для рисования линий. В частности, с помощью линий можно быстро задать внешнее обрамление для таблицы, отличное от внутреннего.


   Объект "CheckBox"

Представляет собой прямоугольник с крестиком внутри. Если в мемо объекта разместить ссылку на переменную либо на поле таблицы БД, то крестик будет показан при ненулевом значении переменной. В мемо можно также разместить символ "0" либо отличный от нуля.

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


   Объект "RichText"

Предназначен для вставки текста в формате RTF (Rich Text format) в документ. В частности, таким образом можно вставить текст, подготовленный в текстовом процессоре MS Word, предварительно сохранив его в формате RTF. Редактор объекта взят из Delphi\Demos\Richedit и позволяет выполнять все базовые операции над текстом - менять шрифт, выравнивание, создавать маркированные списки. В тексте могут находится переменные, обрамленные квадратными скобками - как и в объекте "Текст". Если текст не вмещается в рамки объекта, то лишние строки просто не выведутся.

RichText объект может быть вставлен из поля таблицы БД, если в мемо объекта поместить ссылку на соответствующее поле, например: [Table1."RichField"]. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl + Enter.

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


   Объект "OLE"

Предназначен для вставки OLE объектов в документ. Редактор объекта "OLE" позволяет вставить новый объект и редактировать существующий. Вставка нового объекта производится в стандартном диалоговом окне.

OLE объект может быть вставлен из поля таблицы БД, если в мемо объекта поместить ссылку на соответствующее поле, например: [Table1."OLEField"]. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl + Enter.

В контекстном меню объекта опция "растягиваемый" позволяет корректно отображать данные в некоторых случаях (например, при вставке объекта "Лист Excel").

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


   Объект "Диаграмма"

Предназначен для вставки графика или диаграммы в документ. Возможно использование шести типов графиков: линии, точки, столбцы горизонтальные и вертикальные, области и круговые диаграммы. Редактор объекта позволяет задавать различные опции для графика, а также указывать объекты, содержимое которых будет использовано при построении графика.

Для построения графика необходимо указать имена двух объектов типа "Текст", в которых содержится название и соответствующее числовое значение. При построении отчета содержимое этих объектов будет накапливаться в мемо диаграммы.

Если объект содержит число в форматированном виде или комбинацию числа и строки (например, "$1000" или "10 000"), то FR попытается выделить числовую часть из строки. Алгоритм выделения - удаляются все нецифровые символы в начале и в конце строки, после этого удаляются все символы - разделители разрядов (как правило, пробелы). То есть если задано более сложное форматирование, например: "10000км2", то такие объекты использовать уже нельзя. В этом случае следует создать невидимый объект с аналогичным содержимым, но без всякого форматирования, и указывать его имя. Невидимым объект можно сделать с помощью инспектора объектов в дизайнере, установив параметр Visible в 0.

График может быть двух типов: одиночный и множественный (т.е. на одной координатной плоскости изображается несколько графиков). Если опция "Одиночная" включена, содержимое мемо имеет вид:

Заголовок1;Заголовок2;Заголовок3

Число1;Число2;Число3

В противном случае информация в мемо представлена в следующем виде:

Заголовок1;Заголовок2;Заголовок3

Число1.1;Число2.1	(первый график)

Число2.1;Число2.2;Число2.3	(второй график)

Число3.1;Число3.2;Число3.3;Число3.4;Число3.5	(третий график)

То есть в этом случае будут изображены три графика: две точки в первом, три точки во втором, пять точек в третьем.

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

Объект позволяет легко строить графики типа "Top10", т.е. график, в котором представлены только первые самые большие значения, а остальные значения просуммированы в отдельную группу с названием. Для этого на закладке "Данные" необходимо указать количество выводимых значений и подпись (обычно в качестве подписи используется слово "Другие").

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


   Объект "Фигура"

Предназначен для вставки геометрических фигур (прямоугольник, прямоугольник с закругленными углами, эллипс, треугольник) в документ. Выполняет исключительно декоративную роль.

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


   Объект "Штрихкод"

Предназначен для вставки штрихкодов в документ. Можно использовать следующие типы штрихкодов: 2 of 5 interleaved, Code39, Code39 Extended, Code128A,B, Code93, Code93 Extended, MSI, PostNet, Codebar, EAN8, EAN13.

Примечание. Для использования этого объекта в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.


Простой отчет (список)

Это самый простой вид отчета. Перед тем, как разрабатывать внешний вид отчета, поместите на форму компоненты TfrReport, TfrDBDataSet, TDataSource, TTable. Настройте свойства компонент:

TfrDBDataSet.DataSource = TDataSource

TDataSource.DataSet = TTable

После этого запустите дизайнер отчетов двойным щелчком мыши на компоненте TfrReport. Далее необходимо разместить на листе бэнд Master data и поместить в него объекты со ссылками на нужные данные. Бэнд Master data необходимо связать с источником данных - компонентом TfrDBDataSet или TfrUserDataSet. Это делается в редакторе бэнда, который можно вызвать двойным щелчком мыши на бэнде.

Можно сразу построить отчет, нажав кнопку предварительного просмотра на панели инструментов или выбрав соответствующую команду из меню дизайнера.

Примечание 1. Бэнд, в котором нет ни одного объекта, при формировании отчета не обрабатывается.

Примечание 2. Если бэнду не назначен источник данных, то используется источник данных из свойства DataSet компонента TfrReport (если свойство ReportType при этом установлено в rtSimple).


Master-Detail отчет

Для построения этого отчета необходимо разместить на листе бэнды Master data и Detail data, затем поместить в них объекты со ссылками на нужные данные. Порядок, в котором бэнды размещаются на листе, не имеет значения - сначала будет напечатана строка из master, потом соответствующие ей строки из detail. Отчет будет формироваться до тех пор, пока есть данные для master. Если надо, чтобы master с его подчиненным списком печатался с нового листа, установите для бэнда флажок "Формировать новую страницу".

У отчета есть особенность - если для текущей строки из master список detail пуст, строка master печататься не будет. Если все же необходимо распечатать такие строки, для бэнда Master data нужно установить флажок "Печатать, если detail пуст".


Master-Detail-Subdetail отчет

Для построения отчета разместите на листе бэнды Master data, Detail data и Subdetail data. В остальном принципы построения такие же, как и для отчета Master-Detail.


Cross-tab отчет

Этот вид отчета предназначен для печати таблицы, число столбцов которой на этапе построения отчета неизвестно. При формировании отчета столбцы, не поместившиеся на странице, будут перенесены на следующую (как это делает всем знакомый MS Excel).

Для построения этого отчета разместите на странице бэнд Master data и бэнд Cross data. Бэнды CrossXXX размещаются на странице вертикально. На пересечении бэндов разместите объект, который будет отображаться в качестве ячейки таблицы. Необходимо разместить объект таким образом, чтобы он полностью помещался в границы области пересечения бэндов. Это все, что нужно для построения базового отчета.

Бэнд Cross footer печатается последним столбцом (например, если нужно отпечатать сумму по строке), а Cross header - первым. Кроме того, если в опциях бэнда включен флажок "Выводить на всех страницах", то при переносе широкой таблицы на смежный лист Cross header будет продублирован.


Отчет с переменной высотой строки

Очень часто приходится печатать отчеты, в которых высота строки данных может изменятся в зависимости от содержимого объектов, находящихся на бэнде (например, счет-фактура - название товара/услуги может быть длинным, на несколько строк текста). FR может печатать бэнды переменной высоты, если у них включена опция "Растягиваемый". Эту опцию также необходимо включить для объектов бэнда, высота которых может меняться. Если окажется, что максимальная высота бэнда меньше первоначальной, то он будет напечатан в первоначальном размере.

Если печатается обрамленная таблица, то опцию надо включить для всех ячеек (чтобы они имели одинаковую высоту, не нарушая обрамления). Объекты со включенной опцией растягиваются таким образом, что их нижний край совпадает с нижним краем бэнда.


Отчет с несколькими строками данных

FR не позволяет размещать на листе два одинаковых бэнда. Исключение составляют data-бэнды и их headers & footers - их можно размещать много (до 32). При печати одинаковые бэнды выводятся друг за другом. Это позволяет формировать отчеты, в которых строка данных состоит из нескольких бэндов, каждый - переменной высоты.

Таким образом можно сделать и Header/Footer для каждой записи. Если все бэнды одной строки данных не помещаются на странице, печать начинается со следующей.

Описанное справедливо для случая, если верхний бэнд имеет источник данных, а остальные - нет. Если же остальным бэндам назначены другие источники данных, то распечатаются сначала все строки из верхнего бэнда, затем из следующего и т.п. - в данном случае получится отчет типа Master-Detail-Detail.


Многоколоночный отчет

Если в обычном отчете при достижении конца страницы формирование продолжается с нового листа, то в многоколоночном - на том же листе, но рядом, т.е. в несколько смежнорасположенных колонок. Обычный отчет можно превратить в многоколоночный, всего лишь задав количество колонок в опциях страницы. Бэнды Column header и Column footer позволяют снабдить каждую колонку заголовком и нижней частью.


Отчет из нескольких страниц

FR позволяет легко делать многостраничные отчеты (например, первая страница - титульный лист, все остальное - прочая информация). Для того, чтобы создать/удалить лист, используйте кнопки на панели инструментов. Если необходимо сформировать несколько таких отчетов (например, для каждой записи таблицы), у компонента TfrReport необходимо установить свойство ReportType = rtMultiple, и в свойстве Dataset указать необходимый источник данных (TfrxxxDataset).


Вложенный отчет

Вложенный отчет - это отчет с размещенным на нем объектом SubReport, который представляет собой ссылку на другой отчет, расположенный на отдельной странице. При формировании такого отчета вместо объекта SubReport будет выведен соответствующий отчет. Объекты SubReport можно располагать на листе друг под другом или рядом. В случае, если объекты надо расположить друг под другом, их необходимо разнести по разным дата-бэндам (т.е. первый отчет - в первом бэнде Master data, второй - во втором и т.д.).

На использование SubReports накладываются следующие ограничения:

•	нельзя использовать колонки;

•	во вложенных отчетах (не в основном!) игнорируются бэнды ReportTitle, ReportSummary, PageHeader, PageFooter, ColumnXXX;

•	нельзя использовать разрываемые бэнды;

•	нельзя использовать группы.


Master-Detail-Detail отчет

Для построения этого отчета разместите на листе бэнд Master data и два бэнда Detail data. Для бэндов Detail data назначьте соответствующие источники данных. Если назначить источник данных только для верхнего бэнда, то получится отчет с несколькими строками данных.

Разумеется, таким образом можно строить и отчеты типа Master-Master, Master-Detail-SubDetail-SubDetail. Количество одинаковых дата-бэндов может быть до 32.


Композитный (составной) отчет

Композитный отчет позволяет получить отчет, состоящий из нескольких других. Для этого разместите на форме компонент TfrCompositeReport, и программным путем заполните его свойство Reports ссылками на отчеты, которые нужно объединить в один. Отчеты будут формироваться по порядку, причем если страница отчета имеет включенную опцию "Печать на предыдущем листе", то она будет напечатана начиная со свободного места на последнем листе предыдущего отчета.


Отчет с разрываемыми строками

В обычном отчете, если содержимое бэнда не помещается на оставшемся месте листа, то оно выводится на следующей странице (или колонке, если отчет многоколоночный). Если нужно, чтобы на оставшемся месте было напечатано столько строк, сколько вмещается, а печать остальных продолжилась со следующего листа (или колонки),  у data-бэнда нужно включить опцию "Разрываемый". Если строка данных состоит из нескольких data-бэндов, то эту опцию нужно включать только у первого бэнда. Разрываться могут не только data-бэнды, но и все остальные, за исключением бэндов CrossXXX.


Отчет без бэндов

Часто бывает необходимо отобразить данные только из одной записи БД, разместив их на бланке. Пример - платежное поручение. В этом случае отчет может вообще не содержать бэндов. Объекты, расположенные непосредственно на листе, при печати выведутся на своих местах.


Отчет с группами

Группы применяются для группировки строк данных с использованием некоторого критерия. В качестве критерия обычно выступает выражение, основанное на полях из набора данных. При формировании отчета FR следит за значением критерия, и, как только оно изменится, формирует новую группу.

Для построения отчета разместите на листе бэнды Group footer и Master data. Назначьте источник данных для Master data, затем в редакторе бэнда Group footer укажите условие группировки. Например, чтобы распечатать список сотрудников в группированном виде (группировка по первой букве фамилии), надо указать примерно такое условие группировки: Copy([Фамилия], 1, 1). При изменении этого условия будет сформирована новая группа.

На использование групп накладываются следующие ограничения:

•	нельзя применять группы во вложенных отчетах;

•	группа может выступать только в роли списка 1-го уровня, т.е. сначала идет группа, затем - master, detail и т.п.

Исходный отчет	Сформированный отчет

Примечание. Для правильной работы групп исходный набор данных должен быть уже отсортирован по условию группировки. Сортировку можно осуществить, применяя запрос (Query) с выражением ORDER BY.


Возможности

•	Бэнд-ориентированный генератор отчетов.

•	Встроенный мощный дизайнер, доступный и в run-time.

•	Preview как в MS Word.

•	Скорость работы сравнима с QuickReport1.

•	Компактность кода - без дизайнера меньше QR1.

•	Неограниченное количество страниц сформированного отчета.

•	Многостраничные отчеты; составные (композитные) отчеты; вложенные отчеты; группы; многоколоночные отчеты; master-detail-detail отчеты; cross-tab отчеты; двухпроходные отчеты.

•	Полный контроль над процессом печати, поддержка всех типов бумаги.

•	Экспорт в TXT, RTF, CSV, HTML.

•	Поиск текста в сформированном отчете.

•	Add-in компонент TfrDataStorage, предназначенный для создания запросов и таблиц в run-time - специально для т.н. enduser - отчетов.

•	Редактирование сформированного отчета.

•	Встроенный интерпретатор Pascal-подобного языка для управления процессом построения отчета.

•	Форма отчета может храниться как в DFM, так и во внешнем файле.

•	Функциональность может быть расширена за счет написания собственных компонент - визуальных объектов, мастеров, библиотек функций.

•	Работа как с Database - ориентированными источниками данных, так и с любыми данными.


История изменений

Изменения в версии 2.3 (от 20.07.99)

•	Исправлен глюк с группами (не формировались footers для последней записи).

•	Исправлены нелокализованные строки.

•	Некоторые изменения в дизайнере - страницы показаны как закладки.

•	Добавлены единицы измерения - пикселы, миллиметры, дюймы.

•	Шаг сетки 18 точек теперь почти точно соответствует 5мм.

•	Добавлена опция для объекта "Прямоугольник" - перенос слов по слогам.

•	Добавлено выравнивание текста по ширине.

•	Немодальный Preview (опция).

•	Хранение формы отчета в DFM (опция).

•	Undo/Redo в дизайнере.

•	Добавлен встроенный объект "Линия" и поддержка рисования на листе.

•	Добавлена поддержка формирования многостраничных бланков.

•	Добавлен мастер "Data manager", обеспечивающий описание таблиц, запросов и формы диалога ввода значений параметров запроса (!) в run-time с сохранением информации в файле формы.

•	Встроенный интерпретатор Pascal-подобного языка для управления процессом формирования отчета.

•	Экспорт в RTF(Word), CSV(Excel), HTML.

•	Мастер, позволяющий быстро разместить поля БД на отчете.

•	Возможность редактирования сформированного отчета.

•	Скорость формирования отчета повышена в ~2раза.

•	Переделан Preview: отрисовка осуществляется без применения метафайла, что повысило скорость листания страниц. Исправлены все известные глюки.

•	В связи с наличием удобных средств рисования линий объект FramedMemo больше не поддерживается (при открытии файла формы такие объекты преобразуются в объект "Прямоугольник").

•	Переделан процесс печати отчета: раньше изображение выводилось в метафайл, который затем посылался в принтер; сейчас рисование осуществляется непосредственно на канве принтера. Это позволило корректно печатать даже на матричных принтерах с низким разрешением.

•	Добавлен Add-in объект Chart.

•	Языковые ресурсы из файла "FR.lng" перенесены в файл ресурсов.

•	На отчете можно размещать много headers & footers для дата-бэндов (специально для отчетов типа Master-Detail-Detail).

•	Добавлена опция "Печатать на всех страницах" для header-бэндов.

•	Добавлено событие, позволяющее строить отчет вручную (т.е. вручную управлять порядком вывода бэндов).

•	Можно менять Charset шрифта индивидуально для каждого объекта (D3 и выше).

•	Добавлен еще один способ форматирования переменных - тэг формата #.

•	Оформлена документация в виде файлов FR.HLP (справка по компоненту, подключаемая к справочной системе Delphi) и FRUser.HLP (справка, подключаемая к скомпилированному проекту - то, что вы сейчас читаете).

Изменения в версии 2.2 (от 9.03.99)

•	Добавлены группы.

•	Исправлены глюки в парсере и при записи отчета в файл .frp.

•	Добавлена опция для объекта "Прямоугольник" - перенос слов.

•	Добавлена возможность менять Charset используемых шрифтов на D3 и выше.

•	Меню с битмапами в дизайнере.

•	Поддержка нескольких языков.

Изменения в версии 2.1 (от 26.02.99)

•	Добавлены subreports (вложенные отчеты как в ReportBuilder).

•	Добавлена опция для бэнда: разбивка страницей/колонкой. Т.е. длинные мемо-объекты теперь могут переноситься на следующую страницу/колонку.

•	Пересмотрена идеология источников данных для отчета - теперь дата-бэндам можно назначать источники данных в дизайнере. В качестве источников данных используются компоненты TFRxxxDataSet (идеология ReportBuilder).

•	Дизайнер вынесен в отдельный компонент, что позволило значительно уменьшить размер .exe в случае, если дизайнер не нужен.

•	Floating toolbars в дизайнере.

•	Поиск текста в сформированном отчете.

•	Добавлен горизонтальный сплиттинг границы двух соседних ячеек в дизайнере.

•	Добавлен Add-in объект "Сложнообрамленный прямоугольник".

•	Добавлена возможность подключения мастеров к дизайнеру.

•	Управление контекстным меню объекта переложено на сам объект.

•	Добавлены опции для объекта "Рисунок": центровка, сохранение пропорций.

•	Модуль DBTables не используется.

•	Переименованы все классы во избежание конфликта имен. Имена классов начинаются с Tfr... .

Изменения в версии 2.01 (от 20.01.99)

•	Исправлены различные глюки.

•	Добавлен принтер по умолчанию. Теперь компонент работает в системах без установленного принтера.

•	Переделана работа с переменными. Теперь выражения типа [[Company] + ' ' + [Address]], т.е. со вложенными скобками, обрабатываются корректно.

•	В событии OnGetValue поменялся тип возвращаемого значения ParValue - теперь это Variant.

•	Убрана "многопоточность", что повлекло за собой исчезновение загадочных глюков при построении отчета.

•	Hебольшие дополнения в дизайнере - кнопки установки и снятия обрамления, кнопка Preview, таскание бэнда вместе с его содержимым.

•	Добавлена работа с переменными в Run-time. Информация о переменных теперь хранится вместе с формой.

•	Задействовано свойство "Stretched" у объекта "Рисунок".

•	В контекстное меню компонента добавлены новые пункты и изменена работа старых.


Разборщик выражений (парсер)

В состав FastReport входит разборщик выражений (парсер). Его цель - вычислить значение типа "1 + 2 * (3 + 4)", переданное в виде строки. Он обрабатывает математические и логические выражения, операции сложения строк, внешние переменные и функции. Принцип работы основан на разборе выражений по методу обратной польской записи.

В выражении можно использовать строковые константы. Правила их использования такие же, как и в Pascal: строка - это последовательность символов, заключенная в одинарные кавычки, например: 'Hello, World!'. Если строка содержит одинарную кавычку внутри, то ее необходимо дублировать: 'What''s new'.

Также в выражении можно использовать переменные, например: "[Total amount] / 2". В качестве переменной может выступать поле из любой доступной таблицы БД. Ссылка на поле из БД имеет следующий формат: [FormName.TableName."FieldName"], где FormName - имя формы или модуля данных, где расположена таблица; TableName - имя самой таблицы; FieldName - имя поля таблицы. Если имя поля не содержит пробелы, то кавычки можно не писать. Если параметр FormName не указан, то таблица ищется на текущей форме (или модуле данных). Если не указан параметр TableName, то поле FieldName будет искаться в текущей таблице ("текущая" для бэнда, в котором содержится выражение со ссылкой на поле БД).

Ниже приведено описание встроенных функций парсера. В квадратных скобках указаны необязательные параметры.

Агрегатные функции

Могут применяться в бэндах ReportSummary, PageFooter, MasterFooter, DetailFooter, SubdetailFooter, GroupFooter, VarColumnFooter.

•	Sum(<expression> [,band] [,1]). Вычисляет сумму выражения expression для ряда строк данных. Если параметр band не задан, то сумма считается по всем дата-бэндам; иначе сумма считается только по бэнду с именем band. Если при подсчете суммы нужно учесть и невидимые бэнды (т.е. у которых свойство Visible отключено из скрипта), то третьим параметром надо указать единицу. Пример использования: Sum([Part total], Band1), Sum([Part total] + [Part price]).

•	Sum(<field>). Сумма считается по полю field. Имя поля может быть как кратким, так и полным, содержащим имя формы и набора данных (в этом случае имена разделяются точкой). Подсчет суммы осуществляется для всех записей набора данных. Пример использования: Sum(CustomerData.Customer.CustNo), Sum(Table1.Amount).

•	Avg, Min, Max. Синтаксис аналогичен функции Sum. Функция Avg вычисляет среднее арифметическое, функция Min возвращает минимальное, функция Max - максимальное значение из ряда.

•	Count([band] [,1]). Возвращает количество строк данных. Пример использования: Count(Band1).

•	Count(<dataset>). Возвращает количество записей в наборе данных dataset. Имя набора данных может содержать имя формы, на которой он находится. Пример использования: Count(CustomerData.Customer), Count(Table1).

Функции работы со строками

•	Str(<value>). Преобразует число в строку.

•	Copy(<string>, <from>, <count>). Возвращает подстроку (аналогично одноименной функции в Delphi).

•	If(<expression>, <string1>, <string2>). Возвращает строку string1, если выражение expression истинно; иначе возвращает строку string2.

•	FormatFloat(<formatstr>, <value>). Преобразует числовое значение value в строку, используя форматирование formatstr. Возможные значения formatstr описаны в документации к Delphi, раздел "Formatting strings".

•	FormatDateTime(<formatstr>, <value>). Преобразует дату/время value в строку, используя форматирование formatstr. Возможные значения formatstr описаны в документации к Delphi, раздел "Formatting strings".

•	StrToDate(<value>). Преобразует строку в дату.

•	StrToTime(<value>). Преобразует строку во время.

•	UpperCase(<value>). Преобразует символы строки в верхний регистр.

•	LowerCase(<value>). Преобразует символы строки в нижний регистр.

•	NameCase(<value>). Преобразует символы строки в нижний регистр, а первый символ - в верхний.

Арифметические функции

•	Int(<value>). Возвращает целую часть числа value.

•	Frac(<value>). Возвращает дробную часть числа.

•	Round(<value>). Возвращает округленное значение.

•	value1 Mod value2. Возвращает остаток от деления value1 на value2.

Прочие функции

•	Input(<caption> [,<default>]). Выводит на экран диалоговое окно с заголовком caption и строкой ввода. Если задан параметр default, то это значение появится в строке ввода. После ввода пользователя возвращает введенную строку.

•	Date. Возвращает дату начала формирования отчета.

•	Time. Возвращает время начала формирования отчета.

•	Line#. Возвращает номер строки данных; нумерация начинается с начала группы. Например:

Master data

    1.Detail data

    2.Detail data

    3.Detail data

Master data

    1.Detail data

    2.Detail data

•	LineThrough#. Возвращает номер строки данных; нумерация строк начинается с начала отчета, например:

Master data

    1.Detail data

    2.Detail data

    3.Detail data

Master data

    4.Detail data

    5.Detail data

•	Column#. Возвращает номер колонки в cross-tab отчете.

•	Page#. Возвращает номер текущей страницы.

•	TotalPages. Возвращает общее количество страниц в сформированном отчете. Для использования этой функции отчет должен быть двухпроходным.

Примечание. При написании выражения нельзя ставить пробел между именем функции и открывающей скобкой.


Встроенный интерпретатор

В FastReport имеется встроенный интерпретатор для управления процессом формирования отчета. В качестве языка используется диалект Pascal, со следующими возможностями:

•	операторы: присваивания; if...then...else; while...do; repeat...until;

•	блоки begin...end;

•	бестиповые переменные;

•	обращение к полям визуальных объектов FR через точечную нотацию.

В каждом объекте может быть размещен один или несколько (блок) операторов. Редактирование скрипта производится в окне редактора мемо (для того, чтобы увидеть скрипт, надо включить соответствующую галочку в верхней части окна). Скрипт выполняется каждый раз перед печатью объекта. Из скрипта доступны следующие поля объектов:

•	Left, Top, Width, Height - позиция и размеры;

•	Flags - опции объекта;

•	Visible - видимость;

•	FrameTyp - тип рамки (1 - правая линия, 2 - нижняя, 4 - левая, 8 - верхняя);

•	FrameWidth, FrameColor - толщина и цвет рамки;

•	FillColor - цвет заливки.

Объекты "Текст" имеют дополнительные поля:

•	FontName, FontSize, FontColor - имя шрифта, его размер и цвет;

•	FontStyle - стиль шрифта (1 - наклонный, 2 - утолщенный, 3 - подчеркнутый);

•	Adjust - выравнивание текста (1 - по правому краю, 2 - по центру, 3 - по ширине, +4 - текст по вертикали, +8 - центровка по высоте, +16 - по нижнему краю).

В скрипте можно использовать переменные. Переменную описывать не надо, она может иметь любой тип. Имя переменной может быть до 32 символов длиной. В имени можно использовать латинские буквы, цифры и знак подчеркивания. Переменную из скрипта можно использовать в объектах, и наоборот, переменную из списка переменных можно использовать в скрипте. Скриптовые переменные хранятся в объекте TfrVariables, к которому есть доступ через глобальную переменную frVariables.

Если в скрипте более одного оператора, то необходимо использовать операторные скобки begin...end, например:

begin

  FillColor := clGreen;

  FontColor := clWhite;

end

Применение

Вот некоторые примеры использования интерпретатора:

1. Необходимо вывести сумму заказа: белым фоном, если сумма меньше 2000; зеленым, если сумма от 2000 до 10000; красным, если сумма больше 10000. Для этого в объекте с суммой необходимо набрать следующий скрипт:

if [Сумма] < 2000 then

  FillColor := clTransparent

else if [Сумма] < 10000 then

  FillColor := clGreen

else

  FillColor := clRed

Цвет можно задать числом, например:

FillColor := 128 + 128*256 + 128*65536 (серый цвет).

2. Необходимо вывести те записи, для которых сумма заказа больше 2000. Для этого в бэнде необходимо набрать следующий скрипт (редактор мемо можно вызвать из инспектора объектов):

if [Сумма] > 2000 then

  Visible := 1 else

  Visible := 0

3. Для того чтобы показать условие группировки в Group Footer (обычным способом это сделать невозможно - будет показано условие следующей группы), необходимо в скрипте бэнда Group Header набрать

Condition := [Company]

В объекте, где надо вывести условие группировки, надо набрать (в мемо):

Итого по [Condition]

4. Пользуясь функцией FreeSpace, которая возвращает размер свободного места на листе, и процедурой NewPage(0), которая начинает печать с новой страницы, можно управлять процессом формирования отчета. Например: если места осталось меньше 30мм, начать печать со следующего листа. Для этого в скрипте нужного бэнда необходимо набрать следующее:

if FreeSpace * 5/18 < 30 then NewPage(0)

Примечание. Функция FreeSpace возвращает значение в пикселах. Для перевода в миллиметры полученное значение надо умножить на 5/18.

5. Чтобы передать значение какого-либо параметра в отчет, в предыдущих версиях FastReport надо было заводить переменную и обрабатывать ее в обработчике события OnGetValue. Теперь это можно сделать проще, пользуясь глобальной переменной frVariables. Например, чтобы показать в отчете название выбранного месяца, можно написать в коде:

frVariables['SelectedMonth'] := 'Апрель';

...

frReport1.ShowReport;

В нужном объекте надо поместить строку:

Выбранный месяц: [SelectedMonth]

Примечание. Для доступа к переменной frVariables необходимо подключить модуль FR_Intrp.


   Компонент TfrDataStorage

Компонент TfrDataStorage ("хранилище данных") предназначен для создания в run-time баз данных, таблиц и запросов, настройки списка доступных полей, создания lookup-полей, связей типа Master-Detail. Одним словом, компонент позволяет выполнять ту же работу, что и в среде Delphi. Вся информация сохраняется вместе с формой отчета.

При подключении компонента в списке мастеров дизайнера появляются два мастера: "Менеждер данных" и "Диалог параметров". Первый позволяет работать с данными - определять базы данных, таблицы и запросы, редактировать их. Второй мастер предназначен для редактирования формы диалога ввода значений параметров запроса.

Примечание. Все компоненты БД, созданные с помощью этого мастера, находятся в модуле данных (datamodule) "ReportData", который доступен в run-time. Для каждой таблицы или запроса создается источник данных для FastReport с таким же именем, как и у таблицы, но со знаком подчеркивания впереди.


Создание базы данных

Создание компонента БД необходимо в случае, если вы работаете с компонентами IBX или ADO. Перед созданием таблиц или запросов необходимо определить как минимум один объект БД.

Для создания новой БД запустите мастер "Менеджер данных". В появившемся окне нажмите кнопку "Новая база данных". В появившемся диалоге "Свойства БД" необходимо задать следующие параметры:

- если вы работаете с ADO или IBX, необходимо указать имя файла, содержащего базу данных;

- ели вы работаете с BDE, необходимо указать название алиаса, которое добавится к списку существующих алиасов, и имя драйвера БД. Для локальных таблиц Paradox, DBase следует использовать драйвер "STANDARD".

В поле редактирования параметров удобно указать имя пользователя и пароль, чтобы подключение к базе данных происходило в автоматическом режиме. Например, для подключения к SQL-серверу Interbase через драйвер BDE INTERBASE, используйте следующие параметры:

SERVER NAME=Путь к файлу *.gdb

USER NAME=SYSDBA

PASSWORD=masterkey

Для подключения с помощью IBX параметры несколько иные:

user_name=SYSDBA

password=masterkey

Флажок "Запросить пароль при подключении" выводит диалоговое окно для ввода имени пользователя и пароля при подключении к SQL серверу. Если вы уже задали эти значения в параметрах БД, флажок можно отключить.


Создание таблицы

Для создания новой таблицы БД запустите мастер "Менеджер данных". В появившемся окне нажмите кнопку "Новая таблица". В появившемся диалоге "Выбор таблицы" необходимо выбрать таблицу из любой доступной базы данных или, в случае использования локальных таблиц Paradox или DBase, выбрать таблицу прямо из файла, воспользовавшись кнопкой "Обзор".

После того, как таблица выбрана, откроется диалоговое окно "Свойства таблицы". Здесь можно задать имя таблицы (по умолчанию предлагается "Table" + первый свободный номер). Вместе с таблицей создаются источники данных TDataSource и TfrDBDataSet. Источнику данных TfrDBDataSet присваивается имя как у таблицы, но со знаком подчеркивания впереди.

Также в этом окне можно вызвать редактор полей, выбрать индекс для таблицы (если у таблицы есть вторичные индексы), задать выражение для фильтрации записей таблицы.

Для указания Master-набора данных для таблицы необходимо выбрать в списке "Master" нужный набор данных, а в строке "Master поля" указать поля из Master-набора (либо, нажав кнопку в правой части строки, вызвать диалог для визуального связывания полей).


Создание запроса

Для создания нового запроса запустите мастер "Менеджер данных". В появившемся окне намите кнопку "Новый запрос". После этого откроется диалоговое окно "Свойства запроса". Здесь можно задать имя запроса (по умолчанию предлагается "Query" + первый свободный номер). Вместе с запросом создаются источники данных TDataSource и TfrDBDataSet. Источнику данных TfrDBDataSet присваивается имя как у запроса, но со знаком подчеркивания впереди.

Выпадающий список "Алиас" содержит местонахождение таблиц БД, на основе которых построен запрос. Здесь может быть значение из выпадающего списка либо путь к каталогу с таблицами. Это поле можно оставить пустым, в этом случае алиас или путь надо указывать в тексте запроса.

После этого необходимо набрать текст запроса в поле "Текст SQL". Если в тексте запроса имеются параметры (т.е. идентификаторы со знаком ":" в начале имени), то каждый параметр необходимо описать в редакторе параметров.

Также в этом окне можно вызвать редактор полей и указать Master-набор данных. Для указания Master-набора данных для запроса необходимо выбрать в списке "Master" нужный набор данных. При этом в тексте запроса должны содержаться параметры - имена полей из Master-источника. Кроме того, каждый параметр должен иметь опцию "Назначить из Master-источника".

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


Редактор полей

В этом редакторе можно заполнить список доступных полей таблицы или запроса. Если список пуст, то доступными будут все поля.

Для добавления полей в список нажмите кнопку "Добавить поля". В появившемся окне выберите добавляемые поля и нажмите кнопку ОК. Для выбора группы полей щелкните мышью на первом поле группы, затем при нажатой клавише Shift - на последнем.

Чтобы добавить lookup-поле, воспользуйтесь кнопкой "Добавить lookup". См. создание lookup-поля.

Для удаления выделенных полей из списка предназначена кнопка "Удалить".


Создание lookup-поля

Для чего нужны lookup-поля, поясним на примере. Допустим, имеется две таблицы БД: таблица "Заказы" с полями N, Date, ClientID, Amount и таблица "Клиенты" с полями ID, Name, Address. В таблице "Заказы" содержится информация о заказах (номер, дата, идентификатор клиента, сделавшего заказ, и сумма заказа). В таблице "Клиенты" содержится информация о клиентах (идентификатор клиента, полное наименование, адрес).

Чтобы сформировать простейший отчет по таблице "Заказы" вида Номер заказа - Дата - Наименование клиента - Сумма, потребуется связать обе таблицы по полям ClientID -> ID. Эта задача решается путем создания lookup-поля, которое добавляется к таблице "Заказы" и представляет собой ссылку на поле Name таблицы "Клиенты".

Диалог создания lookup-поля доступен из редактора полей. Для создания lookup-поля надо указать его имя и тип, а также размер (в случае, если выбран строковый тип). Далее необходимо заполнить следующие поля:

•	Ключевое поле - поле в исходном наборе данных, которое следует рассматривать как ссылку на поле из lookup-набора. В нашем примере это будет поле ClientID.

•	Источник данных - lookup-набор данных.

•	Lookup ключ - поле в lookup-наборе, являющееся ключевым. В нашем примере это поле ID.

•	Результирующее поле - поле lookup-набора, которое надо подставить в исходный набор данных. В нашем примере это поле Name.

После этого в таблице "Заказы" создается фиктивное поле с заданным именем, которое содержит расшифровку поля ClientID. К нему можно обращаться как к обычному полю, но только для чтения.


Редактор параметров запроса

В диалоге можно назначить тип каждому параметру, а также указать, откуда брать значение параметра: из master-набора данных, из диалога ввода значений параметров, либо сразу назначить конкретное значение.

В случае, когда параметр берется из master-набора данных, набор данных должен содержать поле с именем, совпадающим с именем параметра. Кроме того, это поле должно быть в списке доступных полей (см. редактор полей). При этом указывать тип параметра необязательно.


Связывание данных

В этом диалоге можно визуально связать поля master и detail наборов данных. Когда наборы связаны друг с другом отношением Master-Detail, то при перемещении по master набору содержимое detail набора фильтруется таким образом, чтобы в нем содержались только записи, имеющие отношение к master набору.

Для связи полей наборов выделите поле из списка слева (detail набор), затем поле из списка справа (master набор), и нажмите кнопку "Добавить". При этом связка полей переместится в нижний список. Чтобы очистить нижний список, воспользуйтесь кнопкой "Очистить".

Примечание. Связываемые поля должны иметь одинаковый тип и быть ключевыми.


Диалог ввода значений параметров

Если отчет содержит в качестве источника данных один или несколько запросов с параметрами, которые имеют опцию "Запросить значение" (см. редактор параметров запроса), то перед формированием отчета на экран будет выведен диалог ввода значений параметров. В диалоге будут собраны все параметры, которые встречаются во всех запросах, необходимых для построения отчета.

По умолчанию для ввода значения параметра используется управляющий элемент "строка ввода", который имеет поясняющую надпись - имя параметра. Если параметров несколько, то управляющие элементы выводятся друг под другом. Это неудобно - ведь в качестве имени параметра обычно используется сокращенное название на английском языке. В этом случае можно воспользоваться дизайнером диалога.

Примечание. Диалог будет доступен, если отчет действительно в этом нуждается. Пустой отчет или отчет, не содержащий ссылок на запросы с параметрами, не выводит диалог.


Дизайнер диалога

Дизайнер предоставляет удобные средства для изменения внешнего вида диалога ввода значений параметров. Он позволяет расположить управляющие объекты диалога в нужном порядке, поменять поясняющие надписи, в качестве которых по умолчанию используются имена параметров. Кроме того, дизайнер позволяет выбрать тип управляющего элемента для ввода значения параметра - по умолчанию предлагается управляющий элемент "строка ввода".

Дизайнер не позволяет добавлять новые объекты или удалять существующие. Можно только менять их позицию и размеры, задавать свойства (например, параметры шрифта). Все операции выполняются мышью. Мышь работает точно так же, как и в дизайнере формы отчета.

Чтобы задать свойства объекта, сделайте двойной щелчок мышью на нем. В появившемся диалоговом окне можно задать текст, который будет выведен в объекте и параметры шрифта. Диалог также можно вызвать, если выбрано несколько однотипных объектов.

Если выбранный объект - управляющий элемент, то в диалоге свойств станет доступен переключатель "Тип объекта". Можно выбрать три типа:

•	Строка ввода - представляет собой строку, в которой можно набрать любой текст. Если в поле "Текст" диалога что-то набрано, то это значение будет отображаться в строке ввода при открытии диалога.

•	Список - представляет собой выпадающий список со строками. Полезная вещь, если нужно предоставить пользователю выбор из нескольких значений. Если строка списка содержит символ ";", то в списке будет выведена часть строки до точки с запятой, а при выборе этого значения на самом деле в параметр подставится часть строки после точки с запятой. Таким способом удобно, например, выбирать месяц: при использовании списка со строками типа "январь;1", "февраль;2" в списке будут отображаться названия месяцев, а в параметр попадут номера.

•	Lookup список - удобно использовать для выбора значения из справочника (таблицы БД с ключевым полем и полем, содержащим название). Для настройки lookup следует выбрать таблицу, ее ключевое поле, которое подставится в параметр, и поле, которое будет отображаться в выпадающем списке.

Можно менять размеры формы - следует только учитывать, что при выполнении диалога снизу к форме добавится кнопка OK.