Для отбора записей в формах, отчетах, таблицах используется макрокоманда ПрименитьФильтр ( AppleFilter ).
Введите поле КодТипа (длинное целое). Добавьте поле Кол в таблицу Товары – количество товара на складе. Названия типов введите в таблице ТипТовара.
Рис.1 Создание новой таблицы ТипТовара
Создайте запрос с именем СкладЗапрос на основе таблиц Товары и ТипТовара с полями КодТовара, Название, Цена, Кол из таблицы Товары и поля Тип из таблицы ТипТовара. На основе созданного запроса создайте форму Склад.
Рис. 2 Окончательный вид формы Склад
Поле со списком КодТипа основано на таблице ТипТовара. Оно остается свободным. Переименуйте его: дайте ему имя ТипПС.
Рис. 3 Форма Склад вид в режиме конструктора
Для кнопки Применить фильтр с событием Нажатие кнопки свяжите макрос УстановитьФильтр с одной макрокомандой Применить фильтр. Значение аргумента макрокоманды Условие отбора задать следующим:
Forms![Склад]![ТипПС] Like [Товары]![КодТипа]
Для кнопки Показать все записи создайте макрос ОтменитьФильтр:
Рис. 4 Макрос для фильтрации данных
Макрокоманда ПоказатьВсеЗаписи не имеет аргументов. Вторая макрокоманда очищает поле со списком ТипПС после отмены фильтра.
Практическая работа № 8
Разработка отчетов
Создание отчета Заказы
Отчет Заказы должен содержать данные конкретного заказа и печататься из формы Заказы при нажатии соответствующей кнопки. (рис. 5)
Как видно, отчет Заказы фактически повторяет форму Заказы, поэтому и содержание действий по его созданию во многом сходно с тем, что мы проделали, создавая форму Заказы. Здесь нам также потребуется создать отчет и подчиненный отчет, определив для них запросы, вставить подотчет в отчет.
Последовательно выполните следующие действия.
1. Создайте запрос для отчета Заказы с именем ЗаказыДляОтчетаЗапрос на основе таблиц Заказы, Клиенты, Менеджеры. Включите в него поля КодЗаказа, ДатаЗаказа, ОбщаяСумма – из таблицы Заказы, поле ФИОМенеджера – из таблицы Менеджеры и поля ФИОКлиента, ГородКлиента, Улица, ТелефонКлиента – из таблицы Клиенты.
2. Создайте отчет на базе запроса ЗаказыДляОтчетаЗапрос ‑ рис. 1.
Рис.1. Отчет Заказы в режиме Конструктора
Создайте подчиненный отчет на базе имеющегося запроса ЗаказаноТовараЗапрос (он уже создан для формы ЗаказаноТовараПодформа) ‑ рис. 2 Присвойте подчиненному отчету имя ЗаказаноТовараПодотчет.
Рис.2. ЗаказаноТовараПодотчет в режиме конструктора
3. Внедрите подотчет в область данных отчета Заказы. В режиме Конструктора включите Мастер на Панели элементов, выберите элемент Подчиненная форма/отчет, растяните его до нужных размеров в области данных (Рис.3). В первом окне Мастера выберите в качестве источника данных для подотчета из списка отчетов ЗаказаноТовараПодотчет. Следующее окно уточняет имена основных и подчиненных полей: выберите Выбор из списка, строку «ЗаказаноТовараЗапрос для каждой записи ЗаказыДляОтчетаЗапрос». В следующем окне запрашивается надпись к подчиненному отчету: введите Состав заказа и нажмите Готово.
Рис.3 Внедрение подчиненного отчета
Высоту подотчета сделайте минимальной: 0,3.-0,4 см. Свойству Расширение (закладка Макет) подотчета присвоено значение Да. То есть его размер при необходимости будет увеличиваться, чтобы вместить все данные, содержащиеся в подотчете.
При просмотре отчета можно увидеть, что в перечне товаров присутствуют записи из всех заказов. Условие, отбирающее записи только текущего заказа, присутствует в макросе ПечатьЗаказа.
В форме Заказы в разделе Примечания создайте кнопку с надписью Печать заказа. С событием Нажатие кнопки свяжите макрос ПечатьЗаказа ‑ рис. 4
Условие отбора [КодЗаказа]=[Forms]![Заказы]![КодЗаказа]
предписывает распечатать текущий заказ.
Рис. 4 Разработка макроса для открытия отчета
Для того, чтобы иметь возможность просматривать на экране отчет перед выводом на принтер, в макросе установлен режим Просмотр, а не Печать.
При вызове отчета из формы Заказы (кнопка Печать заказа): в отчет попадут строки только текущего заказа – рис. 5.
Рис.5. Отчет Заказы в режиме предварительного просмотра на экране
Дата: 2019-07-24, просмотров: 265.