Stimulsoft Reports
Генератор отчетов для Angular
Генератор отчётов, разработанный для работы с фреймворком Angular. Клиентская часть совместима со всеми активно поддерживаемыми версиями Angular и содержит всё необходимое для создания, редактирования, просмотра и экспорта отчётов. Серверная сторона продукта использует .NET Framework 4.7.2 / .NET 6 / .NET 8 и Java.Нативная Angular-отчётность
Создавайте профессиональные отчёты и дашборды для ваших Angular-приложений. Гибкий генератор Stimulsoft позволяет визуализировать данные, выполнять расчёты, группировку и сортировку, а также настраивать оформление документов.Loading...
Как установить клиентскую часть
Быстрый старт за пару минут с использованием всего нескольких строк кода. Скачайте npm-пакеты и легко интегрируйте генератор отчетов для Angular в ваше приложение. Создавайте, просматривайте и экспортируйте интерактивные отчеты с помощью мощного дизайнера отчетов и компонентов визуализации данных. bash
npm install stimulsoft-viewer-angular
npm install stimulsoft-designer-angular
Как установить серверную часть
Быстрая настройка серверной стороны для вашего приложения. Установите нужный пакет и добавьте несколько строк кода для настройки контроллера. Серверная часть построена на ASP.NET MVC, .NET или Java и обеспечивает полную функциональность движка отчетов. bash
dotnet add package Stimulsoft.Reports.Angular
Просмотр отчётов
Встраивайте готовые отчёты прямо в ваше Angular-приложение с помощью специализированного вьювера. Этот компонент полностью интегрируется в экосистему фреймворка, обеспечивая быстрый и удобный показ документов без перезагрузки страницы. Пользователи получают доступ к интерактивному просмотру, поиску по содержимому и масштабированию — всё это в едином интерфейсе, который органично вписывается в ваше приложение для эффективной работы с отчётами и визуализации данных. app.component.html
<stimulsoft-viewer-angular
[requestUrl]="'http://localhost:60801/Viewer/{action}'"
[action]="'InitViewer'"
[height]="'100vh'">
</stimulsoft-viewer-angular>
Экспорт отчетов
Экспортируйте готовые отчёты в самые востребованные форматы: PDF, Excel, Word, HTML, CSV, XML, JSON, RTF, OpenDocument и текстовые файлы. Гибкие инструменты экспорта, встроенные в Angular-компоненты Stimulsoft, позволяют легко интегрировать выгрузку данных в любые бизнес-процессы. Настраивайте параметры экспорта – выбор страниц, ориентацию, сжатие – и получайте результат в нужном виде без лишних действий. app.component.html
<input
type="button"
(click)="viewer.api.export('Pdf', { ImageResolution: 200 })"
value="Export to PDF"
/>
<stimulsoft-viewer-angular
#viewer
[requestUrl]="'http://localhost:60801/Viewer/{action}'"
[action]="'InitViewer'"
[height]="'100vh'">
</stimulsoft-viewer-angular>
Создание отчётов
Отчёты из кода – простота в каждой детали. Встраивайте генерацию отчётов в ваше приложение: используйте знакомый C# или JavaScript, чтобы подключать данные, настраивать макеты и экспортировать результаты в PDF, Excel, Word и другие форматы. app.component.html
<stimulsoft-designer-angular
#designer
*ngIf="!showViewer"
[requestUrl]="'http://localhost:60801/api/designer'"
[height]="'100%'"
[width]="'100%'"
(designerLoaded)="this.designer.designerEl.nativeElement.style.height='100%'">
Loading designer...
</stimulsoft-designer-angular>
Серверная обработка отчётов на ASP.NET или Java
Серверная часть Stimulsoft для Angular построена на платформе ASP.NET или Java и работает в Windows, macOS и Linux. Все ресурсоёмкие задачи – загрузка шаблонов, рендеринг, вычисления и экспорт в различные форматы — вынесены на сервер, что разгружает клиентскую часть и повышает общую производительность приложения. Решение поддерживает .NET 6, .NET 8, .NET 10 и все последующие версии, а также Java 8+, включая приложения на чистой Java и с использованием Spring Boot, обеспечивая стабильную работу в современных корпоративных средах. ViewerController.cs
using Microsoft.AspNetCore.Mvc;
using Stimulsoft.Report;
using Stimulsoft.Report.Angular;
namespace Integrating_the_Report_Viewer_into_an_Application.Controllers
{
[Controller]
public class ViewerController : Controller
{
static ViewerController()
{
// How to Activate
//Stimulsoft.Base.StiLicense.Key = "6vJhGtLLLz2GNviWmUTrhSqnO...";
//Stimulsoft.Base.StiLicense.LoadFromFile("license.key");
//Stimulsoft.Base.StiLicense.LoadFromStream(stream);
}
[HttpPost]
public IActionResult InitViewer()
{
var requestParams = StiAngularViewer.GetRequestParams(this);
var options = new StiAngularViewerOptions();
options.Actions.GetReport = "GetReport";
options.Actions.ViewerEvent = "ViewerEvent";
options.Appearance.ScrollbarsMode = true;
return StiAngularViewer.ViewerDataResult(requestParams, options);
}
[HttpPost]
public IActionResult GetReport()
{
var report = StiReport.CreateNewReport();
var path = StiAngularHelper.MapPath(this, $"Reports/MasterDetail.mrt");
report.Load(path);
return StiAngularViewer.GetReportResult(this, report);
}
[HttpPost]
public IActionResult ViewerEvent()
{
return StiAngularViewer.ViewerEventResult(this);
}
}
}
package com.stimulsoft.demo;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.stimulsoft.base.json.JSONObject;
import com.stimulsoft.base.mail.StiMailProperties;
import com.stimulsoft.report.StiReport;
import com.stimulsoft.report.StiSerializeManager;
import com.stimulsoft.web.proxyee.StiHttpServletRequest;
import com.stimulsoft.web.proxyee.StiHttpServletResponse;
import com.stimulsoft.webviewer.StiAngularViewerHandler;
import com.stimulsoft.webviewer.StiWebViewerOptions;
import com.stimulsoft.webviewer.servlet.StiWebViewerActionServletHelper;
public class StiAngularViewerActionServlet extends HttpServlet implements StiAngularViewerHandler {
private static final long serialVersionUID = 2759116620736251447L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processing(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processing(request, response);
}
protected void processing(HttpServletRequest request, HttpServletResponse response) {
StiWebViewerActionServletHelper.processing(new StiHttpServletRequest(request, this), new StiHttpServletResponse(response));
}
public StiWebViewerOptions getOptions(StiHttpServletRequest request, StiHttpServletResponse response) {
StiWebViewerOptions options = new StiWebViewerOptions();
options.getAppearance().setScrollbarsMode(true);
return options;
}
public StiReport getReport(StiHttpServletRequest request, StiHttpServletResponse response, JSONObject viewerProperties) {
try {
File reportFile = new File(request.getSession().getServletContext().getRealPath("reports\\" + viewerProperties.getString("reportName")));
StiReport report = StiSerializeManager.deserializeReport(reportFile);
report.render();
return report;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public StiMailProperties getMailProperties(StiHttpServletRequest request, StiHttpServletResponse response) {
StiMailProperties mailProperties = new StiMailProperties();
// fill necessary fields
return mailProperties;
}
}
package com.stimulsoft.demo;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.stimulsoft.base.json.JSONObject;
import com.stimulsoft.base.mail.StiMailProperties;
import com.stimulsoft.report.StiReport;
import com.stimulsoft.report.StiSerializeManager;
import com.stimulsoft.web.proxyee.StiHttpServletRequest;
import com.stimulsoft.web.proxyee.StiHttpServletResponse;
import com.stimulsoft.webviewer.StiAngularViewerHandler;
import com.stimulsoft.webviewer.StiWebViewerOptions;
import com.stimulsoft.webviewer.servlet.StiWebViewerActionServletHelper;
@RestController
public class StiViewerController implements StiAngularViewerHandler {
@RequestMapping("/webviewer/**")
public void StiWebViewer(HttpServletRequest request, HttpServletResponse response) {
StiWebViewerActionServletHelper.processing(new StiHttpServletRequest(request, this), new StiHttpServletResponse(response));
}
public StiWebViewerOptions getOptions(StiHttpServletRequest request, StiHttpServletResponse response) {
StiWebViewerOptions options = new StiWebViewerOptions();
options.getAppearance().setScrollbarsMode(true);
return options;
}
public StiReport getReport(StiHttpServletRequest request, StiHttpServletResponse response, JSONObject viewerProperties) {
try {
File reportFile = new ClassPathResource(viewerProperties.getString("reportName")).getFile();
StiReport report = StiSerializeManager.deserializeReport(reportFile);
report.render();
return report;
} catch (Exception e) {
return null;
}
}
public StiMailProperties getMailProperties(StiHttpServletRequest request, StiHttpServletResponse response) {
StiMailProperties mailProperties = new StiMailProperties();
// fill necessary fields
return mailProperties;
}
}
