Сегодня мы подробно разберём экспорт дашборда и его элементов из кода, а также расскажем о доступных форматах экспорта, с которых и начнём.

Доступные форматы экспорта

В наших продуктах доступно множество форматов экспорта для приложений, написанных на различных платформах. Например, для JavaScript и PHP приложений доступен экспорт дашборда или его элемента в HTML, MS Excel и PDF. Для остальных платформ также доступен экспорт во многие форматы изображений: PNG, JPEG, SVG, BMP и другие. Кроме того, во всех продуктах реализована возможность экспортирования дашборда в файлы данных: JSON, XML, CSV и другие.

Экспорт дашборда в WIN/WPF-приложения

Для экспорта построенного дашборда из Windows-приложения достаточно использовать следующий код:
private void Button1_Click(object sender, EventArgs e)
{
	var report = StiReport.CreateNewDashboard();
	report.Load("Reports\\Vehicle_Production.mrt");

	report.ExportDocument(StiExportFormat.Pdf, "Vehicle_Production.pdf");
}
В данном примере экспорт будет осуществлён в формате PDF и сохранён в указанный файл. Метод ExportDocument осуществляет экспортирование всего дашборда в указанный формат, в качестве результата может быть файл, поток или байтовый массив.

Для изменения настроек экспорта, достаточно передать класс настроек в качестве аргументов указанного метода:
private void Button1_Click(object sender, EventArgs e)
{
	var report = StiReport.CreateNewDashboard();
	report.Load("Reports\\Vehicle_Production.mrt");

	var settings = new StiPdfDashboardExportSettings();
	report.ExportDocument(StiExportFormat.Pdf, "Vehicle_Production.pdf", settings);
}

Экспорт дашборда в Web-приложения

Для экспорта дашборда из кода в Web-приложении можно воспользоваться тем же методом, который указан выше для Windows-приложений. Однако в этом случае экспортированный дашборд будет сохранён на стороне сервера.

Если требуется загрузить экспортированный дашборд на сторону клиентского компьютера при помощи Web-браузера, нужно использовать следующий код (пример для ASP.NET-приложения):
protected void ButtonExport_Click(object sender, EventArgs e)
{
	var report = StiReport.CreateNewDashboard();
	var path = Server.MapPath("Reports/Vehicle_Production.mrt");
	report.Load(path);

	StiReportResponse.ResponseAsPdf(report);
}
Класс StiReportResponse содержит все необходимые методы для экспортирования дашборда в различные форматы. В качестве аргументов могут быть переданы настройки экспортирования.

Для Web-приложений, разработанных с использованием ASP.NET MVC, предусмотрен класс StiMvcReportResponse; для .NET Core-based Web-приложений – класс StiNetCoreReportResponse. Эти классы содержат такой же набор методов.

Экспорт элемента дашборда

Может возникнуть ситуация, при которой необходимо экспортировать лишь часть дашборда, отдельный его элемент. Пример кода для экспорта таблицы дашборда:
private void Button1_Click(object sender, EventArgs e)
{
	var report = StiReport.CreateNewDashboard();
	report.Load("Reports\\Vehicle_Production.mrt");

	var element = report.GetComponentByName("TableList") as IStiElement;
	var settings = new StiPdfDashboardExportSettings();
	//var stream = StiDashboardExportTools.ExportToStream(element, settings);
	StiDashboardExportTools.ExportToFile(element, "d:\TableList.pdf", settings);
}
В этом примере из дашборда берется элемент по его имени и экспортируется в файл в PDF формате. В данном случае формат экспорта зависит от переданных настроек в метод экспортирования элемента дашборда. Класс StiDashboardExportTools дополнительно содержит методы для экспорта в поток или байтовый массив. Обратите внимание!

При экспортировании отдельного элемента дашборда, содержащего много строк информации, например, таблицы или списка, все строки элемента будут развернуты целиком на такое количество страниц, которое потребуется. При экспортировании дашборда целиком будет отображено столько строк, сколько поместилось в макет дашборда, поместившийся на одной странице заданного размера.
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.