Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание_Access_Рудянова(усложненное)_.doc
Скачиваний:
69
Добавлен:
25.11.2018
Размер:
2 Мб
Скачать
☆

Фильтрация данных с помощью макрокоманд

Для отбора записей в формах, отчетах, таблицах используется макрокоманда ПрименитьФильтр (AppleFilter).

Теперь можно приступить к созданию макросов для фильтрации данных. Для этого необходимо проделать следующее:

  1. Создайте новый макрос с именем УстановитьФильтр и макрокомандой Применить фильтр. В качестве значения аргумента макрокоманды Условие отбора задайте следующую строку:

Forms![Склад]![ТипПС] Like [Товары]![КодТипа]

  1. Для кнопки Применить фильтр с событием Нажатие кнопки свяжите макрос УстановитьФильтр.

  2. Создайте в том же макросе Фильтры еще один макрос ОтменитьФильтр. В нем макрокоманда ПоказатьВсеЗаписи не имеет аргументов. Вторая макрокоманда ЗадатьЗначение очищает поле со списком ТипПС после отмены фильтра, т.е. присваивает этому полю значение Null.

  1. Для кнопки Показать все записи с событием Нажатие кнопки свяжите созданный макрос ОтменитьФильтр.

  2. Проверьте работу новых кнопок.

Задание 9. Разработка отчетов

  1. Создание отчета Заказы

Отчет Заказы должен содержать данные конкретного заказа (рис. 5) и печататься из формы Заказы при нажатии соответствующей кнопки.

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

Для создания отчета необходимо выполнить следующие действия.

  1. Создайте запрос для отчета Заказы с именем ЗаказыДляОтчетаЗапрос на основе таблиц Заказы, Клиенты, Менеджеры. Включите в него поля КодЗаказа, ДатаЗаказа, ОбщаяСумма – из таблицы Заказы, поле ФИОМенеджера – из таблицы Менеджеры и поля ФИОКлиента, ГородКлиента, Улица, ТелефонКлиента – из таблицы Клиенты.

  2. Создайте отчет на базе запроса ЗаказыДляОтчетаЗапрос как показано на рис.1. Лучше это сделать с помощью конструктора, т.е. выбрать в разделе Отчеты кнопку Создать, Конструктором, а в качестве источника данных для отчета выбрать созданный запрос.

Рис.1. Отчет Заказы в режиме Конструктора

  1. Создайте новый отчет на базе имеющегося запроса ЗаказаноТовараЗапрос (он уже создан для формы ЗаказаноТовараПодформа) ‑ рис.2., который в дальнейшем будет подчиненным. Присвойте этому отчету имя ЗаказаноТовараПодотчет.

Рис.2. Отчет ЗаказаноТовараПодотчет в режиме Конструктора

  1. Внедрите подотчет в область данных отчета Заказы. Для этого в режиме Конструктора включите Мастер на Панели элементов (если он отключен), выберите элемент Подчиненная форма/отчет, растяните его до нужных размеров в Области Данных (рис.3). В первом окне Мастера выберите в качестве источника данных для подотчета из списка отчетов ЗаказаноТовараПодотчет. Следующее окно уточняет имена основных и подчиненных полей: выберите Выбор из списка, строку «ЗаказаноТовараЗапрос для каждой записи ЗаказыДляОтчетаЗапрос» (т.е. оставьте параметры, предлагаемые по умолчанию). В следующем окне, где запрашивается надпись к подчиненному отчету, введите Состав заказа и нажмите Готово.

Рис.3. Отчет Заказы в режиме Конструктора с добавленным подотчетом

  1. Высоту подотчета сделайте минимальной: 0,3-0,4см. Свойству Расширение (вкладка Макет) подотчета присвойте значение Да. Т.е. его размер при необходимости будет увеличиваться, чтобы вместить все данные, содержащиеся в подотчете.

При просмотре отчета можно увидеть, что в перечне товаров присутствуют записи из всех заказов. Условие, отбирающее записи только текущего заказа, необходимо отдельно создать с помощью макроса ПечатьЗаказа. Для этого проделайте следующее:

    1. В форме Заказы в разделе Примечания создайте кнопку с надписью Печать заказа.

    2. Откройте макрос Заказы в режиме Конструктора и создайте в нем еще один макрос с именем ПечатьЗаказа (рис.4). В качестве макрокоманды выберите ОткрытьОтчет и задайте параметры, приведенные на рисунке. Условие отбора установите в виде: [КодЗаказа]=[Forms]![Заказы]![КодЗаказа] с помощью Построителя выражений. Это условие предписывает отобразить только текущий заказ.

Рис.4. Макрос ПечатьЗаказа в режиме Конструктора

    1. С событием Нажатие кнопки в окне свойств кнопки Печать заказа, созданной на форме Заказы, свяжите макрос ПечатьЗаказа.

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

При вызове отчета из формы Заказы (кнопка Печать заказа): в отчет попадут строки только текущего заказа – рис. 5.

Рис.5. Отчет Заказы в режиме предварительного просмотра на экране