Пошаговое руководство. Использование источника данных бизнес-объекта с элементом управления ReportViewer для Windows Forms в режиме локальной обработки
В этом пошаговом руководстве показано, как использовать источник данных бизнес-объектов в отчете в приложении Microsoft Visual Studio Windows Forms.Дополнительные сведения о бизнес-объектах и источниках данных объектов см. в разделе Binding to Business Objects.
Чтобы добавить отчет к проекту приложения Windows Forms, выполните следующие действия.Для этого примера приложение создается на Microsoft Visual C#.
Создание проекта приложения Windows Forms
В меню Файл укажите команду Создать и выберите пункт Проект.
В диалоговом окне Новый проект на панели Установленные шаблоны выберите «Visual C#», а затем выберите шаблон Приложение Windows Forms.Узел C# может находиться под узлом Другие языки, в зависимости от начальных настроек среды Visual Studio.
Введите имя проекта 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; } }
В меню Проект выберите пункт Построить решение.Будет создана сборка для объекта, которая в дальнейшем будет использоваться как источник данных для отчета.
Добавьте отчет в проект с использованием мастера отчетов
В меню Проект выберите пункт Добавить новый элемент.
В окне Добавление нового элемента выберите пункт Мастер отчетов.Введите имя отчета и нажмите кнопку Добавить.
Будет запущен мастер отчетов с мастером настройки источников данных.
На странице Выбор типа источника данных выберите тип Объект и нажмите кнопку Далее.
На странице Выбор объектов данных разверните иерархию классов, начиная с узла BusinessObject, пока в списке не появится элемент Product.Выберите элемент Product и нажмите кнопку Готово.
Теперь вернемся к мастеру отчетов.В окне Обозреватель решений обратите внимание, что новый объект источника данных был добавлен в проект.
На странице Свойства набора данных убедитесь, что в поле Источник данных выбран пункт Глобальный.
Убедитесь, что в поле Доступные наборы данных выбран пункт Product.
Нажмите кнопку Далее.
На странице Упорядочение полей выполните следующие действия.
Перетащите элемент Имя из списка Доступные поля в поле Группы строк.
Перетащите элемент Цена из списка Доступные поля в поле Значения.
Дважды щелкните Далее, затем щелкните Готово.
Будет создан RDLC-файл, который откроется в конструкторе отчетов.Сконструированный табликс теперь отобразится в области конструирования.
Сохраните файл RDLC.
Добавление элемента управления ReportViewer в отчет
В окне «Обозреватель решений» откройте форму Windows Forms в режиме конструктора.По умолчанию форма имеет имя Form1.cs.
Перетащите значок ReportViewer из группы Отчетобласти элементов на форму.
Откройте панель смарт-тегов в элементе управления ReportViewer, щелкнув глиф смарт-тега в правом верхнем углу.
В списке Выберите отчет выберите созданный отчет.По умолчанию используется имя Report1.rdlc.Заметьте, что автоматически создается объект BindingSource с именем ProductBindingSource, соответствующий каждому источнику данных объекта, используемому в отчете.
Щелкните элемент Закрепление в родительском контейнере на открытой панели смарт-тегов.
Передача экземпляров источников данных в объект BindingSource
В обозревателе решений щелкните правой кнопкой мыши файл Form1.cs и выберите пункт Просмотреть код.
В файле Form1.cs добавьте следующий код первой строкой перед конструктором в пределах определения разделяемого класса.
// 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, чтобы запустить приложение и просмотреть отчет.
См. также
Ссылки
ReportViewer.Drillthrough
LocalReport.SubreportProcessing
ReportViewer.Drillthrough
LocalReport.SubreportProcessing
Основные понятия
Использование панели смарт-тегов для задач ReportViewer