27 votes

Crystal Reports en ASP.NET MVC

Je sais que l'utilisation de contrôles côté serveur est interdite en ASP.NET MVC, mais nous avons une longue liste de rapports Crystal que la société a déjà produits pour une application précédente et que je voudrais utiliser pour notre nouvelle application ASP.NET MVC.

Existe-t-il un moyen approprié d'utiliser les rapports Crystal dans ASP.NET MVC ? Si oui, comment ?

63voto

coderguy123 Points 1020

C'est assez simple en fait. Il suffit d'ajouter les références suivantes à votre projet MVC :

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

utilisez la méthode Action comme ci-dessous :

  • 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");   
        }
  • 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

12voto

leppie Points 67289

Nous avions/avons une situation similaire au travail.

La solution que nous utilisons :

  • Créez un répertoire distinct pour les rapports
  • Créer des pages ASPX normales pour les rapports

Nous n'avons constaté aucun problème (en dehors des problèmes normaux de Crystal) avec cette installation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X