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

1к 1семестр / INFORMATIKA / Создание отчетов

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

повторяться как надписи столбцов табличной части отчета, так и все общие реквизиты договора.

Если необходимо в отчете сформировать титульную страницу, установите в свойствах заголовка отчета на вкладке Макет (Format) в строке Конец страницы (Force New Page) значение После раздела (After Section). Увеличив размер области заголовка отчета до размера страницы, можно придать титульной странице необходимый вид.

Вычисляемые поля в отчете

Рассчитаем стоимость каждого из товаров, заказанных в договоре. Для этого нужно дополнить перечень полей области данных вычисляемым полем и записать в него выражение =[ЦЕНА]*[КОЛ_ПОСТ]. Вычисляемое поле создадим, щелкнув на кнопке

Поле (Text Box) на вкладке ленты Конструктор (Design) в группе Элементы управления (Controls) и перетащив его в область данных. В созданном таким образом элементе Свободный (Unbound) запишем нужное выражение. Переместим надпись этого поля в заголовок группы, заменив ее значение на Стоимость.

Это выражение будет внесено в свойства элемента. Откроем свойства элемента на вкладке Данные (Data) и увидим выражение в строке Данные (Control Source). На вкладке Макет (Format) в строке Число десятичных знаков (Decimal Places)

выберем точность значения — 2, в строке Формат поля (Format) — денежный формат отображения значения поля.

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

Группировка, сортировка и итоги (Group, Sort, and Total), щелкнув на кнопке Группировка (Group & Sort) на вкладке ленты Конструктор (Design). В строке

Группировка НОМ_ДОГ (Group on НОМ_ДОГ) откроем дополнительные параметры группировки, щелкнув на значке Больше (More), и выберем значение параметра с разделом примечания (with a footer section).

В примечании группы создадим вычисляемый элемент Свободный (Unbound), в который может быть записано выражение для выполнения групповой операции (суммирования, расчета среднего арифметического, подсчета числа записей в группе и др.). Запишем в него выражение =Sum([КОЛ_ПОСТ]*[ЦЕНА]). Также как для вычисляемого поля Стоимость, установим точность значения и формат отображения. Подпись изменим на Общая сумма договора.

Пусть необходимо особо пометить договоры, общая сумма которых составляет более миллиона рублей. Создадим в примечании группы вычисляемое поле и запишем в него выражение =IIf([Поле44]>1000000;'Обратите_внимание';''), где

Поле44 — имя поля со значением общей суммы, созданного выше. Для этого вычисляемого поля выберем новые значения для шрифта, размера шрифта, насыщенности и цвета текста. Надпись поля удалим. Для договора на сумму более миллиона рублей в отчете будет выводиться фраза "Обратите внимание", оформленная в соответствии со сделанным выбором. Для остальных договоров

никакие слова не выводятся, т. к. третий операнд функции IIf задает в качестве значения пустую строку.

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

Рис. 29. Страница отчета с данными договора в режиме предварительного просмотра

Для нумерации строк в текстовой части отчета создайте в области данных вычисляемое поле, в котором запишите выражение =1. Затем для этого поля установите в свойстве Сумма с накоплением (Running Sum) значение Для группы (Over Group). Не следует использовать это свойство для вычисляемых полей примечания.

Если необходимо подсчитать общую сумму по всем договорам, создайте вычисляемое поле с таким же выражением как при подсчете общей суммы по одному договору: =Sum([КОЛ_ПОСТ]*[ЦЕНА]), но в области примечания или заголовка отчета. Например, создайте такое поле с надписью Договоров заключено на сумму на титульном листе отчета.

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

Определение параметров в отчете

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

Откроем отчет Договоры фирмы в режиме конструктора. В свойствах отчета на вкладке Данные (Data) в конце строки Источник записей (Record Source) щелкнем на кнопке построителя. В окне построителя запросов перейдем к полю с номером договора — НОМ_ДОГ. В строке Условие отбора (Criteria) определим параметр,

записав [Номер договора].

Теперь при просмотре отчета будет выводиться диалоговое окно ввода значения параметра (рис. 30).

Рис. 30. Диалоговое окно ввода значения параметра отчета

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

Анализ данных отчета средствами фильтрации

В отчете с параметром вы получили сведения лишь об одном договоре и не можете всесторонне в интерактивном режиме проанализировать данные о договорах фирмы. Удалите параметр из запроса — источника записей отчета. Откройте отчет в режиме Представление отчета (Report View). Пользуйтесь для переключения режимов строкой состояния.

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

Установите курсор на поле с номером договора. Щелкните на кнопке Фильтр (Filter). В открывшемся окне откройте список Текстовые фильтры (Text Filters). Для поля доступны эти фильтры, потому что поле имеет текстовый тип данных. В списке щелкните Содержит (Contains), откроется настраиваемый фильтр (рис. 31), в котором укажите нужный номер договора. Для открытия списка Текстовые фильтры можно также воспользоваться контекстным меню поля. В отчете отобразится выбранный договор.

Рис. 31. Диалоговое окно задания условия отбора для фильтра

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

Чтобы отобрать договоры за заданный период, в контекстном меню поля с датой заключения договора откройте Фильтр дат (Date Filters).

О брат ит е вн има н ие

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

Для отбора договоров, в которых заказан заданный товар, используйте текстовый фильтр по поля с наименованием товара. Для отбора заданного товара, заказанного в заданном месяце, не снимая фильтра с наименования товара, выполните фильтрацию по полю СРОК_ПОСТ (срок поставки). Числовой фильтр позволит отобрать данные в любом заданном интервале.

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

Задание 1

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

Составные отчеты

Пусть необходимо получить отчет об отгрузках товаров за весь учетный период. Отчет должен содержать все данные о товаре и список всех отгрузок товара сгруппированных по месяцам (рис. 32).

ОТГРУЗКА ТОВАРА

Код тов ара

 

 

 

 

 

 

Наименов ание тов ара

 

 

 

 

 

Цена

 

 

 

 

Фото тов ара

 

 

 

 

 

 

 

Единица измерения

 

 

 

 

 

 

 

Став ка НДС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код

Код

Количеств о

Д ата

 

 

склада

тов ара

 

 

 

Месяц

Число отгрузок:

 

Количество отгруженного:

 

 

 

 

 

 

 

 

 

 

 

 

ИТОГО ОТГРУЖЕНО

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

Для создания отчета, соответствующего заданию, потребуется использовать данные из следующих взаимосвязанных таблиц:

ТОВАР, поля:

код товара — КОД_ТОВ;

наименование товара — НАИМ_ТОВ;

цена — ЦЕНА;

единица измерения — ЕИ;

ставка НДС — СТАВКА_НДС;

фотография товара — ФОТО;

ОТГРУЗКА, поля:

код склада — КОД_СК;

код товара — КОД_ТОВ;

количество отгруженного товара — КОЛ_ОТГР;

НАКЛАДНАЯ, поле:

дата отгрузки — ДАТА_ОТГР.

Связи перечисленных таблиц определены в подсхеме данных, представленной на рис. 33.

Рис. 33. Подсхема данных отчета об отгрузке товаров

Очевидно, что главную часть отчета должны составить данные из таблицы ТОВАР, табличную часть отчета — данные из подчиненной таблицы ОТГРУЗКА. Причем записи таблицы ОТГРУЗКА должны быть дополнены датой, которая хранится в главной по отношению к ней таблице НАКЛАДНАЯ.

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

Создание главного отчета

Главная часть составного отчета должна содержать все сведения о товаре, которые хранятся в таблице базы данных ТОВАР, и может быть создана как обычный однотабличный отчет о товарах фирмы. Для автоматического создания отчета, включающего все поля одной таблицы, достаточно выбрать в области переходов таблицу ТОВАР и выполнить команду Отчет (Report) на вкладке ленты Создание (Create). Таблица ТОВАР будет указана в качестве источника данных этого отчета.

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

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

Можно создать отчет и с помощью команды Пустой отчет (Blank Report), которая открывает пустой макет. Открыв область Список полей (Field List) и перетащив нужные поля таблицы в макет отчета, получим такой же отчет, как и по команде

Отчет (Report). Область Список полей открывается командой Добавить поля (Add Existing Fields) на вкладке ленты Работа с макетами отчета | Формат (Report Layout Tools|Format) в группе Элементы управления (Controls).

Поскольку в главной части отчета должны отображаться данные только одной записи, преобразуем его макет в столбик. Для этого выделим табличный макет, щелкнув в его левом верхнем углу, и выполним команду В столбик (Stacked) на вкладке ленты Работа с макетами отчета | Упорядочить (Report Layout Tools|Arrange) в группе Макет элемента управления (Control Layout).

Добавим поле объекта OLE ФОТО в отчет, перетащив его из области Список полей (Field List). Для того чтобы сделать отчет более компактным, переместим поле с фотографией товара в верхнюю правую часть отчета, освободив место для подчиненного отчета. Перемещать отдельный элемент управления за пределы макета, а также удалять из отчета, можно только после его удаления из макета. Для удаления элемента управления из макета выполним соответствующую команду на вкладке ленты Упорядочить (Arrange).

Удалим подпись поля с фотографией. Для этого сначала удалим элемент (выделив и поле и подпись) из макета, затем выделим подпись и нажмем клавишу <Delete>.

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

При создании отчета в его примечании автоматически сформировалось вычисляемое поле с расчетом суммарного значения для единственного числового поля в таблице ЦЕНА. Учитывая бессмысленность этого вычисления, удалим его.

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

Рис. 34. Отчет о товарах фирмы в режиме конструктора

Создание подчиненного отчета

Табличная часть отчета должна содержать все сведения об отгрузках, которые хранятся в таблицах ОТГРУЗКА и НАКЛАДНАЯ. Создадим на основе этих таблиц отчет, который будет включен в главную часть отчета в качестве подчиненного.

Создадим по таблице ОТГРУЗКА однотабличный отчет с помощью команды Отчет (Report), который откроется в режиме макета. Открыв область Список полей (Field List), добавим в отчет нужные поля из таблицы НАКЛАДНАЯ. Источник записей отчета автоматически дополнится таблицей НАКЛАДНАЯ и ее полями.

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

Для задания интервала между элементами управления и линиями сетки макета выделите макет отчета, щелкнув в его левом верхнем углу, и выберите нужный интервал из списка категории Внутренние поля (Control Padding), размещенной на вкладке ленты Упорядочить (Arrange).

Сортировка и группировка записей отчета

Для группировки данных отчета по дате отгрузки выполним команду Группировка (Group & Sort) на вкладке ленты Формат (Format). В открывшейся области

Группировка, сортировка и итоги (Group, Sort, and Total) щелкнем на кнопке

Добавить группировку (Add a group). Выберем для предлагаемого уровня группировки поле ДАТА_ОТГР. Откроем список, щелкнув на параметре по кварталам (by quarter), и выберем по месяцам (by month) (рис. 35). Для закрытия списка щелкните любое место за его пределами.

Рис. 35. Выбор для поля с датой группировки по месяцам

Для добавления в отчет итоговых сумм по каждому месяцу и общей суммы щелкните на кнопке Больше (More), в области параметров откройте список значений параметра с итогами: СУММА_ОТГР (with СУММА_ОТГР totaled). В поле списка Итог на (Total On) выберите поле СУММА_ОТГР, по которому нужно рассчитать итоговые значения. Отметьте флажок Показать общий итог (Show Grand Total) и определите место отображения итоговых значений по каждому месяцу выбором флажка Показать в примечании группы (Show in group footer) (рис. 36).

Поскольку нам нужно подсчитать итоги и по количеству отгруженного, в раскрывающемся списке Итог на (Total On) выберем поле КОЛ_ОТГР и отметим те же флажки.

З а м е ч а н и е

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

Рис. 36. Группировка с итогами: по двум полям КОЛ_ОТГР и СУММА_ОТГР

Удалим заголовок поля группировки. Для этого щелкнем в строке группировки на выделенном синим цветом тексте Дата отгрузки за словами с заголовком (with title) (рис. 36). В окне Область ввода (Zoom) удалим заголовок и нажмем кнопку OK.

В качестве значения параметра порядок сортировки по умолчанию выбирается устраивающее нас значение от старых к новым (from oldest to newest).

Отчет в режиме макета после внесения перечисленных изменений представлен на рис. 37.

Соседние файлы в папке INFORMATIKA