2008-12-08 11 views
32

में क्रिस्टल रिपोर्ट्स मुझे पता है कि सर्वर-साइड कंट्रोल का उपयोग एएसपी.नेट एमवीसी में नो-नो है, हालांकि हमारे पास क्रिस्टल रिपोर्ट की एक लंबी सूची है कि कंपनी पहले से ही पिछले एप्लिकेशन के लिए तैयार है मैं अपने नए एएसपी.नेट एमवीसी अनुप्रयोग के लिए उपयोग करना चाहता हूं।एएसपी.नेट एमवीसी

क्या एएसपी.नेट एमवीसी में क्रिस्टल रिपोर्ट का उपयोग करने का कोई उचित तरीका है? यदि हां, तो कैसे?

उत्तर

13

हमारे पास काम पर एक समान स्थिति थी।

समाधान हम का उपयोग करें:

  • साथ रिपोर्ट के लिए एक अलग निर्देशिका
  • रिपोर्ट

हम किसी भी मुद्दे नहीं देखा है (सामान्य क्रिस्टल लोगों के अलावा) के लिए सामान्य ASPX पृष्ठों बनाएँ यह सेटअप

+3

आप मार्गों से निर्देशिका कैसे निकालूं? – Odd

+0

वास्तव में, मैंने अभी जांच की है। मार्ग को संशोधित करने की कोई आवश्यकता नहीं है। – leppie

+0

यदि आपने एएसपीनेट एमवीसी में क्रिस्टल रिपोर्ट जोड़ा है तो क्या आपको रीफ्रेशिंग क्रिस्टल रिपोर्ट की समस्या का सामना करना पड़ा है? क्या आपको "दृश्यस्थल मैक विफलता त्रुटि का सत्यापन" का सामना करना पड़ा है? – Vikas

70

यह वास्तव में बहुत आसान है। बस अपने MVC परियोजना के लिए संदर्भ निम्नलिखित जोड़ें:

  • CrystalDecisions.CrystalReports.Engine
  • CrystalDecisions.ReportSource
  • CrystalDecisions.Shared नीचे की तरह

उपयोग कार्रवाई विधि:

  • सी #:

    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

अच्छा होगा - बहुत सुंदर (क्रिस्टल रिपोर्ट और उसी बातचीत में सुरुचिपूर्ण - दुनिया के क्यू अंत) – Basic

+0

इस काम करता है, यह एक शानदार उपाय है, धन्यवाद – Yablargo

+0

http : अधिक जानकारी है कि आप की आवश्यकता हो सकती लिए //stackoverflow.com/questions/4294762/crystal-reports-for-visual-studio-2010-error। (मैं क्या!) – Yablargo

0

बस इस संदर्भ जोड़ें: CrystalDecisions.CrystalReports.Engine उपयोग करते हुए;
से इस कार्रवाई करें:

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

** समीक्षा कतार से **: क्या मैं आपसे अनुरोध कर सकता हूं कि कृपया अपने स्रोत-कोड के आस-पास कुछ संदर्भ जोड़ें। कोड-केवल उत्तरों को समझना मुश्किल होता है। यदि आप अपनी पोस्ट में अधिक जानकारी जोड़ सकते हैं तो यह पूछने वाले और भावी पाठकों दोनों की मदद करेगा। – RBT

संबंधित मुद्दे