2013-05-01 47 views
0

我想綁定我已經創建的水晶報告,這意味着我有.rpt文件。現在我使用Add-reports - 現有項目將其添加到我的應用程序中。此報告基於oracle表視圖創建。在我的程序中,我創建了一個動態數據集,其中包含此報告所需的所有字段。現在我需要找到一種方法來使用此現有的.rpt文件,並從數據集中解析我的數據以創建pdf格式的報告。
我知道如何將報告導出到pdf。但我不知道如何使用這個.rpt文件並通過它解析我的數據集數據。使用現有的水晶報告一個新的數據集

這裏是我到目前爲止

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Oracle.DataAccess.Client; 
using System.Data; 
using CrystalDecisions.CrystalReports.Engine; 


namespace WebApplication1 
{ 
public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     string connetionString = null; 
     OracleConnection connection; 
     OracleDataAdapter OracleAdapter; 
     DataSet ds = new DataSet(); 
     string firstSql = null; 
     // string secondSql = null; 

     connetionString = "blah blah 
     firstSql = "select * from STATEMENT_DomESTIC"; 
     // secondSql = "Select * from DOM_DETAILS"; 
     connection = new OracleConnection(connetionString); 
     try 
     { 
      connection.Open(); 
      OracleAdapter = new OracleDataAdapter(firstSql, connection); 
      OracleAdapter.Fill(ds, "domestic_header"); 
      OracleAdapter.SelectCommand.CommandText = secondSql; 
      OracleAdapter.Fill(ds, "domestic_detail"); 
      OracleAdapter.Dispose(); 
      connection.Close(); 

      // GridView1.DataSource = ds; 
      // GridView1.DataBind(); 


     } 

     catch (Exception ex) 
     { 


     } 
    } 
} 
} 

我做研究這一點,但,是無法找到一個很好的例子可以做到這一點的代碼。

回答

0

您需要使用Crystal提供的ReportDocument對象。例如...

ReportDocument reportDoc = new ReportDocument(); 
reportDoc.Load("YourReportName"); //or path to your report 
reportDoc.SetDataSource(ds); 

這是做你要找的嗎?

+0

這讓我開始了。謝謝我讓你知道結果如何。 – user2315840 2013-05-01 20:12:53

+0

當然,我最近一直在使用Crystal .NET API。肯定是一個學習過程。需要幫助請叫我。 – gwin003 2013-05-01 21:04:05

+0

我做了你所說的並且增加了導出選項來將報告導出爲pdf。但我沒有得到它的任何地方。我收到錯誤,指出數據庫登錄失敗。但我不使用數據庫作爲源。 reportDoc.SetDataSource(ds);將數據修改更改爲數據集?我對麼 ?如果是這樣,它不應該拋出一個不連接數據庫的錯誤 – user2315840 2013-05-02 14:57:12