发布时间 : 2025-03-10 16:40:28.250|阅读 14 次
概述:本文将探讨如何使用嵌入式查看器组件在 ASP.NET Core Web 应用程序中创建报告和仪表板的示例。
相关链接:
Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能,Stimulsoft Ultimate包含了所有内容!
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Stimulsoft.Report; using Stimulsoft.Report.Angular; using Stimulsoft.Report.Web; namespace AngularViewer.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); } } }
此外,您还应通过启用 CORS 策略和定义 Angular 的回退机制来配置 .NET 服务器。这应在Program.cs文件中完成。
Program.cs
接下来,在文件资源管理器 中打开项目文件夹,并使用npm安装必要的 Angular-client 组件。using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod(); }); }); var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); } app.UseDefaultFiles(); app.UseStaticFiles(); app.UseRouting(); app.UseCors(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Use(async (context, next) => { await next(); if (context.Response.StatusCode == 404 && !context.Request.Path.Value.StartsWith("/api")) { context.Request.Path = "/index.html"; await next(); } }); app.Run();
关闭控制台,删除ClientApp文件夹,重新打开控制台,输入以下命令:npm install stimulsoft-viewer-angular
选择CSS格式,按Enter,关闭控制台,然后导航到ClientApp文件夹。ng new ClientApp
关闭控制台。在文本编辑器中打开目录“ ...ClientApp\src\app\ ”中的app.module.ts文件并添加StimulsoftViewerModule。然后将以下代码插入app.module.ts:app.module.tsnpm install stimulsoft-viewer-angular
在文本编辑器中打开目录“ ...ClientApp\src\app\ ”中的app.component.html文件并添加AppComponent。然后将以下代码插入app.component.html:app.component.htmlimport { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { StimulsoftViewerModule } from 'stimulsoft-viewer-angular'; import { HttpClientModule } from '@angular/common/http'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, StimulsoftViewerModule, HttpClientModule, BrowserAnimationsModule, FormsModule, ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
转到 Visual Studio 并运行项目。您将看到一个带有指定报告的查看器。<stimulsoft-viewer-angular [requestUrl]="'http://localhost:5151/Viewer/{action}'" [action]="'InitViewer'" [height]="'100vh'" ></stimulsoft-viewer-angular>
---------------------------------------------------------------------------
关于慧都科技:
慧都科技是专注软件工程、智能制造、石油工程三大行业的数字化解决方案服务商。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技是Stimulsoft的在中国区的合作伙伴,Stimulsoft作为图表报表领域的优秀产品,帮助企业实现轻松构建高性能的表格报告及图表。
下载|体验更多Stimulsoft产品,请联系在线客服咨询,或拨打产品热线:023-68661681
加入图表报表技术交流QQ群(740060302),与更多小伙伴一起探讨提升开发技能。