int*_*t-i 10 reporting-services pdfjs asp.net-core report-viewer2016 angular
有没有办法在asp.net核心网页上显示RDLC Local ReportViewer控件?
要在传统的WebForms应用程序上显示ReportViewer,以下代码可以正常工作.
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="height: 600px;">
<rsweb:ReportViewer ID="reportViewer" runat="server" Width="100%" Height="100%"></rsweb:ReportViewer>
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
我已经尝试并测试了以下组件.结果如下.
Q1.<rsweb:ReportViewer>在asp.net核心应用程序中使用的最佳方法是什么?
Microsoft没有实现或将RDLC报告查看器引入aspnet核心。相反,他们购买产品来填补空白。
完整的新闻链接-https: //blogs.msdn.microsoft.com/sqlrsteamblog/2018/04/02/microsoft-acquires-report-rendering-technology-from-forerunner-software/
链接到原始问题-https://github.com/aspnet/Home/issues/1528
这就是本质。“微软从Forerunner Software获得了报告呈现技术
我们很高兴地宣布,我们已经从Forerunner Software获得了技术,以加快对Reporting Services的投资。除其他事项外,该技术包括客户端的Reporting Services(* .rdl)报告呈现,用于查看报告的响应式UI小部件以及用于将报告集成到其他应用程序中的JavaScript SDK,这证明了我们的合作伙伴可以在此基础上实现我们的开放平台。
这对您来说是个好消息,因为我们看到了将这项技术应用于我们收到的多个反馈点的机会:
您正在寻找可以运行SSRS报告的云软件即服务(SaaS)或平台即服务(PaaS)。正如您在我们的Spring '18发行说明中可能已经看到的那样,我们正在积极致力于将SSRS报告引入Power BI云服务中,并且我们正在基于客户端渲染来实现这一目标。您可能想使用Power BI应用程序在手机上查看SSRS报告。我们相信这项技术将帮助我们提供更好,响应更快的UI,以提供报告参数值,在报告中导航,甚至可能查看报告内容。
您喜欢Report Viewer控件……但这是一个ASP.NET Web窗体控件。您需要一些可以集成到ASP.NET Core / MVC应用程序或非ASP.NET应用程序中的东西。希望借助这项技术,您可以提供可集成到任何现代应用程序中的基于客户端/基于JavaScript的报表查看器。
这些都是艰巨的任务,我们尚无可共享的时间表,但请在接下来的几个月中保持关注,因为我们始终努力与您分享我们的进展,并尽早并尽可能多地听到您的反馈。
Forerunner Software将在有限的时间内继续为现有客户提供支持。”
为了让 Jame 的解决方案起作用 - 它要求您引用完整的 .NET Framework。这是一切都很好了ASP.NET核心1和2,但是-因为每个人都应该知道现在- ASP .NET 3将不是让你引用完整的.NET框架。
目前,只能将 SSRS 托管服务器报告 (RDL) 报告与 .NET Core 一起使用。对于客户端RDLC 报告,目前只有付费的 Syncfusion 解决方案有效(我已经测试了跟踪版本)
James 的解决方案对 ASP.NET Core 3 完全无效(再次 - 只允许您引用 .NET Core - 而不是 .NET Framework)
如果问题是如何在ASP.NET Core项目上使用Microsoft Reportviewer,则无论实现细节如何,我的解决方案都是绕过实际的reportviewer控件,并将报告直接呈现为PDF或Excel。它适用于.net Core 1.1。我们使用的NuGet包是Fornax提供的Microsoft.ReportViewer.2012.Runtime。
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Reporting.WebForms;
namespace WebApplication3.Controllers
{
public class ReportController : Controller
{
private readonly IHostingEnvironment environment = null;
public ReportController(IHostingEnvironment environment)
{
this.environment = environment;
}
public IActionResult Report()
{
string mimeType;
string encoding;
string filenameExtension;
string[] streams;
Warning[] warnings;
var rv = new ReportViewer();
rv.ProcessingMode = ProcessingMode.Local;
rv.LocalReport.ReportPath = Path.Combine(environment.ContentRootPath, "Reports", "Report1.rdlc");
rv.LocalReport.Refresh();
var bytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streams, out warnings);
return File(bytes, mimeType);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15838 次 |
| 最近记录: |