水晶報表產生

來源:互聯網
上載者:User

一.我們採用下面的幾步使用Push模式執行水晶報表:
1. 設計一個DataSet
2. 建立一個.rpt檔案同時將其指定給上一步建立的DataSet。
3. 在aspx頁面中拖放一個CrystalReportViewer控制項同時將其與前面的rpt檔案建立聯絡。
4. 在代碼中訪問資料庫並把資料存入DataSet
5. 調用DataBind方法。

 oRpt = new ReportDocument();
        string RptDir =Server.MapPath("MyReport.rpt");
        //Response.Write(RptDir);
        //string RptDir = "E://vs2005//ASPcrystal//MyReport.rpt"; //crystalreport1.rpt檔案所在的絕對路徑
        oRpt.Load(RptDir);

        SqlConnection con = new SqlConnection("server=.;database=northwind;uid=sa;pwd=;");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from customers", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "customers");
        oRpt.SetDataSource(ds);           
        this.CrystalReportViewer1.ReportSource = oRpt;

  二.C#.Net的WinForm中使用水晶報表

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;     
MyReport mydoc = new MyReport();   
mydoc.SetDataSource(ds.Tables["persontb"]);
crystalReportViewer1.ReportSource = mydoc;
TextObject tb = (TextObject)mydoc.ReportDefinition.ReportObjects["Text13"];
tb.Text = vievprint.content;

 

三.使用Pull模式   我們將通過下面的這些步驟來通過Pull模式來執行水晶報表   1.首先建立rpt檔案,並使用水晶報表設計介面設定一些必須的資料連線。   2.拖放一個 CrystalReportViewer控制項至aspx頁面,設定它的屬性指定我們上一步建立的.rpt檔案。   3. 在代碼中調用DataBind方法。1) 在右擊”解決方案遊覽器“,在彈出的菜單中選擇”添加“--”添加新項“-->”Crystal Report”     2) 在”Crystal Report 庫”中選擇”作為空白報表“選項按鈕,最後單擊“確定“。    3)這裡將彈出水晶報表設計師。     4) 右擊報表中的”詳細資料區”,選擇“資料庫”->“添加/刪除資料庫..."  5) 在彈出的”資料庫專家“中,擴充”OLE DB(ADO)“選項,此時會彈出另外一個”OLE DB(ADO)“視窗。  6) 在 "OLE DB (ADO)" 快顯視窗中,選擇 "Microsoft OLE DB Provider for SQL Server" 然後 "Next"   7) 指定串連的資訊  伺服器 : ASPCN (您的機器是什麼名字就寫什麼)   使用者識別碼: sa  密碼:  資料庫 : Pubs  8) 單擊”Next“,最後單擊”Finish“按鈕。  9) 這時你就能在”資料庫專家“視窗中看到我們選擇的資料庫。  10) 擴充”Pubs“資料庫,擴充”表“,選擇”Stores“表並將其加到”選定的表“區中,單擊”OK"按鈕。  11) 現在在”欄位資源總管“中就會在左邊”資料庫欄位“區中顯示你選擇的表,以及表中的欄位。  12) 拖放需要的欄位進入報表的”詳細資料“區。欄位名將會自動出現在”頁首“區。如果你想修改頭部文字,則可以右擊”頁首“區中的文字,選擇”編輯文字物件“選項並進行編輯。  13) 儲存,這樣我們就有了一個水晶報表檔案。  建立 CrystalReportViewer 控制項  14) 回到前面的WebForm中,拖放一個Crystal Report Viewer控制項到頁面中去。  15) 調出Crystal Report Viewer控制項的屬性視窗,選擇“DataBindings"區點擊[...]  16) ”Crystal Report Viewer 資料繫結視窗”中,在右邊的“可綁定屬性”中選擇”ReportSource“,並選擇右下角的“自訂綁定運算式”中指定.rpt檔案路徑。 而在2005中直接建立ReportSourceID選擇指定.rpt即可.  17) 此時你能夠從Crystal Report Viewer 控制項中看到使用一些虛擬資料群組成的報表檔案的預覽。  注意:在上面的例子中,CrystalReportViewer可以在設計時直接調用真實的資料,因為此時資料已經儲存。在這種情況下,設計時當沒有儲存資料時,他是不能顯示資料的。取而代這的是顯示一些虛擬資料,只有在執行時才會選取真實的資料。

Code Behind 程式設計

  18) 在Page_Load方法中調用DataBind方法。

protected void Page_Load(object sender, EventArgs e)
    {
        
        
        TableLogOnInfo logOnInfo = new TableLogOnInfo();
        oRpt = new ReportDocument();
        string RptDir = "E://vs2005//ASPcrystal//MyReport.rpt"; //crystalreport1.rpt檔案所在的絕對路徑
        oRpt.Load(RptDir);

        logOnInfo.ConnectionInfo.ServerName = "Hpc"; 
       logOnInfo.ConnectionInfo.DatabaseName = "Northwind"; 
        logOnInfo.ConnectionInfo.UserID = "sa"; 
        logOnInfo.ConnectionInfo.Password =""; 
         oRpt.Database.Tables[0].ApplyLogOnInfo(logOnInfo);             
        this.CrystalReportViewer1.ReportSource = oRpt;
    }

  執行你的程式

 20.若要產生pdf文檔 在以上代碼中加入 
ExportOptions crExportOptions=new ExportOptions();
DiskFileDestinationOptions crDiskFileDestinationOptions=new DiskFileDestinationOptions();
crDiskFileDestinationOptions.DiskFileName="f://bbs//test//crystal//crystalreport1.pdf";
crExportOptions=oRpt.ExportOptions ;
crExportOptions.DestinationOptions=crDiskFileDestinationOptions;
crExportOptions.ExportDestinationType =ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType =ExportFormatType.PortableDocFormat ;
oRpt.Export();
oRpt.Close();

讀取報表匯出的內容並傳到用戶端?繼續加入以下代碼 
Response.ClearContent();
Response.ClearHeaders ();
Response.ContentType ="application/pdf";
Response.WriteFile("f://bbs//test//crystal//crystalreport1.pdf");
Response.Flush();
Response.Close();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.