Stimulsoft Reports предоставляет набор мощных инструментов по созданию отчетов для Microsoft Visual Studio Net 2008 и 2010. Эти инструменты доступны для Windows Forms, а также Web-Forms. Они предоставляют много полезных функций, таких как легкость в использовании дизайнер отчетов и встроенная поддержка экспорта в PDF, Word, Excel и другие форматы. Stimulsoft Reports в настоящее время поддерживает привязку к любому классу .NET. В дизайнере отчетов эта функция называется бизнес-объектом. Crystal Report и Microsoft отчеты отлично подходят для повседневной отчетности, но если вам следует создавать отчеты с перекрестными ссылками и детализацией, Ajax, поддержкой штрих-кодов и подключение в то же время к более чем одному источнику отчета, то продукты Stimulsoft Reports являются очень хорошим решением. Они также имеют функцию, где пользователи могут создавать свои собственные AdHoc отчеты. Все эти возможности делают Stimulsoft Reports хорошим выбором для отчетов бизнес-аналитики.

В этом уроке я покажу, как создать Master Detail отчет с использованием Business Objects (класса .NET) Я покажу как создать модель данных ADO.NET, регистрировать данные как Business Objects в дизайнере отчетов Stimulsoft, а также создание табличного отчета и сохранение его для запуска вновь создаваемого отчета.

Данные для отчета брались из Northwind sample database, предлагаемых компанией Microsoft.

Демо версию Stimulsoft Reports можно скачать на официальном сайте компании: http://www.stimulsoft.com/ru/downloads

Stimulsoft reporting tools

Необходимо проделать следующие шаги для создания Master Detail отчета с использованием Business Objects


1. Добавить модель данных ADO.NET в свой проект
2. Сгенерировать модель Entity для базы данных Northwind
3. Зарегистрировать Business Objects с дизайнером отчетов
4. Создать новый отчет, используя Business Objects
5. Привязать Customers к подчиненным orders
6. Добавить Master и Detail таблицы разметки отчета
7. Запустить новый отчет, используя Business Objects


1. Добавить модель данных ADO.NET в свой проект

  • Убедитесь, что вы используете .NET Framework version 3.5 SP1 и выше;
  • Щелкните правой кнопкой мыши на имя проекта в Solution Explorer;
  • Выберите добавить, а затем New Item;
  • Выберите модель данных Entity ADO.NET;
  • Введите имя модели файла, в этом уроке он будет Northwind.edmx;
  • Нажмите на кнопку добавить.

Add an ADO.NET data model to your project
Add an ADO.NET data model to your project

2. Сгенерировать модель Entity для базы данных Northwind

  • Выберите Generate из базы данных и нажмите Далее;
  • Выберите строку подключения Northwind или постройте свою собственную строку подключения следуя инструкциям http://www.connectionstrings.com;
  • Выделите все объекты базы данных, которые вы хотите передать в отчет. Для этого урока мы выберем таблицы;
  • Введите пространство имен модели ADO.NET в качестве NorthwindModel или любых других пространств имен на ваш выбор и нажмите кнопку Finish;
  • Visual Studio теперь будет сканировать схемы базы данных и создать все необходимые модели и определения классов Entity;
  • Найти модель Entity чтобы увидеть различные организации, которые создаются;
  • Мы будем использовать спискок организация в нашем отчете.

Generate Entity Model for Northwind database
Generate Entity Model for Northwind database
Generate Entity Model for Northwind database

3. Регистрация Business Objects с дизайнером отчетов

  • Создайте новую форму в своем проекте;
  • Убедитесь, что вы добавили ссылку на необходимую библиотеку stimulsoft.net, щелкнув правой кнопкой по проекту и выбрав добавить ссылки;
  • Добавить кнопку с названием Дизайнер отчетов и другую кнопку с названием Выполнить отчет;
  • Создайте обработчик событий для кнопки Дизайнер отчетов;
  • Добавьте код, чтобы получить список клиентов, содержащихся в модели Northwind. (Для простоты мы получаем список всех клиентов, на практике воспользовались бы LINQ, для формирования запроса обратите внимание на следующие статьи предоставляемые Microsoft http://msdn.microsoft.com/en-us/library/bb738636.aspx);
  • Entity Data Model указывает, что Customers имеет класс свойств Orders;
  • Создайте новый объект StiReport и загрузить определенный отчет из C:\MyReport.mrt, если файл существует (В этом уроке мы зафиксировали местоположение файла очтета для простоты);
  • Зарегистрировать список клиентов с объектом отчет;
  • Дизайнер отчетов Stimulsoft проверяет наличие клиента и определяет, что он имеет подчиенные заказы orders, это очень удобно при разработки отчета;
  • Вызвать функцию проектирования объекта отчета, чтобы запустить дизайнер.

Register Business Objects with Report Desinger
Register Business Objects with Report Desinger
using Stimulsoft.Report

///
/// Event Handler for Design Report button
///
private void Design_Click(object sender, EventArgs e)
{
	// Get Report Object
	StiReport report = GetReport();
	// Launch Report Deginer for the report
	report.Design();
}

///
/// This function Loads report definition from a fixed location
/// and registers all Business Objects in the report definition
///

///
/// StiReport object for the report
///
private StiReport GetReport()
{
	// Create a new object of StiReport Class
	StiReport report = new StiReport();
	
	// Load the report definition file from C:\MyReport.mrt if the file exists
	// This tutorial assumes you have are storing the report definition in a fixed location
	// If the file does not exists then Designer will allow you to save the your newly created report
	// in the location
	if (File.Exists("C:\\MyReport.mrt"))
	{
		report.Load("C:\\MyReport.mrt");
	}
	
	// Get of List of all customers and List of all orders from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	List orders = nw.Orders.ToList();
	nw.Dispose();
	// Register Business Objects for Customers and Orders in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	report.RegBusinessObject("Northwind", "Orders", orders);
	// Return report to calling function
	return report;
}
4. Создать новый отчет, используя Business Objects

  • При запуске проекта, нажать клавишу F5 на клавиатуре или на кнопку Начать отладку в Visual Studio;
  • Нажмите на кнопку Дизайнер отчетов, чтобы увидеть дизайнер отчетов Stimulsoft;
  • Найти в Словаре и расширеть Business Objects;
  • Northwind показана здесь, потому что мы определили категорию Customers при регистрации бизнеса объектов с помощью функции RegBusinessObject;
  • Развернуть Northwind, чтобы просмотреть customers и orders;
  • Развернуть Customers, чтобы увидеть все поля, которые принадлежат Customers;
  • Развернуть Orders, чтобы увидеть все поля, которые принадлежат orders.

Design new report using Business Objects

5. Связать Customers с подчиненными orders

  • Для того, чтобы связать Customer с их подчиненными orders, мы должны показать заказы по клиентам;
  • Щелкнуте правой кнопкой мыши по Customers и выберите новый Business Object;
  • Выберете подчиненный Business Object;
  • Выберите Orders из списка подчиненных Customers;
  • Внесите необходимые изменения псевдонима orders или колонок в Orders или добавьте новую калькулируемую колонку;
  • Нажмите Ok для продолжения.

Associate Customers to child orders
Associate Customers to child orders
Associate Customers to child orders

6. Добавление Master и Detail таблиц в отчет

  • Перетащите Customers в отчет, для добавления таблицы customers в проект;
  • Выберите все поля, которые вы хотите отобразить в отчете;
  • Перетащите Orders по клиентам в отчет для добавления таблицы orders в проект;
  • Выберите все поля, которые вы хотите отобразить в отчете;
  • Дизайнер отчетов автоматически details сгруппированные по master;
  • Измените фон Customers, чтобы отличать их от details;
  • Нажмите на вкладку Предварительный просмотр, для просмотра отчета;
  • Нажмите значок Save Report для сохранения отчета C:\MyReport.mrt;
  • Закройте дизайнер отчетов.

Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout
Add Master and Detail tables to report layout

7. Запуск нового отчета с использованием Business Objects

  • Добавить обработчик событий для кнопки Выполнить отчет;
  • Создайте новый объект StiReport object и загрузите отчет из следующего пути C:\MyReport.mrt если файл существует (В этом уроке мы зафиксировали местоположение файла очтета для простоты);
  • Добавьте код, чтобы получить список клиентов, содержащихся в модели Northwind. (Для простоты мы получаем список всех клиентов, на практике воспользовались бы LINQ, для формирования запроса обратите внимание на следующие статьи предоставляемые Microsoft http://msdn.microsoft.com/en-us/library/bb738636.aspx);
  • Entity Data Model указывает, что Customers имеет класс свойств Orders;
  • Создайте новый объект StiReport object и загрузите отчет из C:\MyReport.mrt если файл существует (В этом уроке мы зафиксировали местоположение файла очтета для простоты);
  • Регистрация списка клиентов и списка заказов с объектом отчет;
  • Вызовите функцию отображения объекта отчета для запуска просмотра отчетов.
using Stimulsoft.Report;

///
/// Event Handler for Run Report button
///
private void btnRun_Click(object sender, EventArgs e)
{
	// Get Report Object
	StiReport report = GetReport();
	// Show report to user
	report.Show();
}

///
/// This function Loads report definition from a fixed location
/// and registers all Business Objects in the report definition
///

///
/// StiReport object for the report
///
private StiReport GetReport()
{
	// Create a new object of StiReport Class
	StiReport report = new StiReport();
	// Load the report definition file from C:\MyReport.mrt if the file exists
	// This tutorial assumes you have are storing the report definition in a fixed location
	// If the file does not exists then Designer will allow you to save the your newly created report
	// in the location
	if (File.Exists("C:\\MyReport.mrt"))
	{
		report.Load("C:\\MyReport.mrt");
	}
	
	// Get of List of all customers and List of all orders from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	List orders = nw.Orders.ToList();
	nw.Dispose();
	
	// Register Business Objects for Customers and Orders in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	report.RegBusinessObject("Northwind", "Orders", orders);
	
	// Return report to calling function
	return report;
}
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.