Введение

В бухгалтерской отчетности, в целях налогового (таможенного) контроля или при международных поставках товаров, чаще всего используется счет-фактура. Этот документ, как правило, включает в себя расходы по перевозке товара, погрузочно-разгрузочным работам, страхованию, оплате экспортной пошлины, а также различные налоги (сборы) и другое. Если ваша деятельность постоянно требует создание счет-фактур, то для оптимизации работы, экономии времени и затрат, логично предположить, что легче создать шаблон документа. Используя его, вы будете менять лишь данные, избавляя себя от рутинной работы по созданию структуры счет-фактуры и ее оформлению. Создавать шаблоны можно многими способами и инструментами, но я хочу помочь вам сэкономить время в поиске этих средств. Поэтому в данной статье пойдет речь о мощном, надежном и наиболее гибком генераторе отчетов от Stimulsoft. В этом уроке, я научу Вас, как быстро создать шаблон счет-фактуры, оформить его и получить готовый документ. Это займет у вас немного времени. Я постараюсь как можно более детально описать процесс создания подобного отчета.

Основы

Программный продукт Stimulsoft Reports.Net, в котором будет создан отчет можно скачать здесь:
http://www.stimulsoft.com/downloads/StimulsoftReports.Net_2012.1_Trial.zip

Базы данных для этого урока поставляется с установкой продукта. Видео, которое показывает, как создать этот отчет доступен на Youtube.

Для того, чтобы создать счет-фактуру, следует выполнить следующие шаги:

1. Запустить дизайнер;

2. Подключить данные:
2.1. Создать Новое соединение (New Connection);
2.2. Создать Новый источник данных (New Data Source);

3. Разместить бэнд Данные (DataBand) на странице шаблона отчета;

4. Выше бэнда Данные, расположить бэнд Заголовок данных (HeaderBand). На рисунке снизу представлен пример шаблона отчета с размещение бэндов:

01

5. Произвести редактирование бэндов Данные (DataBand) и Заголовок данных (HeaderBand):
5.1. Выровнять по высоте бэнды Данные (DataBand) и Заголовок данных (HeaderBand);
5.2. Изменить значение свойств у бэнда Данные (DataBand). К примеру, установить свойство Может разрываться (Can Break) в значение истина (true), если необходимо чтобы бэнд Данные (DataBand) разрывался;
5.3. Изменить фон бэндов Данные (DataBand) и Заголовок данных (HeaderBand);
5.4. При необходимости, включить Границы (Borders) у бэндов Данные (DataBand) и Заголовок данных (HeaderBand);
5.5. Изменить цвет границы.

6. Указать источник данных у бэнда Данные (DataBand) используя свойство Источник данных (Data Source):

02

7. На бэнде Заголовок данных (Header Band) разместить текстовые компоненты с текстом Unit Name, Description, Qty, Item Price, Total;

8. На бэнде Данные (DataBand) следует расположить текcтовые компоненты с выражениями. Где выражение - это ссылка на поле данных. Разместим текстовые компоненты с выражениями: {Products.ProductName}, {Products.QuantityPerUnit}, {Products.UnitsInStock}, {Products.UnitPrice} и {Products.UnitsInStock * Products.UnitPrice};

9. Произвести редактирование Текста (Text) и Текстовых компонентов (TextBox):
9.1. Перетащить текстовые компоненты в нужное место на бэнде Данные (DataBand) и бэнде Заголовок данных (HeaderBand);
9.2. Изменить параметры шрифта текста: размер, стиль, цвет;
9.3. Выравнить текстовые компоненты по высоте и ширине;
9.4. Изменить фон текстовых компонентов;
9.5. Выравнить текст в текстовых компонентах;
9.6. Изменить значение свойств текстовых компонентов. К примеру установить свойство Перенос текста (Word Wrap) в значение истина (true), если необходимо чтобы текст переносился;
9.7. При необходимости, включить Границы (Borders) текстового компонента;
9.8. Изменить цвет границы.

На рисунке снизу представлен шаблон отчета:

03

10. Нажать на кнопку Предварительный просмотр (Preview) или вызвать окно Вьювера (Viewer), используя горячую клавишу F5 или пункт меню Предварительный просмотр (Preview). После построения отчета, все ссылки на поля данных будут заменены данными из указанных полей. При чем данные будут браться последовательно из источника данных, который был указан для данного бэнда. Количество копий бэнда Данные (Data) в построенном отчете будет равно количеству строк в источнике данных. На рисунке снизу показан построенный отчет:

04

11. Вернуться к шаблону отчета;

12. Добавить бэнд Итог данных (FooterBand) и отредактировать его;

13. На добавленном бэнде разместить текстовый компонент с выражением Items per page: {cCount(DataBand1)} и произвести редактирование текстового компонента;

14. Добавить Прямоугольник (Rectangle), таким образом, что верхние точки располагаются на бэнде Заголовок отчета (HeaderBand), а нижние на бэнде Итог данных (FooterBand);

15. Добавить кросс-примитивы, начало которых располагается на бэнде Заголовок данных, а конец на бэнде Итог данных. На рисунке снизу представлен шаблон отчета с бэндом Итог данных (FooterBand), прямоугольником и примитивами:

05

16. Добавить в шаблон отчета бэнды Заголовок отчета (ReportTitleBand) и Итог отчета (FooterBand) и отредактировать их;

17. На бэнде Итог отчета следует разместить текстовый компонент с выражением Total: {Sum(Products.UnitsInStock * Products.UnitPrice)};

18. На бэнде Заголовок отчета разместим текстовые компоненты с выражениями:
18.1. Первым будет компонент с текстом BILL TO;
18.2. Во втором текстовом компоненте укажем текст Name Street Address Address 2 City, ST ZIP Code;
18.3. В третьем компоненте, текст будет SHIP TO;
18.4. В четвертом текстовом компоненте текст будет повторятся такой же как и во втором: Name Street Address Address 2 City, ST ZIP Code;
18.5. В следующем компоненте укажем выражение Invoice #123456;
18.6. Выражение Invoice date {Today.ToString("d")} разместим в шестом компоненте на данном бэнде;
18.7. И в последнем текстовом компоненте укажем Customer ID 123;

На рисунке снизу представлен шаблон отчета:

06

19. Нажать на кнопку Предварительный просмотр (Preview) или вызвать окно Вьювера (Viewer), используя горячую клавишу F5 или пункт меню Предварительный просмотр (Preview). После построения отчета, все ссылки на источники данных будут заменены данными из указанных полей. При чем данные будут браться последовательно из источника данных, который был указан для данного бэнда. Количество копий бэнда Данные (Data) в построенном отчете будет равно количеству строк в источнике данных. На рисунке снизу представлен построенный отчет с заголовком и итогом отчета:

07

Добавление стилей

1. Вернуться к шаблону отчета;

2. Вызвать Редактор стилей (Style Designer);

На рисунке снизу представлено окно Редактора стилей (Styles Designer):

08

3. Для начала работы в редакторе стилей, необходимо нажать кнопку Добавить стиль (Add Style) и в отобразившемся меню выбрать элемент отчета, для которого будет создаваться стиль: Компонент (Component), Диаграмма (Chart) или Кросс-таблица (Cross-Tab). В данном случае, это Компонент (Component). Для того чтобы изменить фон строки следует изменить значение свойства Brush.Color, где значение данного свойства и есть цвет фона строки. На рисунке снизу представлено окно Редактора стилей (Style Designer) с созданным пользовательским стилем.

09

После того как значение свойства определено следует нажать кнопку Закрыть (Close). После этого в списке значений свойств Стиль четных строк (Even style) и Стиль нечетных строк (Odd style) появится новое значение, т.е. новый стиль четных и/или нечетных строк соответственно.

4. Построить отчет нажав на вкладку Предварительный просмотр (Preview) либо вызвать Вьювер (Viewer) использовав горячую клавишу F5 или выбрав пункт меню Предварительный просмотр (Preview). На рисунке снизу показан построенный отчет со счет-фактурой:

10

5. Вернуться к шаблону отчета;

6. Сохранить данный шаблон, к примеру, как Invoice.mrt.

Готовую и оформленную счет-фактуру, вы можете распечатать, сохранить в любом из доступных форматов файлов (список впечатляет) или отправить по e-mail. На рисунке снизу представлен список форматов файлов, доступных для сохранения или отправки по e-mail, готовой счет-фактуры:

11

Отобразить сохраненный отчет можно из Visual Studio. Для этого, добавьте следующий код в вашем проекте:
StiReport report = new StiReport();
report.Load("с:\\Invoice.mrt");
report.Show();
Теперь, когда в следующий раз, вам потребуется счет-фактура такого типа, не придется больше создавать структуру и ее оформление заново. Достаточно будет просто подключить новые данные и построить счет-фактуру. Нередко, приходится создавать более сложные конструкции счет-фактуры. К примеру, привязывание наименований к географическому положению, дате, времени, имени и т.д. Здесь и пригодятся возможности генератора отчетов от Stimulsoft. В следующий раз я покажу как легко создать счет-фактуру с параметрами в генераторе отчетов Stimulsoft.
The new versions of Windows 8 and Visual Studio 2012 are available for public usage. Naturally, it has been carefully examined by our experts. Their opinion will now be expressed by the chief specialist of the development department Anton Lozovsky:

"Our team has started working with the very first beta version of Windows 8. We tried to work on it and test new features. There have been attempts to write some code on first versions of VS.

The first demo version of Visual Studio was totally raw. It was so unreliable that refused to work stably even on computers stuffed with the top-end hardware components. Due to the fact that our team uses the latest workstations (updated last time before the official release of Windows), it is difficult to imagine how Visual Studio could behave on typical machines.

Regular hangs after simple operations, extremely inconvenient and poor interface. Very soon prereleases with fixes became available, in which the interface was improved, but the performance remained the same. This new version of the Visual Studio continued to throw errors.

There was a feeling that fixes of one problem were replaced by new ones. Prerelease versions of Windows were covered with the same problems.

Finally the version of Windows 8 became available. We downloaded it from the official website. The operating system worked much better than its previous version. Most of the errors and deficiencies have been corrected. However it is much pleasant to work in Windows 7. Together with the operating system we have downloaded a new version of Visual Studio. What can I say about it?

The appearance has undergone tremendous changes; it has become really beautiful and attractive. However, many problems are not corrected until now. While testing the beta version of Visual Studio, we identified a number of errors, wrote about them to the VS support team and they promised that the release version will fix everything. But, unfortunately, everything remains as before. The promises of the realization of requested features still remain promises.

In the previous version of Visual Studio, our product has worked steadily, without any problems and errors. Running the product on the new studio, the project behaved unexpectedly - it threw a lot of bugs and refused to work: it lost ability to compile and got lots of conflicts. Despite all these difficulties, we managed to organize its work, though left an unpleasant aftertaste from the time spent on the development, “killed” with the new version of Visual Studio.

Of course, we understand that this is only the first version. This is only the beginning of development to work with the tablet. We hope that, eventually, everything will be much better."

We offer all our blog readers to personally try out our new product for Windows 8 Stimulsoft Reports.WinRT, which will soon be available officially.
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. Как добавить Reports Designer.Web на Web страницу
2. Как показать Reports Designer.Web при нажатии на кнопку Edit
3. Как создать простой табличный отчет в Designer.Web
4. Как добавить новую связь в отчете
5. Как добавить Источник Данных в отчете
6. Как добавить таблицу в отчете
7. Предварительный просмотр и сохранение отчета


1. Как добавить Reports Designer.Web на Web страницу

  • Перетащите StiWebDesigner1 из панели инструментов на web страницу

Add Reports Designer.Web to web page

2. Как показать Reports Designer.Web при нажатии на кнопку Edit

  • Перетащите кнопку Standard ASP.NET на страницу и напишите для нее текст "Edit Report";
  • Добавьте обработчик событий для кнопки Edit и добавьте следующую строку, чтобы показать Designer.Web.
protected void btnEdit_Click(object sender, EventArgs e)
{
	StiWebDesigner1.Design(new Stimulsoft.Report.StiReport());
}
3. Как создать простой табличный отчет в Designer.Web

  • Запустите свою web страницу в Debug режиме, нажав на кнопку Debug на панели инструментов в Visual Studio или нажав кнопку F5 на Вашей клавиатуре;
  • Нажмите кнопку Edit Report;
  • Reports Designer теперь открывается в Internet Explorer.

Create a simple table Report in Designer.Web
Create a simple table Report in Designer.Web

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

  • Выберите закладку Dictionary, которая находится справа в дизайнере отчетов;
  • Нажмите на иконку New Item Icon и выберите New Connection;
  • Выберите SQL Connection и нажмите OK;
  • Напишите строку соединений для базы данных AdventureWorks;
  • Нажмите 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;
  • Укажите имя запроса в поле Name и Sales;
  • Укажите SQL запрос в поле Query Text;
  • Нажмите на Retrieve Columns, чтобы убедиться, что у Вас имеются все требуемые колонки;
  • Нажмите Ok, чтобы увидеть Sales Datasource в панели Dictionary;
  • Был использован следующий запрос в отчете:
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

6. Добавление Таблицы в отчет

  • Нажмите на иконку Menu и выберите Select New;
  • Выберите New Report with Wizard;
  • Выберите Standard Report и нажмите OK;
  • Расширьте соединение и выберите Sales в качестве источника данных;
  • Нажмите Next для выбора колонок;
  • Выберите все колонки, которые необходимо вывести;
  • Пройдите все шаги далее, либо с использованием настроек по умолчанию, либо настройте согласно своим требованиям;
  • Щелкните Ok, чтобы вывести отчет.

Add a Table to the report
Add a Table to the report
Add a Table to the report
Add a Table to the report

7. Предварительный просмотр и сохранение отчета

  • Помните, что необходимо отключить popup blocker для localhost;
  • Щелкните на закладке preview tab и выберите Preview as HTML;
  • Откроется всплывающее окно;
  • Переключитесь на окно дизайнера отчетов и щелкните на иконке меню;
  • Теперь выберите "Save As";
  • Щелкните снова Save если у Вас Demo версия;
  • Выберите любой локальный диск для сохранения отчета.

Preview and Save Report
Preview and Save Report
Preview and Save Report

Примечание:
1) Save As используется для загрузки отчета на локальный диск пользователя;
2) Save используется, чтобы сохранить отчет на стороне сервера.
В данном уроке будет показано, как просто сохранять отчет, созданный и отредактированный в 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
}