Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3_Access2007_Отчеты

.pdf
Скачиваний:
20
Добавлен:
02.04.2015
Размер:
1.46 Mб
Скачать

Рис. 37. Подчиненный отчет ОТГРУЗКА в режиме макета с выделенным макетом

Закроем отчет, сохранив его под данным по умолчанию именем ОТГРУЗКА.

Включение подчиненного отчета

Если отчет ТОВАР закрыт, откройте его в режиме конструктора. В области переходов выделите имя отчета ОТГРУЗКА и перетащите в его область данных главного отчета ТОВАР. Отчет ОТГРУЗКА встраивается в качестве подчиненного в главный отчет, где он доступен для редактирования.

Access автоматически устанавливает связь между главным и подчиненным отчетом по полю КОД_ТОВ (код товара), т. к. она определена в схеме данных. При этом не имеет значения, включено ли поле связи в подчиненный отчет. Проверить имена полей связи можно в свойствах элемента Подчиненная форма/отчет

(Subform/Subreport) на вкладке Данные (Data) в строках Подчиненные поля (Link Child Fields) и Основные поля (Link Master Fields) (рис. 38). Не путайте свойства

подчиненного отчета и элемента Подчиненная форма/отчет (Subform/Subreport), содержащего подчиненный отчет.

Рис. 38. Свойства элемента Подчиненная форма/отчет

Установленная связь отчетов ТОВАР и ОТГРУЗКА позволяет для каждой записи в отчете ТОВАР отображать только связанные записи в подчиненном отчете ОТГРУЗКА.

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

Конструктор (Design) кнопкой Подчиненная форма/отчет (Subform/Subreport). При этом должна быть выключена кнопка Использовать мастера (Use Control Wizards). Мастер создает в области данных основного отчета элемент Свободный (Unbound) с надписью ВнедренныйN (ChildN) и предлагает выбрать существующий подчиненный отчет или создать его на основе таблиц и запросов. Далее определяются поля связи основного и подчиненного отчетов, имя подчиненного отчета и на этом работа мастера завершается. Свободный элемент превращается в элемент, называемый Подчиненная форма/отчет, и в его свойствах на вкладке Данные (Data) в строке Объект-источник (Source Object) указывается имя встроенного отчета, а в строках Подчиненные поля (Link Child Fields), Основные поля (Link Master Fields) указываются поля связи основного и подчиненного отчетов.

Доработка составного отчета

В режиме конструктора и макета в составном отчете доступны для редактирования как основной, так и подчиненный отчеты.

Над рамкой подчиненного отчета размещен элемент с его именем (Отгрузка). Удалим этот элемент.

Верхний колонтитул подчиненного отчета ОТГРУЗКА, в котором размещены подписи полей, не отображается при просмотре составного отчета. Поэтому для отображения заголовков столбцов табличной части отчета перенесем названия столбцов из верхнего колонтитула в заголовок подчиненного отчета. Удалим содержимое заголовка подчиненного отчета. Выделим все подписи полей в верхнем колонтитуле щелчком слева и перетащим их в область заголовка. Если в каждом

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

После этого в подчиненном отчете удалим оба колонтитула, вызвав контекстное меню в любом месте внутри подчиненного отчета и выполнив команду

Колонтитулы страницы (Page Header/Footer).

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

Используя инструменты на вкладке ленты Конструктор (Design) или Формат (Format) в режиме макета, на вкладке Упорядочить (Arrange), а также обращаясь к свойствам элементов отчета, откорректируем подписи, изменим формат полей и подписей, проведем недостающие линии.

Отчет ТОВАР в режиме конструктора после внедрения подчиненного отчета ОТГРУЗКА и доработки показан на рис. 39.

Рис. 39. Отчет ТОВАР в режиме конструктора со встроенным подчиненным отчетом ОТГРУЗКА

Добавление текущей даты и номера страницы

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

Для добавления в отчет текущей даты используется встроенная функцию Date() из категории Дата/время (Date/Time). Она записывается как вычисляемое выражение =Date()в свободный элемент, который может быть создан с помощью кнопки Поле (Text Box). В свойствах этого элемента на вкладке Макет (Format) в строке Формат поля (Format) можно выбрать формат отображения даты. Подпись этого поля можно удалить. В примере дата скопирована в область верхнего колонтитула главного отчета и будет выводиться на каждой странице отчета.

Для добавления номера страницы в области нижнего колонтитула мастер в свободном элементе сформировал выражение ="Страница " & [Page] & " из " & [Pages]. Это выражение может быть записано в свободный элемент отчета с помощью построителя выражений, который вызывается в окне свойств на вкладке Данные (Data) в строке Данные (Control Source). В левой колонке нижней части окна построителя выберем папку Общие выражения (Common Expressions). В средней колонке — тип элемента выражения Страница N из M (Page N of M). В правой колонке отобразится выражение, которое и следует вставить в вычисляемый элемент отчета.

Существуют и другие способы формирования поля даты и номера страницы. Добавить в раздел отчета поле текущей даты и времени можно, выполнив в режиме макета на вкладке ленты Формат (Format) или в режиме конструктора на вкладке ленты Конструктор (Design) команду Дата и время (Date & Time). Установка в диалоговом окне Дата и время (Date and Time) флажков Формат даты (Include Date)

и/или Формат времени (Include Time) позволяет вставить текущую дату и/или текущее время и выбрать нужный вариант форматов (рис. 40).

Рис. 40. Окно выбора формата даты и/или времени

В результате в отчете будет создано поле, в свойствах которого на вкладке Данные (Data) в строке Данные (Control Source) будет записано выражение =Date().

Добавить в отчет поле нумерации страниц можно, выполнив команду Номера страниц (Insert Page Number). В окне диалога Номера страниц (Page Numbers)

выбираются параметры, определяющие формат, расположение и выравнивание номеров страниц (рис. 41). Для печати номера страницы на первой странице устанавливается флажок Отображать номер на первой странице (Show Number on First Page).

Рис. 41. Окно выбора параметров для номеров страниц

Просмотр отчета

Перейдем от конструирования к просмотру отчета, содержащего подчиненный отчет, щелкнув на кнопке Предварительный просмотр (Report View) в строке состояния. Страница составного отчета об отгрузке товаров в режиме предварительного просмотра представлена на рис. 42. В отчете записи об отгрузке товара сгруппированы по месяцам, причем учтено, что сведения об отгрузках могут сохраняться не один год.

Чтобы сведения об отгрузках каждого товара отображались с новой страницы, установите для области данных главного отчета в свойстве Конец страницы (Force New Page) значение До раздела (Before Section).

Рис. 42. Отчет об отгрузке товаров в режиме предварительного просмотра

Вывод отчета на печать можно осуществить нажатием кнопки Печать (Print) на вкладке ленты Предварительный просмотр (Report View).

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

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

достаточно в запросе определить нужный способ объединения записей таблиц ТОВАР и ОТГРУЗКА. Создание аналогичных запросов рассмотрено в учебном пособии ―Access 2007. Создание базы данных и запросов‖.

Вывод значений нарастающим итогом

В отчетах можно вывести значения некоторого поля записи или итогового поля группировки нарастающим итогом. В рассматриваемом примере можно накапливать количество каждого отгруженного товара от месяца к месяцу. Так если в первый месяц количество отгруженного равно 12, во второй — 4, в третьей — 7, используя свойство поля Сумма с накоплением (Running Sum) =Для всего (Over All), можно получить значения суммы с накоплением: для первого месяца 12, для второго 16, для третьего 23. Это свойство размещено на вкладке Данные (Data).

Отбор записей для отчета

В составном отчете с подчиненным использование фильтра часто приводит к ошибкам. Например, при отборе товаров с заданной ценой не отображается подчиненный отчет. Если в отчете необходимо выводить данные, отобранные в соответствии с заданными условиями, определите в условиях отбора в запросе — источнике записей отчета — параметры. Для отчета ТОВАР, созданного на основе одной таблицы, надо в свойствах отчета на вкладке Данные (Data) в строке Источник записей (Record Source) заменить таблицу ТОВАР на запрос. Запрос можно создать с помощью построителя, который вызывается щелчком на соответствующем значке в конце строки. В запрос надо включить все поля таблицы и в строке Условия отбора (Criteria) нужного поля записать имя параметра в квадратных скобках. Например, для отбора сведений об отгрузках товаров с заданным интервалом цен, запишите в поле ЦЕНА в строке Условия отбора

параметр Between [Минимальная цена] And [Максимальная цена].

Чтобы введенные значения параметров отображались в просматриваемом или напечатанном отчете, выполните следующие действия. Откройте отчет в режиме конструктора. Вставьте в отчет вычисляемый элемент управления, нажав на вкладке Конструктор (Design) кнопку Поле (Text Box) и щелкнув место, в которое нужно его поместить. Запишите в это новое поле выражение, содержащее только параметр. Параметр должен записываться точно так же, как он записан в условии отбора запроса. Для приведенного примера =[Минимальная цена]. Аналогичным образом создайте и заполните поле второго параметра.

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

приглашении.

Задание 2

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

основе запроса на выборку. В запросе используйте таблицу ПОСТАВКА_ПЛАН, в которой содержатся сведения обо всех заказах товара и указан срок поставки, таблицу ТОВАР, а также таблицы ДОГОВОР и ПОКУПАТЕЛЬ. В отчете выполните группировку по наименованию товара и сроку поставки. Для накапливания суммарных значений количества и стоимости используйте свойство Сумма с накоплением (Running Sum). Выполните фильтрацию данных отчета по покупателю, товару, месяцу поставки.

Контрольные вопросы

1.Из каких разделов состоит отчет?

2.Назовите основные вкладки ленты, используемые при конструировании отчета?

3.Как просмотреть список доступных в конструкторе отчетов полей и вставить нужное поле в отчет?

4.Какое значение размещается в подписи поля при его перетаскивании в отчет?

5.Возможно ли выполнить в отчете группировку записей, не отображая заголовка и (или) примечания группы?

6.В каком порядке сортируются группы по умолчанию?

7.Чем отличается группировка в запросе от группировки, выполненной в отчете?

8.Где целесообразно размещать значение поля, по которому производится группировка?

9.Где должно размещаться вычисляемое поле с итоговым значением, рассчитанным для группы?

10.Какая функция позволяет включить в отчет дату?

11.Какой элемент по какой кнопке создается для размещения в нем вычисляемого поля?

12.Какая вкладка ленты позволяет выбрать размер страницы отчета, ее поля?

13.Можно ли с помощью перетаскивания включить в отчет подчиненный отчет?

14.В каком режиме должен быть открыт отчет, чтобы в него можно было включить подчиненный?

15.Нужно ли устанавливать связь между главным и подчиненным отчетами, если она определена в схеме данных?

16.В свойствах какого элемента сохраняются поля связи отчетов?

17.Какое условие должно быть выполнено, чтобы при включении подчиненного отчета с помощью кнопки Подчиненная форма/отчет (Subform/Subreport)

заработал мастер?

18.В какой строке свойств подчиненного отчета указывается источник данных?

19.В какой строке свойств отчета указывается источник данных?

20.В каком месте отчета нужно щелкнуть мышью, чтобы сразу открыть его свойства?

21.Какой элемент отчета должен быть выделен, чтобы просмотреть свойства подчиненного отчета?

22.На основе каких объектов строит отчет мастер?

23.Возможен ли выбор полей из различных таблиц и запросов при построении отчета мастером?

24.Сколько уровней группировки может определить мастер в отчете?

25.В каком случае мастер не выведет кнопку Итоги (Summary Options), которая позволяет указать, какие именно итоговые значения нужно вывести в отчете?

26.Какие функции позволяет использовать мастер для подведения итогов?

27.Что будет использовано в качестве источника записей при построении отчета мастером на основе нескольких взаимосвязанных таблиц?

28.Как просмотреть созданную мастером инструкцию SQL в конструкторе запросов?

29.Чем определяется состав полей, доступных в многотабличном отчете, построенном мастером?

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

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

32.За счет чего повторяющиеся значения в таблице запроса могут быть отображены в отчете только один раз?

33.Будет ли при просмотре отчета выводиться диалоговое окно ввода параметра, если отчет создан на запросе с параметром?

34.В какой строке бланка запроса указывается наименование параметра?

35.Как просмотреть список полей, доступных в режиме конструктора отчета?

36.Какие поля содержит этот список, если отчет построен на запросе?

37.Какое значение получит вычисляемое поле, если в него записана встроенная функция управления IIf([СУММА_ПОСТ]>100000;'Особое внимание';''), а в записи поле сумма поставки имеет значение "70000"?

Ответы

1.Заголовка отчета, верхнего колонтитула, заголовка группы, области данных, н примечания группы, нижнего колонтитула и примечания отчета.

2.Инструменты конструктора отчетов | Конструктор, Упорядочить,

Параметры страницы (Report Design Tools|Design, Arrange, Page Setup) и Работа с макетами отчетов | Формат, Упорядочить, Параметры страницы (Report Layout Tools|Format, Arrange, Page Setup).

3.Нажать на панели инструментов конструктора отчетов кнопку Добавить поля (Add Existing Fields). Перетащить нужное поле в раздел отчета.

4.Подпись берется из свойства поля, заданного в таблице.

5.Нет. Только выбор одного из этих разделов приводит к выделению групп с одинаковыми значениями в выбранном поле.

6.По возрастанию.

7.В отчете записи группы не объединяются в одну запись. Один раз выводятся только поля, по которым осуществляется группировка.

8.В заголовке группы.

9.В примечании группы.

10.Встроенная функция Date().

11.Свободный элемент создается по кнопке Поле (Text Box).

12.Параметры страницы (Page Setup).

13.Да.

14.В режиме конструктора.

15.Нет.

16.В свойствах подчиненного отчета на вкладке Данные (Data).

17.Должна быть включена кнопка Использовать мастера (Use Control Wizards).

18.Объект-источник (Source Object).

19.Источник записей (Source Records).

20.На пересечении линеек.

21.Подчиненная форма/отчет (Subform/Subreport)

22.Таблиц и запросов.

23.Да.

24.4.

25.Если в отчете не предусмотрена группировка или не включено ни одно числовое поле.

26.Sum, Avg, Min, Max.

27.Инструкция SQL.

28.Щелчком мыши на кнопке Построитель (Build) в строке Источник записей

(Record Source) свойств отчета.

29.Перечисленными в инструкции SQL полями.

30.Свойством заголовка группы Конец страницы (Force New Page) на вкладке

Макет (Format).

31.Свойство Сумма с накоплением (Running Sum).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]