2012-07-12 144 views
0

我用參數創建了一個水晶報表,但它沒有加載這個值。它只是顯示標題,我只是指列名。請檢查我的代碼並糾正我。我試圖將報告加載到pdf格式,顯示「加載報告失敗」等錯誤。請糾正我。水晶報告失敗

protected void Button2_Click(object sender, EventArgs e) 
    { 
     ReportDocument reportdocument = new ReportDocument(); 
     reportdocument.Load(Server.MapPath("CrystalReport.rpt")); 
     reportdocument.SetDatabaseLogon("", "", "Aravind", "MySampleDB"); 
     reportdocument.SetParameterValue("MRNO", TextBox1.Text); 
     CrystalReportViewer1.ReportSource = reportdocument; 
    } 
    protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     EXPORTREPORT(); 
    } 
    private void EXPORTREPORT() 
    { 
     MemoryStream oStream; 
     Response.Clear(); 
     Response.Buffer = true; 
     ReportDocument reportdocument = new ReportDocument(); 
     reportdocument.Load(Server.MapPath("CrystalReort.rpt")); 
     reportdocument.SetDatabaseLogon("", "", "Aravind", "MySampleDB"); 
     reportdocument.SetParameterValue("MRNO",TextBox1.Text); 
     CrystalReportViewer1.ReportSource = reportdocument; 

     oStream = (MemoryStream)reportdocument.ExportToStream(ExportFormatType.PortableDocFormat); 
     //oStream = (MemoryStream)crReport.ExportToStream(ExportFormatType.PortableDocFormat); 
     Response.ContentType = "application/pdf"; 
     try 
     { 

      //write report to the Response stream 

      Response.BinaryWrite(oStream.ToArray()); 

      Response.End(); 

     } 

     catch (Exception ex) 
     { 
      Label2.Visible = true; 
      Label2.Text = "ERROR:" + Server.HtmlEncode(ex.Message.ToString()); 


     } 

     finally 
     { 

      //clear stream 

      oStream.Flush(); 

      oStream.Close(); 

      oStream.Dispose(); 

     } 
+0

你爲什麼寫:reportdocument.SetDatabaseLogon(「」,「」,「Aravind」,「MySampleDB」);?你有沒有嘗試過:cryReportDocument.SetDatabaseLogon(「UserName」,「Password」,「DatabaseServerName」,「」); ? – 2012-07-12 08:56:40

回答

0

您確定您的報告的名稱是CrystalReort.rpt?而不是更常用的名字CrystalReport.rpt

它是否也位於您的網站的根?

+0

我已更改我的報告的名稱,但它不能再工作 – user1455232 2012-07-12 08:45:15

+0

有了參數,它會加載,但通過搜索參數它不會...請幫助我,PDF格式已經工作..請幫助我這樣做使用參數 – user1455232 2012-07-12 08:56:37

0

演員的價值所需的類型,如果其編號,然後Convert.ToDouble(TextBox1.Text)

+0

它顯示錯誤輸入的格式不正確 – user1455232 2012-07-12 09:43:14

+0

比文本不是數字 – 2012-07-12 11:21:42

0

什麼類型MRNO的是什麼? 也嘗試下面的代碼,這可能會幫助你。 rptDoc.ExportOptions.ExportDestinationType = ExportDestinationType.NoDestination;

   Stream getStreams = rptDoc.ExportToStream(ExportFormatType.PortableDocFormat); 
       byte[] getbytes = GetStreamAsByteArray(getStreams); 

       Response.Clear(); 
       Response.ContentType = "application/pdf"; 
       Response.AddHeader("Content-Length", getbytes.Length.ToString()); 
       Response.BinaryWrite(getbytes); 
0

將下面的代碼寫入頁面的加載事件中。

if (crystalReportDoc != null) 
     { 
      crystalReportDoc.Close(); 
      crystalReportDoc.Dispose(); 
      GC.Collect(); 
     } 
+0

OP沒有提到任何名爲「crystalReportDoc」的變量。這是事件的給定參數嗎?爲什麼有必要處理?請添加更多信息。 – Udontknow 2016-11-18 12:39:08