Создание итогового отчета ПродажиОтчет
Задание 8. Разработка отчетов
Создание отчета Заказы
Отчет Заказы должен содержать данные конкретного заказа и печататься из формы Заказы при нажатии соответствующей кнопки. (рис. 5)
Как видно, отчет Заказыфактически повторяет форму Заказы, поэтому и содержание действий по его созданию во многом сходно с тем, что мы проделали, создавая форму Заказы. Здесь нам также потребуется создать отчет и подчиненный отчет, определив для них запросы, вставить подотчет в отчет.
Последовательно выполните следующие действия.
1. Создайте запрос для отчета Заказы с именем ЗаказыДляОтчетаЗапрос на основе таблиц Заказы, Клиенты, Менеджеры. Включите в него поля КодЗаказа, ДатаЗаказа, ОбщаяСумма – из таблицы Заказы, поле ФИО – из таблицы Менеджеры и поля ФИО и Телефон – из таблицы Клиенты.
2. Создайте отчет на базе запроса ЗаказыДляОтчетаЗапрос (рис. 1):
a. Перейдите на вкладку «Создание»
b. Нажмите кнопку «Мастер отчетов»
c. В появившемся окне в качестве источника данных определите «ЗаказыДляОтчетаЗапрос», перенесите в отчет все поля
d. Вид макета для отчета выберите «в столбец»
e. Дайте имя отчету «ЗаказыОтчет»
f. В конструкторе приведите отчет к виду представленному на рисунке 1
Рис.1. Отчет Заказы в режиме Конструктора
Создайте подчиненный отчет на базе имеющегося запроса ЗаказаноТовараЗапрос(он уже создан для формы ЗаказаноТовараПодформа) рис. 2 Присвойте подчиненному отчету имя ЗаказаноТовараПодотчет.
Рис.2.
3. Внедрите подотчет в область данных отчета Заказы.В режиме Конструктора включите Мастерна Панели элементов,выберите элемент Подчиненная форма/отчет,растяните его до нужных размеров в области данных (Рис.3). В первом окне Мастера выберите в качестве источника данных для подотчета из списка отчетов ЗаказаноТовараПодотчет.Следующее окно уточняет имена основных и подчиненных полей: выберите Выбор из списка,строку «ЗаказаноТовараЗапрос» для каждой записи «ЗаказыДляОтчетаЗапрос».Вследующем окне запрашивается надпись к подчиненному отчету: введите Состав заказаи нажмите Готово.
Рис.3
Высоту подотчета сделайте минимальной: 0,3.-0,4 см. Свойству Автоматический размер(закладка Макет)подотчета присвоено значение Да. То есть его размер при необходимости будет увеличиваться, чтобы вместить все данные, содержащиеся в подотчете.
При просмотре отчета можно увидеть, что в перечне товаров присутствуют записи из всех заказов. Условие, отбирающее записи только текущего заказа, присутствует в макросе ПечатьЗаказа.
В форме Заказыв разделе Примечания создайте кнопку с надписью Печать заказа. С событием Нажатие кнопки свяжите макрос ПечатьЗаказа рис. 4
Условие отбора [КодЗаказа]=[Forms]![Заказы]![КодЗаказа]
предписывает распечатать текущий заказ.
Рис4
Для того, чтобы иметь возможность просматривать на экране отчет перед выводом на принтер, в макросе установлен режим Просмотр, а не Печать.
При вызове отчета из формы Заказы(кнопка Печать заказа):в отчет попадут строки только текущего заказа – рис. 5.
Рис.5. Отчет Заказы в режиме предварительного просмотра на экране
Создание итогового отчета ПродажиОтчет
В отчете ПродажиОтчет должен выводиться перечень всех заказов в указанном диапазоне дат с итоговой суммой (рис. 9).
Создайте запрос с параметрами на базе таблиц Заказыи Клиенты рис. 6.
В условие отбора поля ДатаЗаказа впишите:
Between [Начальная дата] And [Конечная дата].
Такой запрос отберет заказы в этом диапазоне дат. Сохраните запрос с именем ДляОтчетаПродажии проверьте его работу.
Рис.6. Отбор полей для отчета Продажи.
Создайте отчет ПродажиОтчетна базе запроса ДляОтчетаПродажи рис. 7.
Рис. 7. Отчет Продажи в режиме Конструктора.
Сделаем дальнейшие усовершенствования отчета (рис.8)
Значения полей [Начальная дата] и [Конечная дата] выбираются в отчет не из таблиц базы данных, а передаются из запроса при вводе параметров. Поэтому создайте свободные поля вручную с использованием элемента ПолеПанели элементов. В свойство Данные(закладка Данные)этих полей впишите соответственно имена параметров: Начальная датаи Конечная дата.
Рис. 8. Доработка отчета Продажи
В отчете поле ОбщаяСумма вставлено 2 раза. Крайнее (правое) из этих полей будет использоваться, поэтому измените свойства этого правого поля ОбщаяСумма так: для накопления итоговой суммы
а) в свойство Имя (закладка Другие)введите имя, например, Итого;
б) в свойстве Сумма с накоплением (закладка Данные)значение Отсутствуетзамените на значение Для всего. Так как в этом поле будет накапливаться сумма продаж;
в) уменьшите ширину поля до 5... 10 мм и сделайте поле невидимым: свойство Вывод на экран Нет.
Для вывода накопленной суммы создадим свободное поле в области примечаний отчета. В свойство Данные этогополязапишите =[Итого]. Таким образом, этому полю присвоится значение поля Итого, т.е. значение накопленной суммы. Надпись измените на Итого на сумму.
Сохраните отчет и просмотрите его (рис. 9).
Рис.9. Отчет Продажи в режиме просмотра.