А.Ю. Гончаров Access 2003 (960524), страница 33
Текст из файла (страница 33)
Конструктор отчетовЕсли открыть в режиме конструктора отчет, создание которого описываетсяв разделе 8.1, то мы увидим окно, очень похожее на конструктор форм (рис. 8.5).Вся область отчета разделена несколькими горизонтальными линейками на зоны:Заголовок отчета, Верхний колонтитул, Область данных, Нижний колонтитул. Примечание отчета. Высоту этих зон можно менять при помощи мыши.Все элементы отчета представлены в режиме конструктора в качестве объектов.После того как объект выбран, он окружается рамкой с черными квадратиками(маркерами).
На рисунке выделено поле, в котором помещен заголовок документа. Маркеры, как обычно, служат для изменения размеров объекта. Пользовательможет перемещать объекты, задавать их свойства и программировать обработкуГлава 8событий, связанных с объектом. Каждый объект снабжен контекстным меню,которое позволяет выполнять указанные действия.
Кроме этого, объекты можнокопировать через буфер обмена. При вставке объект располагается по умолчаниюв верхнем левом углу выбранной зоны. Для того чтобы поместить объект в определенную точку отчета, можно создать вспомогательный элемент управленияв этом месте, выделить его и выполнить вставку из буфера. Вставляемый объектбудет расположен рядом. Затем вспомогательный элемент управления можноудалить.
При просмотре отчета в режиме конструктора видно, что многие объекты в отчете располагаются парами. Например, поле и его подпись, флажок и егоподпись и т. д. Такие объекты бывает удобно перемещать в связке. Если указательмыши принимает вид раскрытой ладони, то расположенные рядом объекты можно двигать одновременно.
В этом случае их взаимное расположение не изменится. Если указатель мыши имеет вид указующего перста, то перемешать можноодин объект. Для удобства позиционирования в поле отчета выведена сетка. Программа позволяет автоматически выравнивать объекты по сетке. Соответствующие команды находятся в меню Формат.Заказано : отчет• ID • i • ч • ^ - а - < • и • i • 14 • 1 • is • • • к • < • 17 •аголовок отчетаЗаказано '! 1 1< Верхний колонтитулКодЩка:KwtiFtefmsdllс!яи)кд* Область данныхКодЗз|<аэаj L Код То в ара4~||Ко1ичеет*о\—л—[..._— ,_|'Скидка!. |.. .-._„[-f tt-Екний колонтитулРис.
8.5. Отчет в режиме конструктораДля создания в отчете новых объектов - элементов управления - в режимеконструктора на экран, как и в конструкторе форм, выводится Панель элементов. Элементы управления отличаются тем, что их недостаточно просто создать необходимо еще запрограммировать, иначе они бесполезны. Различные аспектысоздания элементов управления обсуждаются, в частности, в главах 7, 10 и 11./.,Отчеты1j; Код раказа Говад\Щиа Кмичаство \f Область Д?иныхКод ЗаказаЖодТЬвэрэ* Нижний копс»1титулl~Nowf]* Примечлни отчетаl-*-*--4*>^fi*HT '>иРис.
8.6. Нижний колонтитул отчета в режиме конструктораНа рис. 8.6 показан нижний колонтитул автоотчета. Программа по умолчаниювставила в колонтитул поле, использующее длинный формат даты, с функциейN o w ( ) (текущая дата), а также поле с выражением, в которое входят переменныеPage (Страница) и Pages (Страниц):-"Страница " & [Page] & " из " & [Pages]Результат такого оформления виден на рис. 8.7. Для создания подобных полейудобно использовать построитель выражений. Он запускается через контекстноеменю элемента управления. Из меню надо выбрать команду Свойства, а далее навкладке Данные использовать кнопку в строке Данные.10253 Ctocolacle10254 OutbfCk Lager160.00р.36,00рСтраница I из 95Рис.
8.7. Нижний колонтитул отчета в режиме просмотра8.4. Сортировка и группировка в отчетеВ таблице Заказано есть записи с одинаковыми кодами заказов, и в отчете,сделанном на основе этой таблицы, можно сгруппировать записи по номерам заказов. Для подобных операций в Access предусмотрен специальный инструмент.Создадим на базе нашего автоотчета отчет Группировка, в котором записи будутотсортированы и сгруппированы по номерам.
Для этого надо выполнить следующие действия:Глава 8188Скопируйте отчет Заказано в буфер обмена и вставьте его на вкладку Отчеты,дав ему новое имя. Откройте отчет в режиме конструктора.2. Нажмите кнопку Сортировка и группировка на главной панели инструментов (или выберите эту команду из контекстного меню, связанного с линейкойОбласть данных). Откроется окно с тем же именем. Выберите из спискав первом столбце поле КодЗаказа (рис. 8.8), а в столбце Порядок сортировкиукажите значение «По возрастанию».I.[<- Сортировка и группировкаПоле/выражепчеIПорядок сортированПо возрастаниюСвойства группыЗаголовок группыПримечание группыГруппировкаИнтервалНе разрыватьДаНетПо полному знача*1НетнОтображение заголовкагруппыРис.
8.8. Окно для выбора параметров сортировкии группировки3,•i5бУстановите опцию Заголовок группы как «Да». Закройте окно Сортировкаи группировка. В отчете появится новая линейка, которая создаст зону заголовка группы, как показано на рис. 8.9.Создайте в зоне заголовка группы новое поле. Его надпись будет определенапрограммой автоматически. Нам потребуется ее изменить. Раскройте контекстное меню надписи, выберите команду Свойства и на вкладке Макет задайте новую подпись «Заказ».Теперь выделите само поле и укажите источник данных для него, то есть длязаголовка группы.
Напомню, что это можно сделать, открыв вкладку Данныеи отредактировав одноименное свойство. Используйте имя поля, которое быловыбрано в окне Сортировка и группировка. В нашем примере это поле КодЗаказа.На вкладке «макет» задайте более крупный шрифт, например: размер 12 пунктов и полужирное начертание.Отчеты189' 1 • 1 • I"jJ1.I<{•!']' l ' 4 ' l - l* Верхний во понтитулКадЪахазф To^fpI"1Щна Щитв^пиоСкидка* Заголовок группы 'КодЗаказа''Заказ:,Ki дЗаказ|х* Область данных|КодЗ*ааа'|КодТрвавв 1* Ни*н1Й юэлонтитуя* Причечани отчета,...,..,U ,Рис. 8.9. Зона заголовка группыТеперь данные в отчете будут разбиты на группы.
Каждую группу будет предварять ее заголовок с номером заказа, как показано на рис. 8.10. Первая колонкаотчета теперь лишняя. Убедившись, что новые заголовки правильно показываютномера заказов, первую колонку можно убрать. Для этого достаточно выделитьи удалить поле и заголовок колонки (открыв отчет в режиме конструктора). Освободившееся место можно занять другими полями.ЗакюаноЦена КоличествоКод захаш ТоварЗаказ:Скидка1024835,30р.10348 Chartreuse vette10246 Jadi'sHev.EnglardClamCho10246 С am ал bail Pierrot10248 MlsHMoteNiku<'Рис.
8.10. Отчете группировкой данныхNBЕсли-во время работы в окне Сортировка и группировка значениеЗаголовок группы установлено как «Нет», группы создаваться не будут, но данные в отчете будут отсортированы по выбранному полю.Обеспечить группировку записей можно и в том случае, когда отчетстроится с помощью мастера отчетов.Глава 81908.5. Мастер отчетовОтчет можно построить и с помощью мастера. Перед его запуском необходимо выбрать таблицу или запрос, которые будут служить источником данных дляотчета. Используем таблицу Заказы. На первом шаге мастера, изображенном нарис. 8.11, необходимо выбрать поля для отображения в отчете. Выберем (из списка «Доступные поля») КодЗаказа, КодКлиента, ДатаРазмещения, ДатаНазначения, ДатаИсполнения.
Это вполне подходящее количество полей для одного отчета. Еслиполей слишком много, то программе не всегда удается правильно расположитьданные.Выберите поля для отчета.Допу'Хается выбор нескольких таблиц или запросов.Выбранные поля:Стоииость ДоставкиНазеаниеП о л уч а теляАд р е сП олучэт еляГородПолучателяОбластьПо пучателяИндексПолучателяС транэПо лу ч а теляЕВЁШЗЭЭИКодКлиентаДэтаРазмеще! >.: I ДэтаР& смещенияДатаНаэначенияДэтаНаэначеДатаИсполненияРис. 8.11. Первый шаг мастера отчетовНа втором шаге мастера (рис. 8.12) можно определить параметры группировки,о которой говорилось выше.
Правая часть окна мастера представляет собой упрощенный макет отчета, который наглядно показывает принцип группировки. Поле,значения которого будут сгруппированы, надо выбрать из левого списка. Выберемдва поля: КодКлиента и КодЗаказа. При том положении, которое они займут в окнемастера, список заказов в отчете будет сгруппирован по клиентам и номерам.Иерархию группировки можно менять при помощи кнопок Уровень. Один из уровней группировки всегда является текущим.
Он выделяется полужирным шрифтом,и к нему относятся все операции в окне, в том числе команды изменения уровня.Отчеты191Кнопка Группировка позволяет определить интервалы группировки. Это особенно важно для числовых данных и данных типа дата/время, потому что позволяет избежать слишком большого числа групп или обеспечивает создание таких групп,какие нужны пользователю.Создание отчетовДобавить уровни группировки?КйдКлиентаКод За к аз аДатаНазначенияДатаИсполненияДат зР а зиещения, Да т а Назначения,ДатаИсполиения[ LUf—Ли,Уровен?I •'Группировка...IОтменаI<ЦазадIIДалее >IГотовоРис.
8.12. Второй таг мастера отчетовСоздание отчетовВыберите порядок сортировки записей.-гкДопускается сортировка записей по возрастаниюили по убыванию, включающая до •) полей.i 1. Дат заполнения2.3 , 1'Рис. 8.13. Третий шаг мастера отчетовv; [по возрастаниюv j по возрастанию' - • , : . , - - - .Глава 8W2На третьем шаге (рис. 8.13) выбирают поля, по которым будет проведенасортировка данных. Здесь можно задать вычисление итоговых значений длячисловых полей. Нам можно использовать для сортировки поле ДатаИсполнения.Как всегда, имеется возможность выбрать принцип сортировки «по возрастанию» или «по убыванию».На четвертом шаге планируется общий вид отчета. Здесь вид окна мастера зависит от .того, как была определена операция группировки. В зависимости от этого программа предлагает набор макетов отчета. В нашем примере (рис. 8.14)мастер предложил достаточно большое число макетов, но так бывает не во всехслучаях.
Картинка в левой части окна помогает понять, как будет выглядетьотчет, если выбрать определенный макет. Нам подойдет, например, макет «блок»,так как он обеспечивает компактное расположение данных.Cojflat|ние отчетовтВыберитееид макета дпя отче <Ориентацияф книжнаяжххх хкххх хит хххх» жхххХХЖХКИККХWf<ХКХХХЯХХХХ ККХКЙ*<ХКККХИХ*ХЯХX X X ХКхххкх тхх «хххXXX XX КХИХХ »1Х»1KXUXX ХХНХХ .(•••'>кхххх ххкхх хнякл;х<ххххххя ххххи ч«ххXXXXXХКХлЧЛХХй)0 Настроить ширину полей дляразмещения на одной странице.Рис. 8.14.