
- •Лабораторная работа № 12
- •Методические указания Разработка отчетов
- •Основы конструирования отчетов
- •Окно конструктора отчетов
- •Элементы разделов отчета
- •Панель инструментов конструктора отчетов
- •Однотабличные отчеты
- •Создание однотабличного отчета с помощью мастера
- •Доработка однотабличного отчета в режиме конструктора
- •Группировка и сортировка данных отчета
- •Группировка по заданному выражению
- •Размещение данных в разделах отчета
- •Включение вычисляемого поля для расчета итоговых значений
- •Добавление текущей даты и номера страницы
- •Просмотр и печать отчета Просмотр отчета
- •Печать отчета
- •Разработка отчета с помощью мастера
- •Выбор таблиц для отчета
- •Контрольные вопросы
- •Форма отчета
Доработка однотабличного отчета в режиме конструктора
Привести отчет в соответствие с заданными требованиями можно, воспользовавшись инструментарием конструктора отчетов. Созданный мастером отчет без определения интервала группировки в режиме конструктора имеет вид, представленный на рис. 10.6.
Рис. 10.6. Отчет, созданный с помощью мастера, в режиме конструктора
Группировка и сортировка данных отчета
Для выполнения требований к группировке и сортировке данных, отображаемых в отчете, откроем диалоговое окно Сортировка и группировка (Sorting and Grouping), воспользовавшись соответствующей кнопкой на панели инструментов конструктора. Для рассматриваемого примера в этом окне отобразятся параметры, установленные мастером (рис. 10.7). Группировка записей задана по полю адрес_пок, содержащему только название города, сортировка производится по полю наим пок.
Рис. 10.7 Диалоговое окно Сортировка и группировка
Поле группировки задается путем выбора в свойствах группы значения Да (Yes) в строках Заголовок группы адрес_пок (адрес_пок Header) и Примечание группы адрес_пок (адрес_пок Footer) и помечается значком. В свойствах группы задается и интервал группировки. Если выбрать в свойстве Группировка значение По первым знакам и интервал, например, 6, в рассматриваемом примере будет правильно произведена группировка и при записи в поле АДРЕС_ПОК полного адреса, начинающегося с названия города (Москва и Санкт-Петербург). При этом в отчете будет выводиться полный адрес первого покупателя в группе.
Для поля сортировки в области Свойства группы в строках Заголовок группы
адрес_пок (адрес_пок Header) и Примечание группы адрес_пок (адрес__пок Footer) по умолчанию установлены значения Нет (No), что и определяет по этому полю только сортировку.
Группировка по заданному выражению
Группировка может быть выполнена не только по значениям одного или нескольких полей, но и по заданным выражениям. Исходим из условия, что в начале адреса записывается город и через запятую остальные составляющие адреса.
Функция
InStrB
возвращает позицию первого знака строки,
входящей в другую строку. В рассматриваемом
примере функция InStr
позволяет определить мест, где и
строковом значении поля адрес
ПОК
в первый раз встреч
ается
указанный вторым операндом символ
запятой (,). Функция InStr
возвращает номер позиции запятой. Длина
части строки до запятой на единицу
меньше. Функция Left
использует полученное значение длины
для выделения в поле адрес_пок
левой
части строкового значения, стоящей до
запятой. Таким образом из адреса
выделяется нужная для группировки
часть: название города. В отчете в режиме
конструктора выражение, по которому
выполняется группировка, отображается
в названии раздела Заголовок
группы
выражение. Это же выражение запишем в
заголовок группы вместо имени поля
адрес_пок,
иначе
в отчете в заголовке группы вместо
названия города будет отражен
полный адрес первого покупателя.
Размещение данных в разделах отчета
В отчете значение поля группировки должно быть представлено один раз в разделе Заголовок группы (Header). В примере здесь размещается название города, выделяемое из адреса с помощью функций InStr и Left.
Если необходимо включить в отчет полный адрес покупателя, добавьте поле адрес_пок в область данных, где отображаются записи о покупателях. Для этого откройте список доступных полей источника записей отчета (рис. 10.9), нажав кнопку Список полей (Field List) па панели инструментов конструктора отчетов, и перетащите поле АДРЕС_ПОК из списка полей в область данных.
Рис. 10.8 Список полей источника записей отчета
Как видно из рисунка, источником записей отчета является таблица ПОКУПАТЕЛЬ. Данные в отчете разместим в соответствии с проектом макета отчета.
Рис. 10.9. Отчет после доработки в режиме конструктора
Поскольку требуется начинать с ноной страницы вывод отчета для каждого города, выберем дли заголовка группы свойство макета Конец страницы значение До раздела. Для того чтобы на каждой странице отображался город, для которого выводится список покупателей, переместим поле с выражением из заголовка группы в верхний колонтитул и изменим надпись на Список покупателей. Для перемещения поля из одного раздела отчета в другой выделите поле, выполните для него команду Вырезать и потом, сделав текущим другой раздел, Вставить. Заметим, что подписи можно создать заново, воспользовавшись кнопкой панели элементов Надпись (Label).
Если переместить надписи из верхнего колонтитула страницы в заголовок группы, названия столбцов будут отображаться только в начале списка покупателей каждого города. Поля для табличной части отчета уже размещены в области данных. Они составят строки таблицы.
В заголовок отчета, воспользовавшись кнопкой на панели элементов, включим надпись Списки покупателей по городам.
С помощью панели инструментов и пункта меню Формат откорректируем надписи полей, установим нужный шрифт, цвет, размер элементов, как показано на рис. 10.10. В соответствии с проектом отчета создадим линии, используя кнопку панели элементов Линия (Line).