Группировка и подсчет итогов в отчете Создайте отчет, который выводит данные о продажах за каждый месяц. Данный отчет будет строиться на данных из запроса Промежуточная сумма заказа и таблиц Заказы и Клиенты.
В запросе Промежуточная сумма заказа присутствует следующее выражение для нахождения суммарной стоимости заказов товаров за каждый день: Sum(CCur([Цена]*[Количество]*(1-[Скидка])/100)*100)
Затем запрос группирует записи при помощи этого выражения. Выражение указывает Access: перемножить значение полей Количество, Цена и Скидка для каждой записи в запросе и затем просуммировать полученные произведения для каждого заказа. Бланк запроса показан на рисунке 155.
В отчете выражение поля Промежуточная сумма покажет сумму для каждого заказа клиента в течение месяца.
Рисунок 155 – Бланк запроса Промежуточная сумма заказа
Теперь необходимо создать еще один запрос, в котором присутствовали поля ДатаЗаказа из таблицы Заказы, Название из таблицы Клиенты и ПромежуточнаяСумма из запроса Промежуточная сумма заказа. Бланк запроса Отчет по продажам показан на рисунке 156.
Рисунок 156 – Бланк запроса – источник для отчета
Начнем создавать отчет. Нажмите на вкладке Отчеты кнопку . На первом шаге мастера отчетов нажмите стрелку вниз в поле ТаблицыЗапросы и выберите запрос Отчет по продажам. Нажмите кнопку с изображением двойной стрелки вправо, чтобы переместить все три поля в список Выбранные поля; затем нажмите кнопку .
На втором шаге следует сгруппировать записи по дате заказа, чтобы их можно было разделить на группы по месяцам. Для этого в левой части дважды щелкните на надписи ДатаРазмещения. В правой части окна макет изменится при выделении «ДатаРазмещения – по месяцам» в качестве уровня группировки (рис. 157). Нажмите .
Рисунок 157 – Добавление уровней группировки
На третьем шаге работы мастера появится окно, на котором необходимо установить параметры сортировки как показано на рисунке 158.
Рисунок 158 – Задание порядка сортировки в отчете
Для подведения итогов по группам нажмите кнопку и в появив-шемся диалогом окне устано-вите флажок Sum и нажмите кнопку – вы верне-тесь в окно Мастера отчетов, в котором нажмите кнопку .
В окне четвертого шага работы мастера оставьте установленным переключатели Ступенчатый группы Макет и книжная группы Ориентация; нажмите кнопку .
В окне пятого шага работы мастера выберите стиль Строгий; нажмите кнопку .
В окне шестого шага работы мастера введите имя отчета Отчет по продажам и нажмите кнопку .
Ваш отчет должен выглядеть так, как показано на рисунке 159.
Рисунок 159 – Отчет по продажам, сгруппированный по датам
Следует сказать несколько слов о задании уровней группировки. Для задания интервала группировки на втором шаге мастера необходимо нажать кнопку и выбрать нужное значение в поле Интервалы группировок. Access позволяет группировать записи по текстовым, числовым или денежным и по значениям даты или времени (рис. 160).
Рисунок 160 – Задание уровней группировки
Подотчет в отчете
По аналогии с составными формами, содержащими подчиненные формы, можно предположить, что составные отчеты тоже используются для печати данных таблиц, связанных отношением «один-ко-многим». Однако это не совсем так. Основное достоинство подчиненных отчетов в том, что с их помощью можно разместить на странице отчета самую разнообразную информацию в удобной форме, чего невозможно добиться, если прямо создать сложный запрос, включив в него данные многих таблиц. Например, главный отчет может представлять собой контейнер, в который включаются один или несколько подчиненных отчетов из несвязанных таблиц. В этом случае главный отчет может содержать только надписи и вычисляемые элементы, а не базироваться на какой-либо таблице.
Иногда итоговые данные в документе требуется представить в виде отдельной таблицы наряду с детальными данными. В этом случае группировки записей с итоговыми данными недостаточно, нужно создать подчиненный отчет, который выведет итоговые данные в требуемом виде.
Только при использовании подчиненных отчетов можно создать группы, которые содержат две и более группы данных, т.е. отчеты Access допускают два уровня вложенности подчиненных отчетов.
Создайте составной отчет на базе таблиц Поставщики и Товары и отобразите в нем товары, поставки которых ожидаются в скором времени. Здесь Главный отчет базируется на таблице Поставщики, а для подчиненного необходимо создать запрос. Бланк этого запроса в режиме конструктора представлен на рисунке 161.
Рисунок 161 – Бланк запроса-источника для подчиненного отчета
Создайте запрос самостоятельно и назовите его Поставки.
Создайте главный отчет с помощью мастера, выбрав для отчета из таблицы Поставщики поля Название, ОбращатьсяК и Телефон. Задайте порядок сортировки по полю Название, макет отчета – Табличный, стиль – Деловой. На последнем шаге задайте имя отчета Поставщики и установите переключатель Изменить макет отчета. Отчет откроется в режиме конструктора (рис. 162).
Рисунок 162 – Главный отчет в режиме конструктора
Удалите все элементы управления из раздела Верхний колонтитул и уменьшите его высоту до 0.
Выделите все элементы в разделе Область данных, увеличьте для них размер шрифта до 12 и сделайте его полужирным. Подгоните высоту элементов под новый размер шрифта двойным щелчком на нижней границе элементов. Переместите нижнюю границу области данных так, чтобы в ней можно было поместить подчиненный отчет (рис. 163).
Рисунок 163 – Добавление подчиненного отчета в область данных
Для создания подчиненного отчета выберите на панели элементов управления Подчиненная форма/Отчет и, поместив указатель в раздел Область данных ниже полей, содержащих данные о поставщике, очертите им прямоугольную область для подчиненного запроса (кнопка мастера элементов должна быть нажата).
В первом диалоговом окне мастера выберите переключатель Использовать имеющиеся таблицы и запросы (рис. 164)
Рисунок 164 – Задание источника для подчиненного отчета
Нажмите кнопку . Во втором диалогом окне нужно определить, какие поля требуется включить в подчиненный отчет. При этом поля в общем случае можно выбирать из нескольких таблиц и запросов. В данном случае нужно в поле Таблицы/Запросы выбрать в списке запрос Поставки, а затем включить в отчет все поля запроса, поместив поле КодПоставщика последним (рис. 165). Нажмите кнопку .
Рисунок 165 – Выбор полей для подчиненного отчета
В следующем окне мастера нужно определить поля связи между главным и подчиненным отчетами. Поскольку связи у нас определены по всем правилам, мастер самостоятельно определяет эти поля, поэтому нужно просто принять предложенное по умолчанию значение в списке (рис. 166) и перейти к следующему шагу.
Рисунок 166 – Определение полей связи между отчетами
На последнем шаге указывается имя отчета «подчиненный отчет Поставки» и нажимается кнопка . Поле подчиненный отчет создается в главном отчете.
Выделите присоединенную к этому полю надпись и удалите ее. Выделите само поле подчиненный отчет и найдите в окне Свойства свойство Тип границы и установите значение для этого свойства Сплошная.
Удалите из подчиненного отчета поле КодПоставщика и заголовок соответствующего столбца. Протестируйте отчет и убедитесь, что он работает правильно (рис. 167).
Рисунок 167 – Отчет по поставкам
|