Пример 2. Построение детального отчета

Top  Previous  Next

В этом примере мы построим отчет - список категорий продуктов. При щелчке на названии категории будет показан детальный отчет - список продуктов в данной категории.

 

Вам необходимо сделать следующее:

 

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

 

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

 

interactiveExample2

 

Для идентификации категории проще всего использовать значение поля CategoryID, которое имеется в обеих таблицах - Categories и Products. Создадим параметр отчета, с помощью которого будет передаваться выбранная категория. Настроим его следующим образом:

 

interactiveExample2_1

 

Теперь нужно указать условие фильтрации, с помощью которого будут отобраны все продукты, относящиеся к выбранной категории. Для этого сделайте двойной щелчок на бэнде "Данные" и на закладке "Фильтр" укажите следующее условие (его можно построить визуально, нажав кнопку "fx" в правой части строки ввода):

 

interactiveExample2_2

 

На этом создание детального отчета завершено.

 

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

 

interactiveExample2_3

 

Щелкните правой кнопкой мыши на объекте "Текст" и выберите пункт меню "Гиперссылка...". Настройте ссылку следующим образом:

 

interactiveExample2_4

 

Как видно на рисунке, в качестве отчета надо выбрать имя файла с детальным отчетом. Параметр отчета можно выбрать из выпадающего списка, нажав кнопку в правой части списка. В качестве значения параметра укажем поле CategoryID таблицы Categories.

 

На этом построение отчета завершено. Запустите отчет, и вы увидите список категорий:

 

interactiveExample2_5

 

Если щелкнуть на одной из категорий, будет построен детальный отчет. Он будет показан на отдельной закладке окна просмотра:

 

interactiveExample2_6

 

Как видно на рисунке, в качестве текста закладки используется значение, передаваемое в параметр детального отчета. В нашем случае это поле CategoryID числового типа. Это выглядит неинформативно и некрасиво. Можно переделать наш отчет так, чтобы передавалось название категории. Для этого сделайте следующее:

 

В детальном отчете:

 

поменяйте тип параметра (свойство DataType) на String;
добавьте в отчет источник данных - Categories. Он будет использован для обращения к полю CategoryName при фильтрации данных;
поменяйте выражение фильтрации у бэнда "Данные":

 

[Products.Categories.CategoryName] == [SelectedCategory]

 

В основном отчете:

 

настройте гиперссылку так, чтобы передавать значение [Categories.CategoryName] в параметр "SelectedCategory".

 

Если запустить отчет теперь, мы увидим, что закладка детального отчета имеет текст с названием категории, а не ее идентификатором. Теперь в детальный отчет можно добавить объект "Текст", который будет печатать название выбранной категории в заголовке отчета:

 

interactiveExample2_7

 

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

 

interactiveExample2_8

 

В данном случае надо выбрать страницу отчета, на которой содержатся объекты детального отчета, а именно - Page2.