Пример 4. Отчет с оглавлением, навигацией и структурой
В этом примере рассмотрим построение отчета, который имеет следующие особенности:
- на первой странице отчета располагается оглавление, или "Содержание", на элементы которого можно нажимать для перехода к нужной странице;
- сбоку в окне просмотра отображается структура отчета, на элементы которой также можно нажимать.
Отчет будет использовать данные из таблиц Categories и Products. В содержании будет напечатан список категорий, в основной части отчета - список категорий и продуктов. Шаблон отчета будет состоять из двух страниц: на первой странице будем печатать содержание, на второй - основную часть отчета.
Сначала займемся оглавлением. Создайте новый отчет и добавьте в него источники данных Categories и Products. Подключите бэнд "Данные" к таблице Categories и расположите объекты следующим образом:
Чтобы сделать элементы содержания интерактивными, настройте их свойство "Гиперссылка":
В качестве закладки укажите имя категории. Сама закладка (свойство Bookmark
) будет определена нами позже у объектов на второй странице отчета.
Для того чтобы напечатать в содержании номер страницы, на которую мы ссылаемся с помощью закладки, нужно сделать следующее:
- включить у отчета двойной проход (это можно сделать в меню "Отчет|Свойства..."). Это нужно сделать, потому что страница с содержанием находится перед остальными страницами. В момент печати содержания еще не известно, на каких страницах будут напечатаны категории;
- использовать функцию
Engine.GetBookmarkPage
, которая возвращает номер страницы по имени закладки. В данном случае имя закладки содержится в поле[Categories.CategoryName]
, поэтому вызов функции выглядит так:
[Engine.GetBookmarkPage([Categories.CategoryName])]
На второй странице отчета располагается отчет типа master-detail следующего вида:
Нам надо настроить закладку, на которую будет совершен переход при нажатии на элемент оглавления. Для этого выделите первый бэнд "Данные" и в его свойстве Bookmark
укажите следующее выражение:
[Categories.CategoryName]
Для настройки структуры отчета сделайте следующее:
- выделите первую страницу (сам объекта "Страница"). Это можно сделать, переключившись на страницу;
- в окне "Свойства" задайте следующее значение свойства
OutlineExpression
:
"Содержание"
- переключитесь на вторую страницу отчета;
- выделите первый бэнд "Данные" и настройте его свойство
OutlineExpression
:
[Categories.CategoryName]
- выделите второй бэнд "Данные" и настройте его свойство
OutlineExpression
:
[Products.ProductName]