Пошаговое руководство. Использование источника данных бизнес-объекта с элементом управления ReportViewer для Windows Forms в режиме локальной обработки
В этом пошаговом руководстве показано, как использовать источник данных бизнес-объектов в отчете в приложении Windows, создаваемом в среде Microsoft Visual Studio 2008. Дополнительные сведения о бизнес-объектах и источниках данных объектов см. в разделе Binding to Business Objects.
Чтобы добавить отчет к проекту приложения Windows в Visual Studio, выполните следующие шаги. Для этого примера приложение создается на Microsoft Visual C#.
Создание нового проекта приложения Windows
В меню Файл укажите команду Создать и выберите пункт Проект.
В диалоговом окне Создание проекта в разделе Visual C# выберите шаблон приложения Windows.
Введите имя проекта BusinessObject и нажмите кнопку ОК.
Создание бизнес-объектов для использования в качестве источника данных
В меню Проект выберите пункт Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Класс, введите имя файла BusinessObjects.cs и нажмите кнопку Добавить. Новый файл добавляется к проекту и автоматически открывается в Visual Studio.
Замените код по умолчанию в файле BusinessObjects.cs следующим кодом:
using System; using System.Collections.Generic; // Define the Business Object "Product" with two public properties // of simple datatypes. public class Product { private string m_name; private int m_price; public Product(string name, int price) { m_name = name; m_price = price; } public string Name { get { return m_name; } } public int Price { get { return m_price; } } } // Define Business Object "Merchant" that provides a // GetProducts method that returns a collection of // Product objects. public class Merchant { private List<Product> m_products; public Merchant() { m_products = new List<Product>(); m_products.Add(new Product("Pen", 25)); m_products.Add(new Product("Pencil", 30)); m_products.Add(new Product("Notebook", 15)); } public List<Product> GetProducts() { return m_products; } }
В меню Проект выберите пункт Построить решение. Будет создана сборка для объекта, которая в дальнейшем будет использоваться как источник данных для отчета.
Добавление отчета к проекту
Убедитесь, что проект или элемент проекта выбран в окне Обозреватель решений.
В меню Проект выберите пункт Добавить новый элемент.
В окне Добавление нового элемента выберите пункт Отчет. Введите имя отчета и нажмите кнопку Добавить. Отчет добавляется к проекту и автоматически открывается в конструкторе отчетов. По умолчанию используется имя отчета Report1.rdlc.
Использование мастера настройки источников данных для создания источников данных
Убедитесь, что проект или элемент проекта выбран в окне Обозреватель решений.
В меню Данные выберите команду Добавить новый источник данных. Будет запущен мастер настройки источников данных.
На странице «Выбор типа источника данных» выберите тип Объект и нажмите кнопку Далее.
Мастер настройки источников данных выведет список существующих классов в проекте. Разверните иерархию классов, начиная с узла BusinessObjects, пока в списке не появится элемент Product. Выберите элемент Product и нажмите кнопку Далее, затем нажмите кнопку Готово.
Когда мастер завершает работу, новый объект источника данных появляется в окне Источники данных.
Создание отчета
Убедитесь, что отчет открыт в режиме конструктора, и откройте Область элементов. Перетащите элемент управления Таблица с панели Область элементов в отчет. В окне конструктора отчета появится элемент управления таблицы. Обратите внимание, что точечный фон представляет размеры текста отчета и можно изменить размер или расположение элемента управления таблицы.
В окне Источники данных перетащите поле Name из источника данных Product в первый столбец строки Подробности таблицы. Строка Подробности расположена посередине. Обратите внимание, что строка Заголовок заполняется автоматически, когда задается строка «Подробности».
Примечание.
Если окно Источники данных не отображается, в меню Данные выберите команду Показать источники данных.
Перетащите поле Price в строку детализации второго столбца, поместив ее рядом с полем Name. Выберите строку верхнего колонтитула таблицы, щелкнув левый значок верхнего колонтитула таблицы, и примените стиль шрифта Полужирный (необязательно).
Удалите неиспользуемый третий столбец. Щелкните третий столбец, затем щелкните панель заголовка и нажмите клавишу Delete.
Чтобы добавить заголовок к отчету, откройте область элементов и перетащите элемент управления Текстовое поле в отчет. Расположите элемент Текстовое поле над таблицей. Введите имя отчета Products.
(Необязательно.) Задайте размер и начертание шрифта, чтобы сделать заголовок более заметным.
Добавление элемента управления ReportViewer в отчет
Выберите автоматически созданную форму приложения Windows в режиме конструктора. По умолчанию форма имеет имя Form1.cs.
Откройте Область элементов. В окне Область элементов разверните узел Данные и перетащите значок ReportViewer на форму. При необходимости разверните форму и переместите элемент ReportViewer.
Выберите элемент управления ReportViewer и откройте панель смарт-тегов, щелкнув треугольник в правом верхнем углу. Щелкните раскрывающийся список Выберите отчет и выберите только что созданный отчет. По умолчанию используется имя Report1.rdlc. Обратите внимание, что автоматически создается объект BindingSource, соответствующий каждому источнику данных объекта, используемому в отчете.
Передача экземпляров источников данных в объект BindingSource
Щелкните правой кнопкой мыши форму среды Visual Studio и выберите из контекстного меню команду Просмотреть код.
В файле Form1.cs добавьте следующий код в верхнюю часть класса. Можно использовать первую строку после инструкции
public partial class Form1 : Form {
, но перед конструктором.// Instantiate the Merchant class. private Merchant m_merchant = new Merchant();
В методе Form1_Load() добавьте следующий код первой строкой перед вызовом метода
RefreshReport
:// Bind the Product collection to the DataSource. this.ProductBindingSource.DataSource = m_merchant.GetProducts();
Запуск приложения
- Нажмите клавишу F5, чтобы запустить приложение и просмотреть отчет.
См. также
Справочник
Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing
Понятия
Использование панели смарт-тегов для задач ReportViewer