Пример 4. Отчет с оглавлением, навигацией и структурой

Top  Previous  Next

В этом примере рассмотрим построение отчета, который имеет следующие особенности:

 

на первой странице отчета располагается оглавление, или "Содержание", на элементы которого можно нажимать для перехода к нужной странице;
сбоку в окне просмотра отображается структура отчета, на элементы которой также можно нажимать.

 

interactiveExample4

 

Отчет будет использовать данные из таблиц Categories и Products. В содержании будет напечатан список категорий, в основной части отчета - список категорий и продуктов. Шаблон отчета будет состоять из двух страниц: на первой странице будем печатать содержание, на второй - основную часть отчета.

 

Сначала займемся оглавлением. Создайте новый отчет и добавьте в него источники данных Categories и Products. Подключите бэнд "Данные" к таблице Categories и расположите объекты следующим образом:

 

interactiveExample4_1

 

Чтобы сделать элементы содержания интерактивными, настройте их свойство "Гиперссылка":

 

interactiveExample4_2

 

В качестве закладки укажите имя категории. Сама закладка (свойство Bookmark) будет определена нами позже у объектов на второй странице отчета.

 

Для того чтобы напечатать в содержании номер страницы, на которую мы ссылаемся с помощью закладки, нужно сделать следующее:

 

включить у отчета двойной проход (это можно сделать в меню "Отчет|Свойства..."). Это нужно сделать, потому что страница с содержанием находится перед остальными страницами. В момент печати содержания еще не известно, на каких страницах будут напечатаны категории;
использовать функцию Engine.GetBookmarkPage, которая возвращает номер страницы по имени закладки. В данном случае имя закладки содержится в поле [Categories.CategoryName], поэтому вызов функции выглядит так:

 

[Engine.GetBookmarkPage([Categories.CategoryName])]

 

На второй странице отчета располагается отчет типа master-detail следующего вида:

 

interactiveExample4_3

 

Нам надо настроить закладку, на которую будет совершен переход при нажатии на элемент оглавления. Для этого выделите первый бэнд "Данные" и в его свойстве Bookmark укажите следующее выражение:

 

[Categories.CategoryName]

 

Для настройки структуры отчета сделайте следующее:

 

выделите первую страницу (сам объекта "Страница"). Это можно сделать, переключившись на страницу;
в окне "Свойства" задайте следующее значение свойства OutlineExpression:

 

"Содержание"

 

переключитесь на вторую страницу отчета;
выделите первый бэнд "Данные" и настройте его свойство OutlineExpression:

 

[Categories.CategoryName]

 

выделите второй бэнд "Данные" и настройте его свойство OutlineExpression:

 

[Products.ProductName]