В данном уроке будет показано, как просто сохранять отчет, созданный и отредактированный в Stimulsoft Reports Designer.Web, на стороне сервера.

Stimulsoft Reports имеет дизайнер отчетов для Web, который предоставляет полный набор возможностей для редактирования отчетов в web браузере. Благодаря компоненту Designer.Web конечные пользователи могут редактировать отчеты согласно их требованиям и сохранять их локально или на сервере. Все что необходимо сделать это вставить компонент дизайнер на ASP.NET web форму и написать одну строку кода, чтобы пользователи могли редактировать существующий отчет или создавать свой собственный. Данная возможность очень полезна при необходимости произвести небольшие корректировки в отчете, такие как изменить цвет шрифта или выровнять текст или добавить поле к таблице или изменить положение нумерации страницы.

Среди возможностей Stimulsoft Reports Designer.Web можно выделить следующие:

1) Независим от платформ (запускается под Adobe Flash®);
2) Применение функции Drag and drop при редактировании отчетов;
3) Опция сохранения отчета на web сервере или на компьютере пользователя;
4) Очень полезен для внесения небольших изменений в отчет самим пользователем;
5) Очень полезен для пользователей, осуществляющих глобальную разработку.
Дополнительные ресурсы по изучению возможностей Stimulsoft Reports Designer.Web доступны здесь:
Видео уроки: http://www.stimulsoft.com/ru/videos
Документация: http://www.stimulsoft.com/ru/documentation
Загрузить последнюю версию можно здесь: http://www.stimulsoft.com/ru/downloads
Данные для примера отчета взяты из AdventureWork sample database предоставленные компанией Microsoft.
В данной статье подробно описано, как просто использовать дизайнер отчетов для Web:


1. Как добавить StiWebDesigner и другие элементы управления на web страницу
2. Как показать список при загрузке страницы
3. Как выбрать отчет из списка
4. Как показать web дизайнер отчетов
5. Как редактировать выбранный отчет
6. Как сохранить файл отчета на сервере
7. Как создать новый отчет и просмотреть его


1. Как добавить StiWebDesigner и другие элементы управления на web страницу

  • Перетащите StiWebDesigner из панели инструментов на Вашу web страницу;
  • Добавьте listbox, чтобы показать список отчетов;
  • Добавьте StiWebViewer для пользователей, чтобы просмотреть отчет, выбранный из списка;
  • Добавьте список для пользователей, чтобы ввести название отчета;
  • Добавьте кнопку для создания нового и редактирования существующего отчета.

Add StiWebDesigner and other controls to your web page

2. Как показать список при загрузке страницы

  • Сохраните все файлы отчетов в папку с отчетами;
  • Найдите все файлы в папке с отчетами, которые имеют расширение "*.mrt";
  • Вызовите функцию refreshReportsList в событии загрузки страницы.
protected void Page_Load(object sender, EventArgs e)
{
	if (!IsPostBack)
	{
		// Show list of all reports
		refreshReportsList();
	}
}

private void refreshReportsList()
{
	// Find all files with extension .mrt
	string[] reports = Directory.GetFiles(Server.MapPath("Reports"), "*.mrt");
	// Clear reports list
	lstReports.Items.Clear();
	// Loop through all files found and each file to reports list
	foreach (string reportpath in reports)
	{
		string filename = reportpath.Substring(reportpath.LastIndexOf("\\") + 1);
		lstReports.Items.Add(new ListItem(filename, reportpath));
	}
}
3. Как выбрать отчет из списка

  • Добавьте обработчик событий onclick для списка;
  • Создайте объект класса StiReport;
  • Загрузите отчет по пути, указанному в выбранном списке;
  • Установите источник отчета вьювера отчетов в new.
<asp:ListBox ID="lstReports" runat="server" AutoPostBack="True" Width="100%"
	OnSelectedIndexChanged="lstReports_SelectedIndexChanged">
</asp:ListBox>
protected void lstReports_SelectedIndexChanged(object sender, EventArgs e)
{
	if (lstReports.SelectedIndex > -1)
	{
		// Load report from the file path given in the selected item
		StiReport oReport = new StiReport();
		oReport.Load(lstReports.SelectedValue);
		
		// Set report viewer's source to the loaded report
		StiWebViewer1.Report = oReport;
		StiWebViewer1.DataBind();
	}
}
4. Как показать web дизайнер отчетов

  • Добавьте обработчик событий onclick для кнопки "Design New Report";
  • Если отчет уже существует, то загружается файл отчета и разрешается пользователям редактировать отчет;
  • Если отчет уже не существует, то создается новый файл отчета по имени файла.
protected void btnDesignNewReport_Click(object sender, EventArgs e)
{
	StiReport oNewRep = new StiReport();
	
	// Check if a report with the same name already exists
	string[] files = Directory.GetFiles(Server.MapPath("Reports"), txtNewReportName.Text + ".mrt");
	
	if (files.Length == 0)
	{
		// If the report deos not exist then set the report name
		oNewRep.ReportName = txtNewReportName.Text;
	}
	else
	{
		// If the report already exists then load the report into the designer
		oNewRep.Load(files[0]);
	}
	
	StiWebDesigner1.Design(oNewRep);
}
5. Как редактировать выбранный отчет

  • Добавьте обработчик событий onclick для кнопки "Edit Selected Report";
  • Проверьте выбран ли пункт;
  • Загрузите файл отчета из пути файла, данного выбранным значением;
  • Установить источник дизайнера отчетов на загруженный файл отчета.
protected void btnEditReport_Click(object sender, EventArgs e)
{
	if (lstReports.SelectedIndex > -1)
	{
		// Load the selected file
		StiReport oReport = new StiReport();
		oReport.Load(lstReports.SelectedValue);
		StiWebDesigner1.Design(oReport);
	}
}
6. Как сохранить файл отчета на сервере

  • В элементе управления StiWebDesigner запускается событие OnSaveReport, когда пользователь нажимает иконку сохранения в Designer.Web;
  • Добавьте обработчик событий для события OnSaveReport, которое принимает StiSaveReportEventArgs, как аргумент события;
<cc2:StiWebDesigner ID="StiWebDesigner1" runat="server" OnSaveReport="StiWebDesigner1_SaveReport" />
  • Получаем объект Report из аргументов события;
  • Сохраняем отчет в нужную директорию с именами отчетов, такими же как имена отчетов;
  • Обновляем список отчетов.
protected void StiWebDesigner1_SaveReport(object sender,
	Stimulsoft.Report.Web.StiWebDesigner.StiSaveReportEventArgs e)
{
	StiReport oRep = e.Report;
	e.Report.Save(Server.MapPath("Reports\\" + oRep.ReportName + ".mrt"));
	refreshReportsList();
}
7. Как создать новый отчет и просмотреть его

  • Нажимаем иконку "Start debugging" в Visual Studio или кнопку "F5";
  • Указываем имя для отчета, который был создан;
  • Добавьте метку для отчета и напишите "Hello World";
  • Нажмите на иконку Save, чтобы сохранить файл отчета на сервере;
  • Нажмите на иконку Menu и нажмите exit, чтобы вернуться к списку отчетов;
  • Нажмите F5, чтобы обновить список отчетов;
  • Выберите только что созданный отчет из списка отчетов, чтобы его просмотреть.

Create new report and view it 1
Create new report and view it 2
Create new report and view it 3
Create new report and view it 4
Create new report and view it 5
Create new report and view it 6
Примечание:
1) Save As используется для загрузки отчета на локальный диск пользователя;
2) Save используется, чтобы сохранить отчет на стороне сервера.
Stimulsoft предоставляет встроенные компоненты, которые позволяют разработчику программно экспортировать свои отчеты во множество форматов документов. Исходя из моего опыта, пользователь обычно просит добавить кнопку экспорта на Web страницу или форму. Экспорт при помощи кода также обычно нужен в пакетных процессах работы с отчетами. Особенно когда отчеты должны формироваться по расписанию и отправлены по e-mail или сохранены на локальных дисках или загружены на sharepoint / ftp сервер. Ниже приведен список форматов, которые поддерживает Stimulsoft Reports.Net. При этом нет необходимости использовать COM компоненты или продукты других компаний.

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

Demo версию Stimulsoft Reports.Net можно скачать с сайта компании Стимулсофт: http://www.stimulsoft.com/ru/downloads
Необходимо проделать следующие шаги, чтобы создать кросс-отчет и экспортировать его в PDF, Word, Excel и другие форматы.


1. Поддерживаемые форматы экспортов
2. Настройки экспортов
3. Как добавить отчет на Web страницу
4. Как добавить новую связь в отчет
5. Как добавить Источник Данных в отчете
6. Как добавить Таблицу и Заголовок страницы в отчете
7. Как добавить отчет на Web страницу
8. Событие Page load
9. Экспорт отчета при помощи кнопки Export


1. Поддерживаемые форматы экспортов

  • PDF (Adobe Portable Document Format);
  • Microsoft XPS (XML Paper Specification);
  • HTML (HyperText Markup Language);
  • MHT;
  • Text;
  • Rich Text;
  • Microsoft Word 2007;
  • OpenDocument Writer;
  • Microsoft Excel;
  • Microsoft Excel XML;
  • OpenDocument Calc;
  • CSV (Comma-separated values);
  • dBase DBF (DataBase File);
  • XML (Extensible Markup Language);
  • BMP (Bitmap);
  • GIF (Graphics Interchange Format);
  • JPEG (Joint Photographic Experts Group);
  • PCX (Pacific Exchange);
  • PNG (Portable Network Graphics);
  • TIFF (Tagged Image File Format);
  • Windows Metafile.


2. Настройки экспортов

Stimulsoft Reports.Net имеет встроенную поддержку экспорта файла на диск, используя функцию ExportDocument для экземпляра объекта StiReport. Структура отчета также имеет класс StiReportResponse для экспорта, чтобы пользователи могли загружать файлы построенных отчетов в Web приложении. Ниже приведены некоторые свойства для экспорта отчетов.

1) Флажок openDialog:
Если флажок установлен в true, это приведет к тому, что пользователь будет вынужден загружать файл перед открытием. Если флажок установлен в false, то это позволит браузеру открыть приложение, необходимое для вывода отчета. Например, если формат экспорта PDF и флажок установлен в false, то откроется Abobe Reader® в браузере, если он установлен на компьютере клиента. Если флажок установлен в true, то отчет загрузится как файл, даже если Abobe Reader® установлен на компьютере клиента.

Пример:
//set the StiReport report object
StiReport oSR = stiBooksReport.GetReport();
// Export report to pdf and force user to download the file
StiReportResponse.ResponseAsPdf(this, oSR, false);
// Export report to pdf and open Adobe Reader if available
StiReportResponse.ResponseAsPdf(this, oSR);
На рисунке ниже показано, что произойдет, если флажок openDialog установлен в false. В данном случае PDF документ откроется в Acrobat Reader.

PDF opens in the embedded Acrobat Reader

На рисунке ниже показано, что произойдет, если флажок openDialog установлен в true. В этом случае отчет можно Открыть, Сохранить или Отменить операцию.

Open, Save or Cancel depending on the browser

2) StiPagesRanges
Если пользователь хочет определить, какие страницы нужно экспортировать, имеется возможность передачи объекта класса StiPagesRange, как параметра в функцию экспорта. С классом stiPagesRange пользователь может экспортировать только одну страницу или несколько страниц в зависимости от условия.

Пример:
//set the StiReport report object
StiReport oSR = stiBooksReport.GetReport();
// Export page 1
StiPagesRange oSPR = new StiPagesRange(1);
// Export report to pdf and open the file in browser
StiReportResponse.ResponseAsPdf(this, oSR, false, oSPR);

//set the StiReport report object
StiReport oSR = stiBooksReport.GetReport();
// Export pages 1 to 10
StiPagesRange oSPR = new StiPagesRange("1-10");
// Export report to pdf and open the file in browser
StiReportResponse.ResponseAsPdf(this, oSR, false, oSPR);
3) StiPdfExportSettings
Этот параметр позволяет устанавливать дополнительные свойства экспорта:;
a) Compression flag – Включить/Выключить компрессию PDF файла
b) Creator string – Установить имя приложения;
c) Image Quality – Установить качество изображения;
d) Image Resolution – Установить разрешение изображения;
e) Allow embedded fonts – Разрешить внедрение шрифтов в PDF;
f) Keywords – Ключевые слова;
g) Password – PDF пароль;
h) Digital Certificates – Включить/Выключить цифровую подписи и сертификаты;
i) Page Range – Диапазон страниц для экспорта.

4) StiExcelExportSettings
Этот параметр можно использовать при экспорте в Excel. Можно устанавливать следующие дополнительные свойства;
a) ExportDataOnly – Экспортировать только данные без форматирования и изображений;
b) ExportEachPageToSheet – Экспортировать каждую страницу шаблона отчета в новый лист Excel;
c) ExportObjectFormatting – Экспортировать форматирование для текста, изображений и других объектов;
d) ExportPageBreaks – Экспортировать перенос страницы для печати листов;
e) ImageQuality – Установить качество изображения;
f) ImageResolution – Установить разрешение изображения;
g) PageRange – Установить диапазон страниц для экспорта;
h) UseOnePageHeaderAndFooter – Использовать только один заголовок и подвал для целого листа;

На рисунке Export Data Only установлено в false.

Export Data only is set to false

Export Data Only установлено в true

Export Data only is set to true

3. Как добавить отчет на Web страницу

  • Перетащите StiWebReport из toolbox на Вашу Web страницу;
  • Щелкните на Стрелке, расположенной в верхнем правом углу StiWebReport1, чтобы показать задачи StiWebReport;
  • Щелкните на Design Report, чтобы открыть дизайнер отчета.

Add report to your web page

4. Как добавить новую связь в отчет

  • Щелкните закладку Dictionary справа в дизайнере отчетов;
  • Щелкните New Item и выберите New Connection;
  • Выберите SQL Connection и щелкните OK;
  • Напишите connection string для MS Access Books базы данных;
  • Щелкните кнопку Test, чтобы убедиться, что строка соединения правильная.

Add a new connection to the report
Add a new connection to the report

5. Как добавить Источник Данных в отчете

  • Щелкните на New Item на панели Dictionary и выберите New Data Source;
  • Выберите Данные из Sql Connection и щелкните Ok;
  • Напишите имя запроса Sales в поле Name;
  • Напишите SQL запрос в поле Query Text;
  • Щелкните Retrieve Columns, чтобы убедиться, что получены все требуемые колонки;
  • Щелкните Ok, чтобы увидеть источник данных Datasource в панели Dictionary;
  • Данный запрос использован в отчете;
  • Назовите источник данных, которое будет использовано в дальнейшем.
Select * from Books
Add a Data Source to the report
Add a Data Source to the report

6. Как добавить Таблицу и Заголовок страницы в отчете

  • Щелкните на источник данных AllBooks и перетащите его в отчет;
  • Щелкните на инструменте Text на тулбаре и щелкните на Заголовке страницы, чтобы вставить label;
  • Отформатируйте label по Вашим требованиям, он будет выводиться как заголовок для каждого отчета.

Add Table and Page Header to the report

7. Как добавить отчет на Web страницу

  • Постройте отчет при помощи Дизайнера отчетов и сохраните файл отчет в нужное место ;
  • Перетащите StiWebReport из toolbox на Web страницу;
  • Щелкните на Стрелку, расположенную в правом верхнем углу StiWebReport1, чтобы показать задачи StiWebReport;
  • Щелкните на Open Report from File;
  • Найдите свой отчет нажмите Open; отчет теперь загрузился из файла шаблона;
  • Добавьте кнопки для экспорта в PDF (ShowDialog стоит в false), экспорта в PDF, экспорта в Word и экспорта в Excel.

Add report to your web page

8. Событие Page load

  • Получите объект отчета из StiWebReport;
  • Присвойте отчет StiWebViewer, чтобы построить и вывести отчет.
protected void Page_Load(object sender, EventArgs e)
{
	// ignore the page request if images are beign loaded for report viewer
	if (stiRepViewerBooks.IsImageRequest) return;
	if (!IsPostBack)
	{
		//set the StiReport report object when page loads for the first time
		stiRepViewerBooks.Report = stiBooksReport.GetReport();
	}
}
9. Экспорт отчета при помощи кнопки Export

  • Установите обработчик событий для каждой кнопки отчета в btnExport_Click;
  • Вызовите функцию экспорта StiReportResponse;
  • Чтобы экспортировать отчет нужно один раз нажать на кнопку Export и пользователь либо увидит окно прогресса экспорта либо нет. Это зависит от параметра ShowDialog метода ResponseAsPdf.
protected void btnExport_Click(object sender, EventArgs e)
{
	StiReport oSR = stiBooksReport.GetReport(); //set the StiReport report object
	oSR.Render(false);
	
	if (sender == btnExportPdfShowDialogIsfalse)
		StiReportResponse.ResponseAsPdf(this, oSR, false); // Export report as PDF with showDialog false
	if (sender == btnExportPdf)
		StiReportResponse.ResponseAsPdf(this, oSR); // Export report as PDF with showDialog true
	if (sender == btnExportWord)
		StiReportResponse.ResponseAsRtf(this, oSR); // Export report as a Word document
	if (sender == btnExportExcel)
		StiReportResponse.ResponseAsXls(this, oSR); // Export report as an Excel Sheet
}
Stimulsoft Reports предоставляет собой набор мощных инструментов по созданию отчетов для Microsoft Visual Studio .NET 2005 и 2008; эти инструменты доступны для Windows Forms, а также Web-форм. Они имеют множество полезных функций, таких как простой в использовании дизайнер отчетов и встроенная поддержка экспорта в PDF, Word, Excel и другие форматы. Crystal Report и Microsoft отчеты больше подходят для каждодневной отчетности, но если Вы хотите создавать отчеты с кросс-таблицами и детализацией, AJAX, поддержкой штрих-кодов и возможностью подключения к более чем одному источнику отчета одновременно, то Stimulsoft Reports является очень хорошим решением. Они также имеют функцию, где пользователи могут создавать свои собственные AdHoc отчеты. Все эти возможности делают Stimulsoft Reports хорошим выбором для отчетов бизнес-аналитики.

В этом уроке я покажу, как создать простой отчет с кросс-таблицей, отобразить его на Web-странице и экспортировать в Word, Excel и PDF без написания единой строчки кода.

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

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

Следующие шаги необходимы для того, чтобы создать отчет с кросс-таблицей и экспортировать его в PDF, Word, Excel и другие форматы


1. Добавить отчет на свою Web-страницу
2. Добавить новое соединение в отчет
3. Добавить источник данных в отчет
4. Добавить кросс-таблицу в отчет
5. Загрузить отчет из файла
6. Экспортировать отчет в PDF


1. Добавление отчета на свою Web-страницу

  • Перетащите StiWebReport с панели инструментов на свою Web-страницу;
  • Нажмите на стрелку в правом верхнем углу в StiWebReport1, чтобы отобразить задачи StiWebReport;
  • Нажмите на Design Report, чтобы открыть дизайнер отчетов.

Add report to your web page

2. Добавление нового соединения в отчет

  • Найдите Dictionary справа в дизайнере отчетов;
  • Нажмите значок New Item и выберите New Connection;
  • Выберите тип Sql соединения и нажмите OK;
  • Введите строку подключения к базе данных AdventureWorks;
  • Нажмите Test, чтобы убедиться, в правильности строки соединения.

Add a new connection to the report
Add a new connection to the report

3. Добавление источника данных в отчет

  • Нажмите значок New Item в Dictionary и выберите New Data Source;
  • Выберите данные из Sql соединения и нажмите Ok;
  • Введите имя запроса в поле Name as Sales;
  • Введите запрос SQL в текстовом поле запросов;
  • Нажмите на кнопку Получить колонки подтверждая, что у вас есть все необходимые колонки;
  • Нажмите Ok, чтобы увидеть источник данных Sales в Словаре;
  • Следующий запрос был использован в отчете.
SELECT
,[SalesOrderID]
,[RevisionNumber]
,[OrderDate]
,[DueDate]
,[ShipDate]
,[Status]
,[OnlineOrderFlag]
,[SalesOrderNumber]
,[PurchaseOrderNumber]
,[AccountNumber]
,[CustomerID]
,[ContactID]
,[SalesPersonID]
,st Name
,[BillToAddressID]
,[ShipToAddressID]
,[ShipMethodID]
,[CreditCardID]
,[CreditCardApprovalCode]
,[CurrencyRateID]
,[SubTotal]
,[TaxAmt]
,[Freight]
,[TotalDue]
,[Comment]
FROM [AdventureWorks].[Sales].[SalesOrderHeader] soh
Inner join [AdventureWorks].[Sales].[SalesTerritory] st on soh.TerritoryID = st.TerritoryID
Add a Data Source to the report
Add a Data Source to the report

4. Добавление кросс-таблицы в отчет

  • Нажмите на значок Cross Bands на правой панели инструментов и выберите кросс-таблицу;
  • Перетащите кросс-таблицу в отчет;
  • Появится окно дизайнера кросс-таблицы;
  • Выберете источник данных Sales в выпадающем списке;
  • Добавить OrderDate в списке колонок и изменить отображаемое значение собственности и стоимости имущества для {Format("{0:yyyy}", Sales.OrderDate)} показать только order year;
  • Добавить имя в список строк и TotalDue в поле суммирования;
  • Нажмите OK для сохранения изменений;
  • Нажмите F5 чтобы увидеть отчет;
  • Этот отчет показывает сумму от продажа по годам, также выдается итог по каждой строке и столбцу;
  • Сохраните отчет как Sales.mrt и закройте дизайнер отчетов.

Add a Cross-Tab to the report
Add a Cross-Tab to the report
Add a Cross-Tab to the report
Add a Cross-Tab to the report

5. Загрузка отчета из файла

  • Нажмите на стрелку справа в объекте StiWebReport1 aspx странице и выберите Открыть отчет из файла;
  • Найдите местоположение файла .mrt, выделите его и нажмите кнопку Открыть;
  • Просмотрите отчет во вьювере;
  • Перетащите объект StiWebViewer на страницу туда, где уже существует объект Stiwebreport1.
  • Добавьте следующий код на страницу в событие загрузки страницы.
protected void Page_Load(object sender, EventArgs e)
{
	if (StiWebViewer1.IsImageRequest) return;
	if (!Page.IsPostBack)
	{
		Stimulsoft.Report.StiReport oRep = StiWebReport1.GetReport();
		StiWebViewer1.Report = oRep;
	}
}
  • Первая строка требуется, как часть stireports framework;
  • Второе, если оператор используется для загрузки отчета только один раз при загрузке страницы и две строки в заявлении, если установить отчет Источник вьювера отчетов;
  • Нажмите F5 для того, чтобы увидеть отчет как Web-отчет.

Load the Report from file
Load the Report from file

6. Экспорт отчета в PDF

  • Нажмите сохранить и выберете Adobe PDF;
  • Пользователи могут экспортировать отчеты в следующие форматы:
  • Не требуются внешние библиотеки и дополнительное кодирование.

Export the report to PDF
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 хорошим выбором для отчетов бизнес-аналитики.

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

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

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

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


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


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

  • Убедитеcь, что вы используете .NET Framework версия 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);
  • Создайте новый объект StiReport и загрузите отчет из "C:\MyReport.mrt" если файл существует (В этом уроке мы зафиксировали местоположение файла отчета для простоты);
  • Зарегистрировать список клиентов с объектом отчет;
  • Вызвать функцию проектирования объекта отчета, чтобы запустить дизайнер.

Register Business Objects with Report Designer
Register Business Objects with Report Designer
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 Designer 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 from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	nw.Dispose();
	
	// Register Business Objects for Customers in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	
	// Return report to calling function
	return report;
}
4. Разработка нового отчета с использованием Business Objects

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

Design new report using Business Objects
Design new report using Business Objects
Design new report using Business Objects
Design new report using Business Objects

5. Запустите новый отчет с использованием Business Objects

  • Добавьте обработчик событий для кнопки выполнить отчет;
  • Добавьте код, чтобы получить список customers, использующих модель Northwind (Для простоты мы получаем список всех клиентов. Обратите внимание на следующие статьи, предоставляемые Microsoft http://msdn.microsoft.com/en-us/library/bb738636.aspx);
  • Создайте новый объект StiReport и загрузите определенный отчет из C:\MyReport.mrt, если файл существует (В этом уроке мы зафиксировали местоположение файла отчета для простоты);
  • Регистрируйте список customers с объектом отчет;
  • Вызовите функцию отображения объекта отчет для запуска просмотра отчетов.
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 from database using ADO.net Enity data model
	NorthWindEntities nw = new NorthWindEntities();
	List customers = nw.Customers.ToList();
	nw.Dispose();
	
	// Register Business Objects for Customers in the report
	report.RegBusinessObject("Northwind", "Customers", customers);
	
	// Return report to calling function
	return report;
}
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;
}