Отображение более подробных отчетов с помощью связей

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


Макрос, который нужно создать, почти идентичен тому, который мы рассматривали в предыдущем примере.

Как правило, специалисты Access применяют этот метод для запуска основного отчета и предоставляют возможность пользователям щелчками кнопки мыши проложить путь к более подробному отчету, который акцентирует внимание на части данных (рис. 14.23 и 14.24).

Рис. 14.23.Первый отчет (TotalsByCustomer)(общая стоимость заказов клиента) отображает всех клиентов и общую стоимость заказов для каждого из них. Щелкните кнопкой мыши одного из клиентов, и программа Access запустит вывод более подробного отчета, показанного на рис. 14.24

 

 

Примечание

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

 

 

Для создания такого перехода необходимо начать с создания поля ввода, которое выгля­дит как гиперссылка. (Настоящий элемент управления Гиперссылкаиспользовать нельзя, поскольку он отображает только фиксированный, неменяющийся текст. Вместо этого нужен способ отображения содержимого поля как ссылки — в данном примере код клиента.) Затем можно создать макрос, который запускается при щелчке кнопкой мыши поля для перехода к новому отчету. Задача этого макроса — открыть подробный отчет, который вам нужен, и затем применить фильтр для отображения только связанных записей.

Отформатировать поле ввода легко. Можно выделить любой элемент управления и за­тем изменить его цвет, шрифт и т. д. с помощью команд на ленте. Но вам даже не нужно вы­полнять эту работу. У каждого поля есть странное свойство, названное Гиперссылка(Is


 

 

Hyperlink), — задайте для него значение Да, и элемент управления Полепревратится в под­черкнутый текст синего цвета, что вам и нужно

Рис. 14.24. Представленный отчет CustomerPurchasesотражает привычки выбранного клиента тратить деньги. Выражение построения текстовой строки (="Products Purchased By " & [FirstName] & " " & [LastName]) помещает имя и фамилию текущего клиента в заголовок формы

После того как вы справились с описанной странностью, самое время добавить необхо­димый макрос. Можно предпринять следующие действия с БД Boutique Fudge (включена в загружаемое из Интернета содержимое примеров для данной главы) для вставки ссылки, открывающей отчет CustomerPurchases(покупки клиента) в отчете TotalsByCustomer(общая стоимость заказов клиента).

1. Откройте отчет, который хотите использовать, в режиме Конструктора.
В данном примере все начинается с формы Totals By Customer.

2. Если на экране не видно Окна свойств,выберите на ленте Инструменты конструктора отчетов | Конструктор → Сервис → Страница свойств(Report Design Tools | Design Tools Property Sheet).

3. Решите, какое поле хотите использовать для создания ссылки, и выделите его.

Обычно применяется уникальное значение кода (ID), связывающее две таблицы друг с другом. В данном примере используется поле ID, хранящее идентификатор клиента. Ес­ли вы его еще не отформатировали, сделайте это сейчас с помощью свойства Гиперссыл­катак, чтобы поле выглядело как ссылка.

Теперь следует создать и присоединить макрос.

4. В Окне свойствперейдите на вкладку Событияи щелкните кнопкой мыши поле Нажа­тие кнопки(OnClick). Щелкните мышью кнопку с многоточием (...)


На экране появляется диалоговое окно Построитель(Choose Builder) и запрашивает спо­соб создания кода, который будет выполняться, когда ссылку щелкают кнопкой мыши.

5. Выберите Макросы(Macro Builder) и затем щелкните мышью кнопку ОК.
На экране появится окно редактирования макроса.

6. В первой строке, в столбце Макрокомандащелкните кнопкой мыши направленную
вниз стрелку. Выберите команду ОткрытьОтчет.

Вы также можете выбрать макрокоманду ОткрытьФормудля открытия формы (для редактирования записей), когда ссылку щелкают кнопкой мыши.

7. В разделе Аргументы макрокомандыизмените свойство Имяотчета, задайте имя отчета, который хотите использовать.

В данном примере это CustomerPurchases.

8. Теперь необходимо задать свойство Условие отбора(Where Condition) для применения фильтра. Он должен отбирать клиентов, соответствующих значению ID в текущей записи.

Нужное вам выражение очень похоже на то, которое использовалось в примере с фор­мами. Необходимо выбрать верное поле в отчете, который открыли (поле CustomerlDв отчете CustomerPurchases),и затем сравнить его с полем, которое вы щелкнули кноп­кой мыши (поле ID в отчете TotalsByCustomers).Далее приведено нужное выражение:

[CustomerlD]=[Reports]![TotalsByCustomer]![ID]

Как и в примере с формами, это выражение использует замысловатый синтаксис с вос­клицательными знаками, чтобы сообщить программе Access о том, как найти отчет TotalsByCustomers.

9. Под макрокомандой ОткрытьОтчетвведите Обновление.

Как и в примере с формами, следует обновить отчет так, чтобы отбор сработал, даже ес­ли отчет уже открыт.

10. Закройте окно макроса и ответьте Да на предложение сохранить изменения.
Вы вернетесь в окно Конструктораотчетов.

11. Перейдите в режим Представление отчетаи опробуйте ссылку.

Теперь можно щелкнуть ссылку кнопкой мыши и углубиться в более подробный отчет.

Вы можете проверить этот пример самостоятельно, воспользовавшись тренировочными БД для данной главы.


Часть V

Программирование в Access