2008-12-08 12 views
32

ASP.NET MVC'de sunucu tarafı denetimlerinin kullanılmasının no-no olduğunu biliyoruz, ancak şirketin daha önceki bir uygulama için hazırladığı uzun bir kristal raporu listesi var. Yeni ASP.NET MVC uygulamasından yararlanmak istiyorum.ASP.NET MVC'deki Crystal Reports

ASP.NET MVC'de kristal raporları kullanmak için uygun bir yol var mı? Öyleyse nasıl?

cevap

13

İş yerinde benzer bir durumumuz oldu.

çözüm Kullandığımız:

  • raporları için ayrı bir dizin
  • Biz (normal Kristal olanlar dışında) herhangi bir sorun görmedim

raporları için normal bir ASPX sayfaları oluşturun ile oluştur bu kurulum

+3

nasıl rotalardan dizini hariç yapın: daha
bu eylemi yapmak? – Odd

+0

Aslında, sadece kontrol ettim. Rotayı değiştirmeye gerek yok. – leppie

+0

Asp.net MVC'de Crystal raporu eklediyseniz, Yenileme Crystal raporu sorunuyla karşılaştınız mı? "Viewstate MAC başarısız hatası doğrulaması" ile karşı karşıya kaldınız mı? – Vikas

70

Aslında oldukça basittir. Sadece MVC proje başvuruları aşağıdakileri ekleyin:

  • :

    • CrystalDecisions.CrystalReports.Engine
    • CrystalDecisions.ReportSource

    kullanım Eylem yöntemi, aşağıdaki gibi CrystalDecisions.Shared

    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 
    
+19

Güzel - çok zarif (Aynı raporda kristal raporlar ve zarif - dünyanın son ucu) – Basic

+0

Bu işe yararsa, bu harika bir çözümdür, teşekkürler – Yablargo

+0

http İhtiyaç duyabileceğiniz daha fazla bilgi için //stackoverflow.com/questions/4294762/crystal-reports-for-visual-studio-2010-yayın. (Ben yaptım!) – Yablargo

0

Sadece bu referans ekleyin: CrystalDecisions.CrystalReports.Engine kullanarak;

using CrystalDecisions.CrystalReports.Engine; 
    public ActionResult Report() 
      { 
       List<Table> table = new List<Table>(); 
       ReportDocument rd = new ReportDocument(); 
       rd.Load(Path.Combine(Server.MapPath("~/Repport/CrystalReport1.rpt"))); 

       Response.Buffer = false; 
       Response.ClearContent(); 
       Response.ClearHeaders(); 
       Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 
       stream.Seek(0, SeekOrigin.Begin); 


       return File(stream, "application/pdf", "Suivie Historique.pdf"); 


      } 
+1

** Yorumdan bekle queue **: Kaynak kodunuzun etrafına biraz bağlam eklemenizi rica edebilir miyim? Sadece kod cevapları anlamak zor. Gönderinize daha fazla bilgi ekleyebilmeniz durumunda, okuyucunun ve gelecekteki okuyucuların yardımcı olacaktır. – RBT

İlgili konular