В предыдущей главе мы рассмотрели создание отчета с помощью мастера. В процессе использования отчета практически всегда возникает необходимость его модификации. Создавать сложные отчеты с помощью мастера не удается. И в этих случаях вам не обойтись без конструктора отчетов.
Существует несколько различных вариантов открытия окна конструктора отчетов. Если вы хотите модифицировать ранее созданный отчет, то в окне проекта установите курсор на его названии и нажмите кнопку Modify (Модификация).
Для открытия окна конструктора отчетов при создании нового отчета выполните одно из следующих действий.
Для работы в конструкторе отчетов используются панели инструментов Report Designer (Конструктор отчета) и Report Controls (Элементы управления отчета), а также команды пункта Report (Отчет) (рис. 8.1), появившегося в строке основного меню при открытии конструктора.
В табл. 8.1 приведено краткое описание кнопок панели инструментов Report Controls (Элементы управления отчета). Более подробно назначение кнопок этой панели будет рассмотрено в разделах, посвященных размещению в отчетах различных элементов управления.
Рис. 8.1. Окно конструктора отчета
Таблица 8.1. Кнопки панели инструментов Report Controls
Кнопка | Наименование | Назначение |
Select Objects (Выбор объектов) | Является указателем выбора объектов отчета | |
Label (Метка) | Размещает текст | |
Field (Поле) | Размещает поля | |
Line (Линия) | Рисует линии | |
Rectangle (Прямоугольник) | Рисует прямоугольники | |
Rounded Rectangle (Скругленный прямоугольник) | Рисует прямоугольник со скругленными краями | |
Picture/Act! vX Bound Control
(Изображение/Ас1!уХ-объект) |
Помещает в отчет рисунок | |
Button Lock (Закрепитель кнопки) | Закрепляет выбор кнопки |
Типы полос окна конструктора отчета
Вся рабочая область конструктора отчетов по умолчанию разделена на три полосы, ограничиваемые разделительными строками (см. рис. 8.1). Наименование полосы отображается на разделительной строке, находящейся непосредственно под этой полосой. При использовании в отчете группирования данных, добавлении в него титульной страницы и итоговых данных появляются дополнительные полосы. Каждая полоса может содержать элементы управления отчета, такие как текст, табличные и вычисляемые поля, линии, прямоугольники, рисунки.
Типы возможных в отчете полос приведены в табл. 8.2. Основное назначение полосы — определять, когда и где будут печататься размещенные в полосе объекты.
Таблица 8.2. Типы полос отчета
Полоса | Назначение |
Title (Титул) | В этой полосе размещается информация, появляющаяся перед основным отчетом и называемая титульной. Это может быть имя отчета, сопроводительное письмо или любые данные, которые необходимо поместить на первой странице отчета |
Page Header
(Верхний колонтитул) |
Эта полоса в отчете называется верхним колонтитулом. Данные, помещенные в полосу, печатаются в начале каждой страницы. Примерами элементов управления могут быть название отчета, текущая дата, номер страницы и т. д. |
Group Header
(Группа сверху) |
В этой полосе печатается информация, используемая при группировке. При группировке данных группа может иметь верхние полосы, печатаемые до нее. Они помогают идентифицировать информацию, содержащуюся на каждом уровне группировки |
Detail (Детали) | Эта полоса содержит данные полей из таблицы или результат вычислений над ними |
Group Footer
(Группа снизу) |
В полосе размещается итоговая информация по группе |
Page Footer (Нижний колонтитул) | В нижнем колонтитуле печатается название отчета, дата, номер страницы и итоговые значения по данным текущей страницы |
Summary (Итоги) | В итоговой части отчета содержится информация, появляющаяся один раз после основного отчета и содержащая итоговые значения или заключительный текст |
Использование команды Quick Report для размещения полей
В процессе создания отчета выполняются все или часть из приведенных ниже процедур:
Ускорить размещение данных в отчете можно с помощью команды Quick Report (Быстрый отчет) из меню Report (Отчет). Отчет, получаемый в результате выполнения этой командыг называется быстрым или стандартным отчетом. Иными словами, Quick Report (Быстрый отчет) — это средство конструктора отчетов, которое автоматически помещает выбранные поля и надписи к ним в окно конструктора отчета. После этого вы можете модифицировать полученный отчет, изменив текст надписей, порядок расположения полей, добавить в отчет группирование данных, заголовок и т. д.
Для создания отчета с использованием команды Quick Report (Быстрый отчет) необходимо выполнить следующие действия:
Замечание
Если перед созданием отчета вы не откроете базу данных, то на экране появится диалоговое окно Open (Открыть), отличающееся от представленного на рис. 8.2. Оно будет содержать не список таблиц базы данных, а окно, открывающееся в программе FoxPro для поиска на диске необходимого файла.
Рис. 8.2. Диалоговое окно Open
Диалоговое окно Quick Report (Быстрый отчет) содержит флажки, описанные в табл. 8.3.
Таблица 8.3. Флажки диалогового окна Quick Report
Флажок | Назначение |
Titles (Заголовки) | При установке флажка в отчет помещаются поля и надписи к ним |
Add Alias (Добавить псевдоним) | Флажок определяет, указывать ли псевдоним таблицы в именах полей в окне конструктора отчета |
Add Table to Data Environment
(Добавить таблицу в среду окружения) |
При установке флажка используемая в отчете таблица помещается в среду окружения |
Рис. 8.3. Диалоговое окно Quick Report
Рис. 8.4. Диалоговое окно Field Picker
Совет
Если вам нужно разместить в отчете все поля за исключением нескольких, сначала выберите все поля, а затем удалите лишние, воспользовавшись кнопкой Remove (Удалить).
Фрагмент отчета, сформированного с помощью команды Quick Report (Быстрый отчет), представлен на рис. 8.5.
Если текст и наименования полей в отчете представлены некорректно, необходимо изменить шрифт этих объектов. Для этого выполните следующие действия:
Рис. 8.5. Фрагмент отчета, созданного с помощью команды Quick Report
Рис. 8.6. Диалоговое окно Шрифт
Установка среды окружения отчета
Для отчета, созданного мастером или с помощью команды Quick Report (Быстрый отчет), среда окружения отчета уже определена. Разработчику, создающему отчет с помощью конструктора отчетов, среду окружения необходимо сформировать, выполнив для этого следующие действия:
Вся относящаяся к среде окружения информация хранится в файле описания отчета.
Рис. 8.7. Диалоговое окно Data Environment Report Designer
Для формирования среды окружения отчета используется окно Data Environment Report Designer (Среда окружения Конструктор отчета) (рис. 8.7), для открытия которого можно воспользоваться одним из следующих способов.
После размещения таблиц в среде окружения отчета вам необходимо упорядочить данные, находящиеся в таблицах. Для этого выполните следующие действия:
Рис. 8.8. Свойство Order используется для упорядочения записей в таблице
Если в отчете используется несколько связанных таблиц, то вам необходимо убедиться, что связи установлены так, как требуется для создания правильного отчета. Для этого выполните следующие действия:
После размещения в окне Data Environment (Среда окружения) всех используемых в отчете таблиц, закройте его, после чего Visual FoxPro сохранит созданную вами среду окружения.
Любой отчет состоит из объектов: пояснительного текста, полей отчета, разделительных линий и рамок.
Размещение в отчете текстовой информации
Размещаемый в отчете текст является объектом, который можно выделять, перемещать, изменять его размеры, используя для этого маркеры выделения, сохранять во временном буфере Windows, копировать из буфера или удалять.
Для ввода или редактирования текста в отчете выполните следующие действия:
Совет
Текст может состоять из нескольких строк. Для переноса части текста на новую строку используйте клавишу <Enter>.
Для размещенного в отчете текста можно изменять параметры используемого шрифта и цвет, выполнив следующие действия:
Рис. 8.9. Диалоговое окно Text
Добавление в отчет областей заголовка и итогов
Как правило, все отчеты содержат заголовок и итоговую часть отчета. Для их формирования необходимо добавить в отчет полосы Summary (Итоги) и Title (Титул), используя команду Title/Summary (Титул/Итоги) из меню Report (Отчет). В результате выполнения этой команды открывается диалоговое окно Title/Summary (Титул/Итоги), содержащее флажки, приведенные в табл. 8.10.
Таблица 8.4. Кнопки панели инструментов Report Controls
Флажок | Назначение |
Title band (Полоса титула) | Добавляет в отчет полосу Title (Титул) для размещения заголовка в отчете |
New page (Новая страница) области Report title (Титул отчета) | Размещает заголовок отчета на отдельной странице |
Summary band (Полоса итогов) | Добавляет в отчет полосу Summary (Итоги) для размещения в отчете итоговой части |
New page (Новая страница) области Report summary
(Итоги отчета) |
Размещает итоговую часть отчета на отдельной странице |
Установите необходимые флажки и нажмите ОК. В отчете появятся указанные вами полосы. В полосе Title (Титул) разместите объекты заголовка отчета, в качестве которых может выступать текст, поля и рисунки.
Рис. 8.10. Диалоговое окно Title/Summary
В полосе Summary (Итоги) могут размещаться итоговые значения полей отчета, а также объекты оформления отчета, такие как текст и рисунки.
Мы рассмотрели основные действия, необходимые для создания простого отчета с помощью конструктора отчетов. Теперь, подводя итоги, рассмотрим последовательность действий по созданию отчета для таблицы customer, содержащей список клиентов.
Рис. 8.11. Список клиентов
Для размещения в отчете поля, которое может быть полем таблицы или вычисляемым полем, выполните следующие действия:
Рис. 8.12. Диалоговое окно Report Expression
Диалоговое окно Report Expression (Выражение отчета) позволяет: G определить выражение, результат вычисления которого будет выводиться в данное поле;
В поле ввода Expression (Выражение) можно задать поле таблицы или выражение, размещаемое в отчете, а в поле Format (Формат) — формат данных, выводимых на печать.
Используя опции диалогового окна Calculate Field (Вычисляемое поле), открываемого при нажатии кнопки Calculations (Вычисления), можно поместить в отчет статистические значения размещенных в полях данных. Поля данного типа размещаются в отчете, как правило, в колонтитулах, полосах группы и в итоговой части отчета.
Диалоговое окно, открываемое при нажатии кнопки Print When (Условия печати), позволяет задать условия, при которых информация данного поля будет выводиться на печать.
Формирование выражения поля
Чтобы сформировать выражение для поля, размещаемого в отчете, выполните следующие действия:
Список Fields (Поля) диалогового окна Expression Builder (Построитель выражения) содержит поля помещенных в окружение отчета таблиц, список Variables (Переменные) — системные переменные Visual FoxPro. В области Functions (Функции) размещены строковые, логические, математические функции, а также функции даты и времени. Используя значения из этих списков, сформируйте необходимое выражение для создаваемого поля.
Совет
Для формирования выражения нет необходимости вводить информацию в поле Expression for Field on Report (Выражение для поля отчета) вручную, Достаточно выбирать требуемое значение из любого списка и щелчком мыши переносить его в это поле.
Рис. 8.13. Определение вычисляемого поля
При создании вычисляемых полей сформируйте выражение и проверьте его правильность с помощью кнопки Verify (Проверить). Например, вы можете отобразить в отчете вместо двух полей, содержащих город и адрес клиента, одно вычисляемое поле, которое содержит полный адрес. Выражение для этого поля имеет следующий вид (рис. 8.13):
ALLTRIM{Customer.cCity)+", "+ ALLTRIM(Customer.cAddress)
Задание формата данных
Диалоговое окно Report Expression (Выражение отчета) позволяет задать формат отображения поля при печати, допуская использование тех же функций форматирования, которые используются при форматировании полей формы. С помощью форматирования вы можете:
Рис. 8.14. Диалоговое окно Format
Для задания формата поля нажмите кнопку вызова построителя поля Format (Формат). Откроется диалоговое окно Format (Формат) (рис. 8.14), содержащее опции и флажки, позволяющие задать тип данных поля.
Замечание
Кнопки вызова построителя всегда располагаются справа от поля ввода.
Перечень параметров настройки поля определяется выбором соответствующей опции для форматирования полей символьного, числового типов, а также полей дат. Список этих параметров представлен в табл. 8.5—8.7.
Таблица 8.5. Параметры настройки символьных полей
Параметр | Назначение |
То upper case (Верхний регистр) | Символы преобразуются в прописные буквы |
SET DATE format (В виде даты) | Данные отображаются в виде даты в формате, установленном командой SET DATE |
Ignore input mask
(Игнорировать маску ввода) |
Отображает данные на экране в соответствии с маской ввода |
British date (Европейская дата) | Данные отображаются в виде даты в европейском формате |
Left justify (Сдвинуть влево) | Данные выравниваются по левому краю поля |
Right justify (Сдвинуть вправо) | Данные выравниваются по правому краю поля |
Center justify (По центру) | Данные в поле центрируются |
Таблица 8.6. Параметры настройки числовых полей
Параметр | Назначение |
Left justify (Сдвинуть влево) | Число выравнивается по левому краю поля |
Blank if zero (Пусто, если ноль) | Ноль не печатается |
(Negative) (Отрицательное) | Отрицательные числа заключаются в круглые скобки |
SET DATE format (В виде даты) | Данные отображаются в виде даты в формате, установленном командой SET DATE |
British date (Европейская дата) | Данные отображаются в виде даты в европейском формате |
CR if positive (CR, если положительно) | Если число положительное, после него ставится CR (кредит) |
DB if negative (DB, если отрицательно) | Если число отрицательное, после него ставится DB (дебет) |
Leading zeros (Незначащие нули) | Печатаются все ведущие нули |
Currency (Денежная единица) | Данные отображаются в формате денежной единицы, который задается командой SET CURRENCY |
Scientific (Экспоненциально) | Отображает число в экспоненциальном формате |
Таблица 8.7. Параметры настройки полей типа "дата"
Параметр | Назначение |
SET DATE format (В виде даты) | Дата отображается в формате, установленном командой SET DATE |
British date (Европейская дата) | Дата отображается в европейском формате |
Задание условий печати
Для задания условий печати данных отчета используется диалоговое окно Print When (Условие печати) (рис. 8.15), открываемое из диалогового окна Report Expression (Выражение отчета) нажатием кнопки Print When (Условие печати). С помощью параметров этого окна вы можете удалить из отчета пустые строки, определить условия печати значений полей, при переходе на следующую страницу или при изменении выражения группы и т. п.
Рис. 8.15. Диалоговое окно Print When
Для подавления печати повторяющихся значений полей используется значение No (Нет) переключателя Print repeated values (Печатать один раз на полосу). При установленном значении Yes (Да) печатаются все значения поля.
Область Also print (Печатать) содержит флажки (табл. 8.8).
Таблица 8.8. Флажки области Also print
Флажок | Назначение |
In first whole band of new page/column
(На первой целой полосе новой страницы/ колонки) |
Поле печатается в первой полосе новой страницы или колонки |
When this group changes (При изменении группы) | Поле печатается при изменении группы, выбранной в списке групп |
When detail overflows to new page/column
(При переходе на новую страницу/колонку) |
Поле печатается при переходе полосы Detail (Детали) на новую страницу |
При установке флажка Remove line if blank (Удалять пустые строки) пустые строки удаляются из отчета.
В поле Print only when expression is true (Печатать, если истинно), используя построитель выражения, можно задать выражение, вычисляемое перед печатью данного поля. Если значение выражения ложно, то значение поля печататься не будет.
Расположение поля в полосе
Диалоговое окно Report Expression (Выражение отчета) (см. рис. 8.12) содержит переключатель Field position (Положение поля), позволяющий управлять расположением поля в полосе (табл. 8.9).
Таблица 8.9. Опции диалогового окна Report Expression
Опция | Характеристика |
Float (Плавающее) | Позиция поля в отчете может изменяться при изменении размеров окружающих его полей |
Fix relative to top of band
(Постоянное относительно верхней полосы) |
Поле сохраняет постоянную позицию относительно верхней границы полосы |
Fix relative to bottom of band
(Постоянное относительно нижней полосы) |
Поле сохраняет постоянную позицию относительно нижней границы полосы |
Размещение итогового поля
В колонтитулах, полосах группы, в итоговой части отчета, а также в полосе Detail (Детали) можно размещать поля, содержащие статистические значения полей отчета.
Замечание
Итоговые поля, размещаемые в полосе Detail (Детали), предназначены для вывода значений нарастающих итогов.
Для определения поля в качестве итогового выполните следующие действия:
Рис. 8.16. Диалоговое окно Calculate Field
Диалоговое окно Calculate Field (Вычисляемое поле) содержит группу переключателей Calculate, описанную в табл. 8.10.
Таблица 8.10. Опции диалогового окна Calculate Field
Переключатель | Назначение |
Nothing (Ничего) | Над полем не производится вычислений |
Count (Сосчитать) | Вычисляется количество значений поля (сами значения поля не используются) |
Sum (Сумма) | Вычисляется итоговая сумма значений поля |
Average (Среднее арифметическое) | Вычисляется среднее арифметическое значений поля |
Lowest (Наименьшее) |
Отображается наименьшее значение поля |
Highest
(Наибольшее) |
Отображается наибольшее значение поля |
Standard deviation
(Квадратный корень из дисперсии) |
Возвращается квадратный корень из дисперсии |
Variance
(Отклонение от среднего) |
Возвращается статистическая величина отклонения отдельных значений поля от среднего в группе |
Замечание
В верхней части диалогового окна находится раскрывающийся список Reset (Сброс), используя который, вы можете определить момент обнуления итогового поля.
Размещение в отчете линий и прямоугольников
Для улучшения внешнего вида отчета и повышения читабельности можно использовать линии и прямоугольники.
Для проведения вертикальной или горизонтальной линии в отчете выполните следующие действия:
Для размещения в отчете прямоугольника и прямоугольника со скругленными углами используются кнопки Rectangle (Прямоугольник) и Rounded Rectangle (Прямоугольник со скругленными углами) на панели инструментов Report Controls (Элементы управления отчета) конструктора отчетов. Нажмите необходимую кнопку на панели инструментов, установите указатель в какой-либо угол прямоугольника и перемещайте курсор в противоположный угол до получения прямоугольника нужного размера. Затем установите необходимые атрибуты прямоугольника, используя для этого следующие опции команды Реп (Перо) из меню Format (Формат) (табл. 8.11).
Таблица 8.11. Опции команды Реп из меню Format
Опция | Атрибут объекта |
Hairline (Тонкая линия) | Контур шириной в один пиксел |
1 Point {1 пункт) | Контур шириной в один пункт |
2 Point (2 пункта) | Контур шириной в два пункта |
4 Point (4 пункта) | Контур шириной в четыре пункта |
6 Point (6 пунктов) | Контур шириной в шесть пунктов |
None (Нет) | Выделенный объект не имеет контура |
Dotted (Пунктир) | Пунктирный контур |
Dashed (Штрих) | Контур в виде коротких штрихов |
Dash-dot (Штрих-точка) | Контур в виде чередующихся штрихов и точек |
Dash-dot-dot {Штрих-точкаточка) | Контур в виде чередующихся штрихов и пар точек |
Панель инструментов Color Palette
Visual FoxPro предоставляет в распоряжение разработчика средства для изменения цвета размещенных в отчете объектов. Для печати такого отчета вам потребуется цветной принтер.
Для изменения в отчете цвета объекта выполните следующие действия:
Панель инструментов Color Palette (Цветовая палитра) (рис. 8.17) содержит шестнадцать кнопок с заданными цветами и три дополнительные кнопки (табл. 8.12).
Таблица 8.12. Кнопки панели инструментов Color Palette
Кнопка | Назначение |
Задает цвет объекта | |
Задает цвет фона | |
Открывает диалоговое окно Цвет для задания цветов, отсутствующих на панели |
Рис. 8.17. Панель инструментов Color Palette
Рис. 8.18. Диалоговое окно Цвет
При создании отчетов можно использовать более широкую цветовую гамму. Для этого необходимо щелкнуть мышью на кнопке Other Colors (Другие цвета) панели инструментов Color Palette (Цветовая палитра) и в открывшемся диалоговом окне Цвет (рис. 8.18) выбрать один из 48 цветов, предлагаемых программой Visual FoxPro или использовать пользовательские цвета, расположенные в области Дополнительные цвета.
Для создания пользовательского цвета, размещаемого в области Дополнительные цвета, выполните следующие действия:
Рис. 8.19. Диалоговое окно Цвет для создания собственного цвета
В отчеты, создаваемые в программе Visual FoxPro, можно включать растровые рисунки, которые улучшат внешний вид отчета. В письмах, рассылаемых клиентам, можно, например, поместить фирменный знак или эмблему фирмы. Для подготовки изображения можно использовать графические редакторы или сканер для считывания изображения.
Для размещения в отчете рисунка используется кнопка Picture/ActiveX Bound Control (Изображение/ActivX объект) панели инструментов Report Controls (Элементы управления отчета) конструктора отчетов. Нажмите данную кнопку, а затем установите курсор в один из углов области, в которой должен находиться рисунок, и переместите курсор в противоположный угол до образования рамки необходимого размера. При этом открывается диалоговое окно Report Picture (Изображение отчета) (рис. 8.20), в котором вы определяете источник данных рисунка и его параметры. Источником данных может быть файл, содержащий рисунок, или поле таблицы типа General. Для указания источника данных используются опции области Picture from (Изображение из) диалогового окна.
Рис. 8.20. Диалоговое окно Report Picture
При размещении в отчете графического изображения в диалоговом окне Report Picture (Изображение отчета) установите опцию File (Файл). Затем нажмите кнопку выбора файла, расположенную с правой стороны поля. В открывшемся диалоговом окне Open (Открыть) выберите требуемый графический файл. Если вы знаете полное имя файла, то можете ввести его непосредственно в поле ввода File (Файл) без использования диалогового окна Open (Открыть).
В том случае, если вы хотите печатать в отчете изображения, размещенные в поле таблицы (в Visual FoxPro для хранения графических изображений используются поля типа General), в диалоговом окне Report Picture (Изображение отчета) установите опцию Field (Поле). Затем нажмите расположенную с правой стороны поля кнопку и в открывшемся диалоговом окне Choose Field/Variable (Выбор поля/переменной) выберите необходимое поле таблицы.
Если размер выделенной для размещения изображения области и размер самого изображения не совпадают, воспользуйтесь группой переключателей If picture and frame different sizes (Если разный размер) (табл. 8.13).
Таблица 8.13. Группа переключателей If picture and frame different sizes
Переключатель | Режим отображения |
Clip picture (Обрезать изображение) | Рисунок фиксируется в левой верхней части рамки, сохраняя первоначальный размер |
Scale picture, retain shape
(Масштабировать, сохраняя форму) |
Рисунок полностью заполняет отведенное ему поле, сохраняя относительные пропорции растрового изображения |
Scale picture, fill the frame
(Масштабировать, заполняя рамку) |
Рисунок полностью заполняет отведенное ему поле, в случае необходимости подвергаясь вертикальному или горизонтальному искажению |
Переключатель Object Position (Положение объекта) диалогового окна Report Picture (Изображение отчета) позволяет задать положение графического изображения в полосе при изменении размеров окружающих его полей (табл. 8.14).
Таблица 8.14. Группа переключателей Object Position
Переключатель | Характеристика |
Float (Плавающее) | Расположение изображения в отчете может изменяться при изменении размеров окружающих его полей |
Fix relative to top of band
(Постоянное относительно верхней полосы) |
Изображение сохраняет свое положение относительно верхней границы полосы |
Fix relative to bottom of band
(Постоянное относительно нижней полосы) |
Изображение сохраняет свое положение относительно нижней границы полосы |
Создание отчета в свободной форме
Мы рассмотрели основные этапы работ для создания отчета в конструкторе отчетов. Приступим к созданию отчета в свободной форме для рассылки прайс-листов потенциальным клиентам.
ALLTRIM(Customer.cFirstName) + " "+ ALLTRIM(Customer.cSecondName)
ALLTRIM{Customer.cCity)+ " " +ALLTRIM(Customer.cAddress)
Рис. 8.21. Отчет в свободной форме Edit
Рис. 8.22. Отчет в свободной форме Preview
Создадим в конструкторе отчетов табличный отчет, содержащий список заказов. При создании отчета будем использовать три таблицы. Таблица Ordsaiem содержит сведения о заказе на товары — это главная таблица, на основании которой строится отчет. Остальные две таблицы являются вспомогательными. Таблица ordsaied содержит сведения о товарах, входящих в заданный заказ (количество купленных товаров и цена товара), а таблица Customer — информацию о клиентах. Приступим к созданию отчета.
Установив связи между таблицами и упорядочив данные (рис. 8.23), закройте окно Data Environment (Среда окружения).
Рис. 8.23. Диалоговое окно Data Environment
Рис. 8.24. Созданный отчет в окне конструктора отчетов
Рис. 8.25. Просмотр табличного отчета
Посмотрите на отчет, представленный на рис. 8.25. Видно, что клиент может приобрести разные товары. Сам собой возникает вопрос: а нельзя ли объединить данные в отчете таким образом, чтобы иметь краткую информацию о том, какие товары приобрел тот или иной клиент?
Для группировки данных в отчете используется команда Data Grouping Группировка данных) меню Report (Отчет) и команда Data Grouping
Группировка данных) контекстного меню, которые позволяют создавать до 20 уровней вложенности групп и выполнять над ними следующие операции:
Рис. 8.26. Диалоговое окно Data Grouping
При выполнении данных команд открывается диалоговое окно Data Grouping (Группировка данных) (рис. 8.26), содержащее список созданных в отчете групп. Используя расположенные в окне кнопки, можно редактировать или удалять имеющиеся в отчете группы, добавлять новые.
Для формирования выражения, по которому будут группироваться данные в отчете, можно использовать построитель выражения или ввести требуемое выражение непосредственно в поле Group expressions (Выражение группировки).
В диалоговом окне Data Grouping (Группировка данных) вы можете установить следующие параметры группировки данных (табл. 8.15).
Таблица 8.15. Параметры группировки данных окна Data Grouping
Флажок | Назначение |
Start group on new column
(Каждая группа в новой колонке) |
Если флажок установлен, то при каждом изменении группы происходит формирование новой колонки |
Start each group on a new page
(Каждая группа на новой странице) |
При установке флажка каждая группа отчета размещается на новой странице |
Reset page number to 1 for each group (Сброс нумерации страниц для каждой группы) | При установке флажка каждая группа отчета размещается на новой странице. Нумерация страниц группы начинается с 1 |
Reprint group header on each page (Верхняя полоса группы для каждой страницы) | Если группа занимает несколько страниц, то при установке флажка верхняя полоса группы размещается после верхнего колонтитула страницы |
Start group on new page when less than (Печатать группу с новой страницы, если) | Если под заголовком группы остается расстояние меньше указанного в данном поле, то информация группы будет перенесена на новую страницу |
С помощью кнопки Insert (Вставить) диалогового окна Data Grouping (Группировка данных) можно добавить в отчет новую группу. Для удаления полосы группы используется кнопка Delete (Удалить).
Использование группировки в отчете
Модифицируем отчет, созданный в предыдущем примере. Добавим в него группировку по клиентам и разместим в полосах группы наименование клиента и итоговую сумму приобретенных им товаров.
Рис. 8.27. Группировка данных в отчете по коду клиента
Рис. 8.28. Просмотр отчета с группировкой данных
Использование в отчете переменных
В отчете вы можете использовать переменные из программы, доступные в момент вызова отчета, а также переменные, определенные в конструкторе отчетов и используемые для хранения результатов вычислений, выполняемых во время печати отчета.
Переменные отчета определяются в диалоговом окне Report Variables (Переменные отчета) (рис. 8.29), для открытия которого используется команда Variables (Переменные) из меню Report (Отчет). Кнопки Insert (Вставить) и Delete (Удалить) позволяют добавлять в отчет новые переменные и удалять существующие.
Рис. 8.29. Диалоговое окно Report Variables
Диалоговое окно Report Variables (Переменные отчета) содержит три поля, описанных в табл. 8.16.
Таблица 8.16. Поля диалогового окна Report Variables
Наименование поля | Назначение |
Variables (Переменные) | Содержит наименование переменной, которое может включать в себя только буквы, цифры и символ подчеркивания и не может начинаться с цифры |
Value to store (Хранимое значение) | Значение переменной |
Initial value (Начальное значение) | Начальное значение переменной |
Замечание
Для формирования значений переменных, задаваемых в полях Value to store (Хранимое значение) и Initial value (Начальное значение), можно использовать диалоговое окно Expression Builder (Построитель выражения), открываемое при нажатии расположенных с правой стороны поля кнопок.
При установке флажка Release after report (Освободить после отчета) после завершения печати отчета переменная очищается из памяти.
Список Reset at (Сброс) содержит три значения, указывающие момент сброса переменной в начальное значение: в конце отчета, в конце страницы или в конце группы.
Группа переключалей Calculate, расположенные в диалоговом окне Report Variables (Переменные отчета), позволяет задать выражения, выполняемые над переменной вычисления (табл. 9.17).
Таблица 8.17. Назначение группы переключалей Calculate диалогового окна Report Variables
Переключатель | Назначение |
Nothing (Ничего) | Над переменной вычисления не производятся |
Count (Количество) | Вычисляется количество появлений переменной в группе, на странице, в колонке или отчете (значение переменной не используется) |
Sum (Сумма) | Вычисляется итоговая сумма значений переменной |
Average (Среднее) | Вычисляется среднее арифметическое значений переменной в группе, на странице, в колонке или отчете |
Lowest
(Минимальное) |
Отображается наименьшее значение переменной в группе, на странице, в колонке или отчете |
Highest (Максимальное) | Отображается наибольшее значение переменной в группе, на странице, в колонке или отчете |
Std, deviation (Станд. отклонение) | Возвращается квадратный корень из дисперсии значений переменной в группе, на странице, в колонке или отчете |
Variance (Дисперсия) | Возвращается статистическая величина отклонения отдельных значений переменной от среднего в группе, на странице, в колонке или отчете |
При использовании переменных в отчете необходимо иметь в виду следующее.
Для разметки страницы отчета используется диалоговое окно Page Setup (Разметка страницы) (рис. 8.30), открываемое при выборе в меню File (Файл) команды Page Setup (Разметка страницы). Оно позволяет определить количество колонок в отчете, порядок вывода записей, ширину левого поля отчета, ширину колонок и расстояние между ними, единицу измерения координат отчета и выбор режима печати.
В области Columns (Колонки) этого диалогового окна определяются размеры колонок и их количество на странице (табл. 8.18).
Таблица 8.18. Назначение полей области Columns диалогового окна Page Setup
Поле | Назначение |
Number (Число) | Определяет число колонок на странице |
Width (Ширина) | Определяет ширину колонок в сантиметрах или дюймах |
Spacing (Расстояние) | Определяет расстояние между колонками |
Рис. 8.30. Диалоговое окно Page Setup
Опции переключателя Print area (Область печати) описаны в табл. 8.19.
Таблица 8.19. Назначение опций переключателя Print area
Опция | Назначение |
Printable page
(Печатаемая страница) |
Устанавливает режим печати с полями страницы, определяемыми в соответствии с требованиями текущего драйвера печати |
Whole page
(Страница в целом) |
Устанавливает режим печати с минимальными полями |
Для задания порядка вывода записей в многоколоночных отчетах используются две кнопки области Print order (Порядок печати). Расположенный ниже счетчик Left margin (Левая граница) задает ширину левого поля отчета.
Создание многоколоночного отчета
Мы рассмотрели создание отчета для рассылки информации потенциальным клиентам. Используя многоколоночный отчет, подготовим данные для печати адресов, наклеиваемых на конверты для отправки клиентам.
Рис. 8.31. Многоколоночный отчет
Рис. 8.32. Многоколоночный отчет в окне предварительного просмотра