Пошаговое руководство. Создание отчета ReportViewer

В этом пошаговом руководстве показано, как создать в проекте приложения Visual Studio Windows Forms простой табличный отчет, основанный на образце базы данных AdventureWorks2008. В проект будет добавлен отчет с помощью мастера отчетов, а на форму Windows Forms будет добавлен элемент управления ReportViewer Windows Forms, позволяющий пользователям приложения просматривать отчет.

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

Предварительные требования

Для использования этого пошагового руководства необходим доступ к образцу базы данных AdventureWorks2008. Запрос, используемый в этом пошаговом руководстве, не будет работать с более ранней версией AdventureWorks. Дополнительные сведения о получении образца базы данных AdventureWorks2008 см. в разделе Пошаговое руководство. Установка базы данных AdventureWorks.

В этом пошаговом руководстве предполагается, что пользователь знаком с запросами на языке Transaction-SQL и объектами ADO.NET DataSet и DataTable.

Создание проекта приложения Windows Forms

  1. Откройте среду Visual Studio. В меню Файл последовательно выберите команды Создать и Проект.

  2. В области Установленные шаблоны разверните узел Другие языки и выберите пункт Visual Basic.

  3. Выберите шаблон Приложение Windows Forms.

  4. В поле Имя введите SimpleReport.

  5. В поле Расположение введите путь к каталогу, где будет сохранен проект, или нажмите кнопку Обзор, чтобы перейти в эту папку.

  6. Нажмите кнопку ОК.

    Откроется конструктор Windows Forms, отображая форму Form1 созданного проекта.

  7. Щелкните форму. В меню Вид выберите пункт Окно свойств. Разверните свойство Размер, чтобы отобразить поля Ширина и Высота. Установите в поле Ширина значение в 500 точек.

Определение набора данных и таблицы данных

  1. В меню Проект выберите пункт Добавить новый элемент.

  2. В окне Добавление нового элемента выберите пункт Набор данных. Введите имя набора данных и нажмите кнопку Добавить. Имя по умолчанию — DataSet1.xsd.

    В результате в проект будет добавлен новый XSD-файл и откроется конструктор наборов данных.

  3. Перетащите элемент управления Адаптер таблицы из области элементов в конструкторе набора данных в область конструктора.

    Запустится мастер настройки адаптера таблицы.

  4. На странице «Выбор подключения к данным» нажмите кнопку Создать соединение.

  5. Если источник данных в Visual Studio создается впервые, откроется страница Выбор источника данных. В поле Источник данных выберите значение Microsoft SQL Server.

  6. В диалоговом окне Добавление соединения выполните следующие действия.

    • В поле Имя сервера введите сервер, где расположена база данных AdventureWorks2008.

      Экземпляр SQL Server Express по умолчанию имеет имя (local)\sqlexpress.

    • В разделе Вход на сервер выберите параметр, который обеспечит доступ к этим данным. По умолчанию выбран параметр Использовать проверку подлинности Windows.

    • В раскрывающемся списке Выберите или введите имя базы данных выберите пункт AdventureWorks2008.

    • Нажмите кнопку ОК, чтобы продолжить работу мастера, а затем нажмите кнопку Далее.

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

  8. На странице Сохранение строки соединения в файл конфигурации приложения введите имя строки соединения или подтвердите имя по умолчанию — AdventureWorks2008ConnectionString. Нажмите кнопку Далее.

  9. На странице Выбор типа команд выберите Использовать инструкции SQL и нажмите кнопку Далее.

  10. На странице Ввод инструкции SQL введите следующий запрос Transact-SQL, чтобы получить данные о продажах из базы данных AdventureWorks2008, а затем нажмите кнопку Готово.

    --SET DATEFORMAT mdy
    
    SELECT      
       PC.Name AS Category, PS.Name AS Subcategory, 
       DATEPART(yy, SOH.OrderDate) AS Year, 
       'Q' + DATENAME(qq, SOH.OrderDate) AS Qtr, 
       SUM(DET.UnitPrice * DET.OrderQty) AS Sales
    FROM Production.ProductSubcategory PS INNER JOIN
       Sales.SalesOrderHeader SOH INNER JOIN
          Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN
          Production.Product P ON DET.ProductID = P.ProductID 
          ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN
       Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
    WHERE (SOH.OrderDate BETWEEN ('20020101') AND ('20031231'))
    GROUP BY DATEPART(yy, SOH.OrderDate), PC.Name, PS.Name, 
       'Q' + DATENAME(qq, SOH.OrderDate), PS.ProductSubcategoryID
    

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

  11. Нажмите кнопку Готово.

    Теперь в конструкторе наборов данных появится определение DataTable для DataTable1 с подкатегориями, имена которых получены из столбцов и псевдонимов столбцов запроса (Category, Subcategory, Year, Qtr и Sales). Эти поля будут использоваться во время привязки данных к отчету.

    Примечание

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

  12. Сохраните файл DataSet1.

Добавление нового RDL-файла с помощью мастера отчетов

  1. В меню Проект выберите пункт Добавитьновый элемент.

  2. В диалоговом окне Добавление нового элемента выберите пункт Мастер отчетов.

  3. В поле Имя введите Sales Orders.rdlc и нажмите кнопку Добавить.

    За диалоговым окном откроется область графического конструктора.

  4. На странице Свойства набора данных выберите созданный набор данных из раскрывающегося списка Источник данных.

    Окно Доступные наборы данных автоматически будет обновлено добавлением созданного набора DataTable.

  5. Нажмите кнопку Далее.

  6. На странице Упорядочение полей выполните следующие действия.

    1. Перетащите поле Category из списка доступные поля в окно Группы строк.

    2. Перетащите поле Subcategory из списка доступные поля в окно Группы строк под полем Category.

    3. Перетащите поле Year из списка доступные поля в окно Группы столбцов.

    4. Перетащите поле Qtr из списка доступные поля в окно Группы столбцов под полем Year.

    5. Перетащите поле Sales из списка доступные поля в окно Значения.

  7. Дважды щелкните Далее, затем щелкните Готово.

    Будет создан RDLC-файл, который откроется в конструкторе отчетов. Сконструированный табликс теперь отобразится в области конструирования.

Добавление заголовка к отчету

  1. Щелкните табликс в области конструктора, чтобы рядом с таблицей и над таблицей появились маркеры строк и столбцов.

    Примечание

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

  2. Щелкните угловой маркер, чтобы выбрать весь табликс и показать перекрещенные стрелки.

  3. Переместите табликс вниз по области конструктора, перетащив перекрещенные стрелки.

  4. Перетащите элемент Текстовое поле из области элементов в область над табликсом в области конструктора, а затем расположите его, перетащив перекрещенные стрелки.

  5. +

    Выберите текстовое поле и введите с клавиатуры Company Sales. При необходимости перетащите границу текстового поля, чтобы расширить его.

  6. Выберите текстовое поле, нажмите кнопку Жирный на панели инструментов Форматирование отчета, а затем выберите пункт 16пт в поле Размер шрифта.

  7. Выберите текстовое поле и нажмите кнопку Основной цвет на панели инструментов Форматирование отчета.

  8. В диалоговом окне «Выбор цвета» выберите Черно-синий цвет и нажмите кнопку ОК.

Добавление элемента управления ReportViewer на форму

  1. Щелкните файл Form1.vb в обозревателе решений.

  2. В меню Вид выберите команду Конструктор.

  3. Перетащите элемент управления ReportViewer из раздела Отчет области элементов на форму.

  4. Откройте панель смарт-тегов в элементе управления ReportViewer1, щелкнув глиф смарт-тега в правом верхнем углу. Щелкните раскрывающийся список Выберите отчет и выберите файл SimpleReport.Sales Orders.rdlc.

  5. На панели смарт-тегов щелкните элемент Закрепление в родительском контейнере.

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

  6. Нажмите клавишу F5, чтобы построить приложение и просмотреть отчет на форме (необязательно).

Форматирование поля валюты

  1. В окне конструктора отчетов для файла Sales Orders.rdlc щелкните правой кнопкой мыши левую верхнюю ячейку со значением [Sum(Sales)] и выберите пункт Свойства текстового поля.

  2. Перейдите на вкладку Количество.

  3. В списке Категория выберите пункт Валюта.

  4. В списке Символ выберите пункт Английский (Великобритания).

  5. Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

  6. Повторите эти действия для всех остальных ячеек со значением [Sum(Sales)].

  7. (Необязательно.) Нажмите клавишу F5, чтобы построить приложение и просмотреть отчет. Проверьте, как изменился числовой формат. Заметьте, что конвертация валюты не выполняется, а изменяется только числовой формат.

Форматирование макета табликса

  1. В окне конструктора отчетов для файла Sales Orders.rdlc перетащите курсор, чтобы выделить две пустые ячейки в левом верхнем углу табликса.

  2. Щелкните выделенные ячейки правой кнопкой мыши и выберите команду Объединить ячейки.

  3. Щелкните объединенную ячейку правой кнопкой мыши и выберите пункт Свойства текстового поля.

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

  5. Нажмите кнопку ОК.

  6. Щелкните табликс, чтобы показать его маркеры. Увеличьте ширину столбца с заголовком Subcategory, перетащив правую границу маркера столбца. Это позволит избежать переноса текста заголовка на следующую строку.

  7. Нажмите клавишу F5, чтобы построить приложение и просмотреть отчет.

См. также

Справочник

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

Основные понятия

Использование панели смарт-тегов для задач ReportViewer

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

Designing and Implementing Reports Using Report Designer (Reporting Services)

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