Создание источников данных для отчета
Режим обработки в элементе управления ReportViewer определяет, какие данные можно использовать в отчете.
Для удаленного режима обработки, когда отчеты обрабатываются на сервере отчетов SQL Server 2005, возможные типы источников данных определяются модулями обработки данных на сервере отчетов. По умолчанию на сервере отчетов присутствуют модули обработки данных для SQL Server, служб Analysis Services, служб SQL Server Integration Services, Oracle, SAP NetWeaver® для бизнес-аналитики, XML, ODBC и OLE DB. Подключения к источникам данных и запросы, получающие данные для отчета, задаются в определении отчета во время разработки при создании отчета в среде Business Intelligence Development Studio (это средство разработки отчетов, поставляемое с SQL Server 2005). Поля, возвращаемые запросом, можно использовать в макете отчета, перетащив их в область конструктора отчета. Дополнительные сведения о работе с данными на сервере отчетов см. в разделе Connecting to a Data Source электронной документации по SQL Server.
При обработке в локальном режиме, когда отчеты обрабатываются элементом управления, входящим в состав приложения, в качестве данных для отчета можно задавать поля и источники данных среды Visual Studio. Подключения к источнику данных и запросы, получающие данные для отчета, определяются в проекте приложения во время разработки. Клиентский отчет может использовать данные из любого источника, представляемые в виде объекта ADO.NET DataTable или перечисляемой коллекции бизнес-объектов. Таблица данных или бизнес-объект возвращает список полей, которые могут использоваться в отчете. Поля содержат указатель на поле базы данных и свойство имени. Поля можно перетащить из окна источника данных на макет отчета.
Привязка данных в отчете
Определения отчетов используют для привязки данных отчета области данных. Существуют разнообразные области данных, поддерживающие различные структуры данных отчета. Примеры областей данных, которые можно использовать в определении отчета, — «Таблица», «Матрица», «Диаграмма» и «Список». Привязка данных в отчете выполняется следующим образом.
Задайте источники данных и наборы данных, которые нужно использовать в отчете (чтобы узнать, как это сделать, можно использовать информацию и ссылки данного раздела). Окно «Источники данных» показывает источники данных и поля, которые можно использовать в отчете.
Перетащите области данных, которые нужно использовать, с области элементов отчета в область конструктора отчета.
Перетащите отдельные поля из окна источника данных на область данных.
Каждая область данных может использовать поля из одного набора данных. Ни управляющий элемент ReportViewer, ни сервер отчетов не умеют соединять разные наборы данных. Например, при использовании бизнес-объектов соединение нужно провести внутри бизнес-объекта. Дополнительные сведения об областях данных см. в разделе Добавление областей данных в отчет (конструктор отчетов Visual Studio).
Добавление источников данных в отчеты с элементом управления ReportViewer
Для настройки источника данных с целью его последующего использования в определении клиентского отчета рекомендуются следующие подходы.
Добавьте источник данных в проект приложения и настройте подключение к базовым данным. Для базового хранилища данных выберите конкретные данные, которые нужно использовать. Данные, которые будут использованы в отчете, должны быть видны в окне «Источники данных». Для таблицы данных источник данных показывает имена столбцов, возвращенных запросом. Для перечисляемой коллекции бизнес-объектов источник данных показывает список открытых свойств простых типов данных, доступных через объект класса.
Для создания таблицы данных добавьте к проекту набор данных и используйте мастер TableAdapter для настройки таблицы данных. Мастер TableAdapter предоставляет построитель запросов и функцию предварительного просмотра данных для мгновенного определения правильности результатов запроса.
Для создания бизнес-объектов используйте команду Добавить новый элемент меню Проект и выберите объект «Класс». Реализации объектов должны предоставлять доступ к открытым свойствам простых типов данных, которые можно использовать во время разработки. Реализации объектов должны также предоставлять методы, возвращающие перечисляемые коллекции свойств, которые можно использовать во время выполнения.
После настройки источника данных те данные, для которых можно выполнить привязку, появляются в иерархии в окне источника данных. Чтобы привязать данные к отчету, нужно перетащить узлы развернутой иерархии в текстовые поля или области данных в макете отчета. Если наборы данных изменяются позже, после создания определения отчета, следует обновить привязку данных в отчете и управляющем элементе. Дополнительные сведения см. в разделе Обновление и повторная привязка ссылок на источники данных (конструктор отчетов Visual Studio).
В отчете можно использовать неограниченное число источников данных. Для просмотра списка источников данных, используемых отчетом, выберите в меню «Отчет» пункт Источники данных. Для предварительного просмотра отчета и его данных в приложении нужно построить или развернуть приложение, чтобы убедиться, что отчет содержит ожидаемые данные. Дополнительные сведения о настройке управляющих элементов и задании макета отчета см. в разделах Настройка ReportViewer для локальной обработки и Создание клиентских RDLC-файлов.
Чтобы начать работу немедленно, используйте следующие пошаговые руководства, в которых показано добавление в проект различных типов источников данных:
Использование бизнес-объектов
Бизнес-объект — это любой объект приложения, предоставляющий доступ к открытым свойствам простых типов данных. В качестве примера бизнес-объекта можно привести коллекцию объектов «Клиент» из базового хранилища данных, массив объектов «Заголовок книги», созданных вашим приложением, или список объектов «Канал», созданных на базе источника RSS XML.
Чтобы к коллекции можно было получить доступ как к источнику данных, она должна поддерживать интерфейс IEnumerable. Данные, доступные для привязки, появляются в иерархическом представлении в окне «Источники данных». Для бизнес-объектов источник данных показывает список открытых свойств простых типов данных, доступных через объект «Класс». Теперь можно привязать их к областям данных и текстовым полям в определении отчета.
Чтобы реализовать коллекцию бизнес-объектов, нужно добавить к проекту класс или ссылку на сборку класса.
Использование таблиц данных
Объект DataTable как часть набора данных ADO.NET DataSet легко добавить в проект с помощью меню «Проект», выбрав пункт Добавить новый элемент. Чтобы настроить подключение к данным, запустите мастер настройки TableAdapter. В меню «Данные» выберите пункт «Добавить», затем выберите TableAdapter. Можно также задать запрос для ограничения результирующего набора. После завершения работы мастера столбцы объекта DataTable доступны в окне «Источники данных». Теперь можно выполнить их привязку к областям данных и текстовым полям в определении клиентского отчета.
Определение источников данных для серверных веб-элементов управления ReportViewer
Элементы управления источников данных поддерживают абстракцию слоя доступа к данным, так что управляющие элементы на веб-странице привязываются к источнику данных, который, в свою очередь, привязывается к собственно данным. Это позволяет эффективно менять источник данных без необходимости каждый раз выполнять повторную привязку всех управляющих элементов ко всем данным.
При создании веб-страницы раздел Данные области элементов содержит список из нескольких управляющих элементов источников данных — например, SqlDataSource и XmlDataSource. Некоторые управляющие элементы источников данных поддерживают страничную память для веб-страниц, а другие используют общий доступ к данным. Отчеты не используют страничную память, так что при работе с серверным веб-элементом управления ReportViewer лучше всего использовать элемент управления ObjectDataSource. Этот управляющий элемент обеспечивает связь между кэшированными объектами в памяти (таблицами DataTables, коллекциями бизнес-объектов) и областями данных отчета. При добавлении на веб-страницу управляющего элемента ReportViewer автоматически добавляется и настраивается элемент ObjectDataSource.
Встроенная в платформу ASP.NET поддержка для разработки веб-страниц избавляет от написания дополнительного кода, предоставляя дополнительные, скрытые от пользователя, процессы обработки для распознавания коллекций с привязываемыми бизнес-объектами. При добавлении в проект класса, возвращающего коллекцию объектов, которые можно считать бизнес-объектами, эта коллекция автоматически добавляется в окно «Источники данных веб-узла».
См. также
Справочник
Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing
Понятия
Настройка ReportViewer для удаленной обработки
Обновление и повторная привязка ссылок на источники данных (конструктор отчетов Visual Studio)