ASP.NET MVC中的Crystal Reports

Odd*_*Odd 35 asp.net-mvc crystal-reports

我知道在ASP.NET MVC中使用服务器端控件是禁忌,但我们有一长串的水晶报告,该公司已经为之前的应用程序生成了我想要用于新ASP的水晶报告. NET MVC应用程序.

是否有适当的方法在ASP.NET MVC中使用水晶报表?如果是这样,怎么样?

cod*_*123 74

实际上很简单.只需添加以下对MVC项目的引用:

  • CrystalDecisions.CrystalReports.Engine
  • CrystalDecisions.ReportSource
  • CrystalDecisions.Shared

使用如下的Action方法:

  • C# :

    using CrystalDecisions.CrystalReports.Engine;
    
    public ActionResult Report()
        {
            ReportClass rptH = new ReportClass();
            rptH.FileName = Server.MapPath("[reportName].rpt");
            rptH.Load();
            rptH.SetDataSource([datatable]);
            Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            return File(stream, "application/pdf");   
        }
    
    Run Code Online (Sandbox Code Playgroud)
  • VB.NET:

     Imports CrystalDecisions.CrystalReports.Engine
    
     Public Function Report() As ActionResult
        Dim rptH As New ReportClass()
        rptH.FileName = Server.MapPath("[reportName].rpt")
        rptH.Load()
        rptH.SetDataSource([datatable])
        Dim stream As IO.Stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
        Return File(stream, "application/pdf")
     End Function
    
    Run Code Online (Sandbox Code Playgroud)

  • 很好 - 非常优雅(Crystal在同一个对话中报道和优雅 - 提示世界末日) (19认同)

lep*_*pie 15

我们在工作中遇到过类似的情况.

我们使用的解决方案:

  • 为报告创建单独的目录
  • 为报告创建正常的ASPX页面

我们还没有看到任何问题(除了正常的Crystal之外).

  • 如何从路由中排除目录? (3认同)