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


Пошаговое руководство. Использование источника данных базы данных с элементом управления ReportViewer для Windows Forms в режиме локальной обработки

В этом пошаговом руководстве показано, как создать отчет в проекте приложения Windows в Microsoft Visual Studio 2008 и добавить элемент управления ReportViewer на форму Windows, чтобы пользователи приложения могли просмотреть отчет.

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

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

Чтобы добавить отчет к проекту приложения Windows в Visual Studio, выполните следующие шаги. Для этого примера приложение создается на Microsoft Visual Basic.

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

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

  2. В области «Типы проектов» выберите элемент Visual Basic.

  3. В области «Шаблоны» выберите пункт Приложение Windows, чтобы создать приложение для Microsoft Windows.

  4. В поле Имя введите имя проекта: ReportWalkthrough.

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

Определение соединения с источником данных и объекта DataTable

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

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

  3. Введите имя набора данных и нажмите кнопку Добавить. В результате в проект будет добавлен новый файл схемы XML и откроется конструктор наборов данных. Имя по умолчанию — DataSet1.xsd.

  4. В конструкторе наборов данных откройте область элементов и перетащите элемент управления TableAdapter в область конструктора набора данных. Запустится мастер настройки TableAdapter.

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

  6. В поле Источник данных выберите значение Microsoft SQL Server. В поле Имя сервера введите сервер, где расположена база данных AdventureWorks. Выберите AdventureWorks из раскрывающегося списка баз данных и нажмите кнопку ОК, чтобы перейти на следующую страницу мастера.

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

  8. На странице Выбор типа команд выберите пункт Использовать инструкции SQL. Убедитесь, что не выбраны другие переключатели.

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

    SELECT d.name as Dept, s.Name as Shift, e.EmployeeID as EmployeeID
    FROM (HumanResources.Department d
    INNER JOIN HumanResources.EmployeeDepartmentHistory e
        ON d.DepartmentID = e.DepartmentID)
    INNER JOIN HumanResources.Shift s
        ON e.ShiftID = s.ShiftID
    

    Если запрос не возвращает ожидавшиеся данные, возможно, используется более ранняя версия AdventureWorks. Дополнительные сведения об установке версии AdventureWorks для SQL Server 2005 см. в разделе Пошаговое руководство. Установка базы данных AdventureWorks.

  10. На странице Выбор методов для создания примите параметры по умолчанию в разделе Заполнение DataTable, указав Имя методаFill, и Возвращение DataTable, указав Имя методаGetData. Нажмите кнопку Далее.

  11. На странице Результаты работы мастера нажмите кнопку Готово.

  12. На странице конструктора наборов данных должен появиться объект DataTable1 со столбцами, полученными в результате запроса. В меню Данные выберите команду Показать источники данных и разверните узел DataTable1, чтобы увидеть эти столбцы. Окно Источники данных и поля Dept, Shift и EmployeeID будут использоваться во время привязки данных к отчету на следующем шаге.

Создание отчета

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

  2. В окне Добавление нового элемента выберите Отчет.

  3. Введите имя файла отчета. По умолчанию используется имя отчета Report1.rdlc. Нажмите кнопку Добавить. Откроется конструктор отчетов с точечной областью, представляющей страницу отчета.

  4. Откройте область элементов. Щелкните элемент «Текстовое поле», а затем щелкните форму.

  5. Введите в текстовое поле заголовок отчета: # of Employees per Shift per Dept.

  6. Перетащите элемент отчета Матрица из области элементов в отчет, расположив его под текстовым полем.

  7. В окне «Источники данных» разверните элемент DataTable1, чтобы увидеть столбцы Dept, Shift и EmployeeID. Перетащите поле Dept в текстовое поле Rows в первом столбце второй строки матрицы.

  8. Перетащите поле Shift в текстовое поле Columns во втором столбце первой строки матрицы. Выберите текстовое поле и задайте для свойства TextAlign значение Right. Щелкните значок Ж на панели инструментов Форматирование отчета, чтобы задать полужирный шрифт.

  9. Выберите матричную область данных, щелкнув в любом месте матрицы. Щелкните правой кнопкой мыши и выберите матрицу по имени (по умолчанию — matrix1). Вокруг элемента матричного отчета появится контур. Щелкните правой кнопкой мыши структуру и выберите пункт Свойства. Убедитесь, что открылось диалоговое окно с заголовком Свойства матрицы.

  10. Перейдите на вкладку Группы. В разделе Столбцы нажмите кнопку Изменить.

  11. В окне Сортировка и группирование перейдите на вкладку Сортировка.

  12. Щелкните в первом поле под полем Выражение, чтобы активировать его, а затем щелкните стрелку раскрывающегося списка и выберите значение =Fields!Dept.Value. В результате данные отчета будут отсортированы по названию отдела.

  13. Перетащите поле EmployeeID из окна Источники данных веб-узла в текстовое поле Данные во втором столбце второй строки матрицы. Щелкните это поле правой кнопкой мыши и выберите пункт Свойства.

  14. В окне Свойства на вкладке Общие нажмите кнопку выражения (fx), чтобы запустить редактор выражений.

  15. Замените заданную по умолчанию статистическую функцию Sum на Count. Чтобы запустить редактор выражений, можно щелкнуть текстовое поле правой кнопкой мыши и выбрать пункт Свойство. Выражение должно иметь следующий вид:

    =Count(Fields!EmployeeID.Value)
    

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

  1. В обозревателе решений щелкните правой кнопкой мыши файл Form1.vb и выберите пункт Конструктор представлений, чтобы открыть форму в режиме конструктора.

  2. В окне свойств Форма нажмите кнопку +, чтобы развернуть свойство Size. Задайте для свойства Height формы значение 700.

  3. В разделе «Данные» области элементов Visual Studio щелкните значок ReportViewer, а затем щелкните форму. При необходимости изменить ширину формы и ширину элемента управления ReportViewer.

  4. Откройте панель смарт-тегов в элементе управления ReportViewer, щелкнув треугольник в правом верхнем углу. Щелкните раскрывающийся список Выберите отчет и выберите пункт Report1.rdlc. После выбора отчета автоматически создаются экземпляры источников данных, используемых в отчете. Формируется код для создания экземпляра DataSet (контейнера ADO.NET для DataTable), компонента TableAdapter и объекта BindingSource, соответствующего каждому источнику данных в отчете.

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

Построение и запуск приложения

  1. В меню Построить выберите пункт Построить ReportWalkthrough. В процессе построения компилируется отчет. Все обнаруженные ошибки (в том числе синтаксические ошибки в выражениях, используемых в отчете) добавляются в Список задач.

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

См. также

Справочник

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

Понятия

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

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

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