Поделиться через


Настройка вложенных отчетов и детализированных отчетов (конструктор отчетов Visual Studio)

Чтобы связать связанные отчеты можно использовать вложенные отчеты или детализированные отчеты.

  • Вложенный отчет представляет собой элемент управления, внедренный в текст родительского отчета. Концептуально вложенный отчет похож на фрейм веб-страницы, предоставляющий контейнер для другого содержимого веб-страницы. Вложенный отчет подготавливается к просмотру в родительском отчете, который его содержит. Оба отчета обрабатываются и выводятся одновременно.

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

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

Следующие события включают образец кода, показывающий реализацию вложенных отчетов и действий детализации для элемента управления ReportViewer:

Дополнительные сведения о включении интерактивной углубленной детализации в отчет см. в разделе Как скрыть или определить переключение видимости для элемента отчета (конструктор отчетов Visual Studio).

Добавление вложенных отчетов

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

Добавление вложенного отчета

  1. Откройте клиентский RDLC-файл в режиме графического конструктора.

  2. В области элементов щелкните элемент Вложенный отчет.

  3. В области конструктора мышью перетащите рамку вложенного отчета, чтобы установить нужный размер. Либо щелкните область конструктора, чтобы создать вложенный отчет фиксированного размера.

    NoteПримечание.

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

  4. Щелкните правой кнопкой мыши вложенный отчет и выберите пункт Свойства.

  5. В поле Вложенный отчет выберите отчет, который должен появиться в области вложенного отчета.

  6. На вкладке Параметры выполните следующие шаги.

    • В поле Имя параметра введите имя параметра во вложенном отчете. Это имя должно соответствовать параметру отчета, указанного в свойстве ReportName.

    • В поле Значение параметра введите значение для передачи вложенному отчету. Это значение может быть статистическим текстом или выражением, указывающим на какое-либо поле или иной объект в родительском отчете.

  7. Повторите шаг 2, чтобы добавить дополнительные параметры для передачи вложенному отчету.

NoteПримечание.

Все параметры, которые требуются вложенному отчету, должны быть включены в список Параметры. Если не хватает какого-либо обязательного параметра, вложенный отчет не будет правильно отображен в пределах родительского отчета.

Чтобы передавать данные во вложенные отчеты, приложение должно обрабатывать событие SubreportProcessing объекта LocalReport. Один из аргументов, передаваемых методу обработчика события SubreportProcessing, — объект SubreportProcessingEventArgs. В обработчике события приложение может исследовать значения параметров, передаваемые вложенному отчету с помощью свойства Parameters объекта SubreportProcessingEventArgs. Затем приложение должно передать данные вложенному отчету с помощью свойства DataSources объекта SubreportProcessingEventArgs.

Настройка детализированных отчетов

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

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

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

Добавление ссылки на детализированный отчет

  1. Откройте клиентский RDLC-файл в режиме графического конструктора.

  2. Щелкните правой кнопкой мыши текстовое поле или рисунок, к которому нужно добавить ссылку, и выберите пункт Свойства.

  3. На вкладке Навигация выберите Перейти к отчету.

  4. Введите или выберите имя отчета. Отчет должен быть RDLC-файлом, являющимся частью того же проекта.

  5. Чтобы задать параметры, передаваемые детализированному отчету, нажмите кнопку Параметры и затем выполните следующее.

    • В поле Имя параметра введите имена параметров отчета для детализированного отчета.

      NoteПримечание.

      Имена в списке параметров должны точно совпадать с параметрами, ожидаемыми целевым отчетом. Если имена не совпадают или если ожидаемый параметр не указан, в детализированном отчете возникнет ошибка.

    • В поле Значение параметра введите или выберите значения, передаваемые параметрам детализированного отчета.

      NoteПримечание.

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

Чтобы предоставить данные для детализированных отчетов, приложение должно обрабатывать событие Drillthrough объекта ReportViewer. Один из аргументов, передаваемых методу обработчика события Drillthrough, — объект DrillthroughEventArgs. У объекта DrillThroughEventArgs есть свойство Report, представляющее детализированный отчет. В обработчике события приложение может исследовать значения параметров, передаваемые детализированному отчету с помощью вызова метода GetParameters() для детализированного отчета. Затем приложение должно предоставить данные для детализированного отчета с помощью свойства DataSources детализированного отчета.

См. также

Понятия

Определение параметров в отчете (конструктор отчетов Visual Studio)
Добавление в отчет интерактивных функций, средств изменения видимости и элементов навигации (конструктор отчетов Visual Studio)

Другие ресурсы

Образцы и пошаговые руководства