在Visual Studio.NET中使用Crystal Report

來源:互聯網
上載者:User

在我們開始這個關於如何在VS.NET上使用Crystal Reports的小小的研究之前,我和我的朋友都對如何把它應用於我們的Web程式中感到非常的疑惑。一個星期以後,經過一些努力(在網上尋找“how-to”文檔),我們掌握了將簡單的報表加入asp.net程式中的一些小小技巧。

本文包含將Crystal Report 應用於您的.NET Web 應用程式所需方法的一些匯總,通過這些循序漸進地示範,你將遇到的錯誤(正如我們曾經所遇到過的)將被減少到微乎其微。為了更有效地利用本文,讀者應具備ASP.NET中資料庫連接的基本知識,並且正在使用VS.NET開發。請注意我們僅用beta2版對下列代碼進行了測試。

本文包括以下內容:

(1) 介紹;
(2) 牛刀小試-在.aspx頁面中使用一個已存在的Crystal Report檔案;
(3) Crystal Report示範-使用Pull Model;
(4) Crystal Report 示範-使用Push Model;
(5) 將Report 檔案輸出到其它的格式中。

有各種各樣的Crystal Report,這裡我們用到的是專為.NET設計的"Crystal Report for Visual Studio .NET"。它是一個rich programming model,以此可以操作它的properties和methods。如果你用VS.NET開發你的程式,你就不需要安裝任何額外的軟體,因為它已經包括在VS.NET中了。

優勢

使用Crystal Report for Visual Studio .NET的主要好處有:

--快速開發報表
--能與相關聯圖表一起擴充為複雜的報表
--可以與這個web form中的其它控制項相互作用
--能夠將其輸出成常用的.pdf,.doc,.xls,.html,.rtf等格式

總體結構

展示這個具有兩層結構的Crystal Report需要:

用戶端:

用戶端僅需使用瀏覽器即可得到裝載於.aspx頁面中的報表。

伺服器端:

- Crystal Report Engine (CREngine.dll)

與其它任務(比如將資料與報表檔案合并、將資料輸出為不同的格式等)一起,Crystal Report Engine 可以將你的Crystal Report轉為傳到.aspx頁中的簡潔明了的HTML.

- Crystal Report Designer (CRDesigner.dll)

使用Crystal Report Designer可以從頭開始製作報表,可以設計標題、插入資料、公式、表格、次級報告等。

- The .rpt Report file

將一份報表應用到你的Web應用程式中的第一步是使用Crystal Report Designer建立報表。在你的電腦裡已經有了一些現成的樣本,你現在就可以用它。

- The Data Source

.rpt檔案擷取資料的方式取決於你所選用的方法。你可以選擇製作Crystal Report以擷取資料而無須手工寫任何代碼,也可以選擇綁定你的dataset並將其傳入報表檔案。稍後我們將看到不同的應用。

- Crystal Report Viewer web form Control (CRWebFormViewer.dll)

Crystal Report Viewer是一個能夠插入.aspx頁中的web form control。它可以理解為一個包含報表的容器。

注意:在複雜的實現過程中,報表伺服器和網路伺服器可以位於不同的伺服器上,在這種情況下,網路伺服器將向報表伺服器提出要求。Crystal Report將作為一項web service被執行。

執行模式

執行以下任一種方法均可擷取Crystal Report資料。

Pull Model(拉模型)

在拉模型中,驅動程式將串連到資料庫並根據需要將資料“拉”進來。使用這種模型時,與資料庫的串連和為了擷取資料而執行的 SQL 命令都同時由 Crystal Reports 本身處理,不需要開發人員編寫代碼。如果在運行時無須編寫任何特殊代碼,則使用拉模型。

Push Model(推模型)

相反,推模型需要開發人員編寫代碼以串連到資料庫,執行 SQL 命令以建立與報表中的欄位匹配的記錄集或資料集,並且將該對象傳遞給報表。該方法使您可以將串連共用置入應用程式中,並在 Crystal Reports 收到資料之前先將資料篩選出來。

 

報表類型

除了獨立於方案的報表外,Crystal Report Designer還可裝載包含於方案之中的報表。

- Strongly-typed Report :

當在方案中加入一個報表時,該報表就成為一個Strongly-typed Report。在這種情況下,你可以直接建立報表執行個體(可以減少若干代碼),可以將其隱藏。當然你可以點擊Solution Explorer中的”show all files”來顯示它。

- Un-Typed Report :

不包含在方案中的報表即Un-Typed Report。在這種情況下,必須建立一個Crystal Report Engine的 ''Report Document''對象並將報表手工裝載進去。

另外你還應該知道的其它事項:

儘管Crystal Report Viewer控制項內建了zooming、page navigation等選項,但是它並沒有內建的列印選項。你必須使用瀏覽器的列印選項才可以。

Crystal Report for Visual Studio .NET未註冊版本只有前30項功能可用。在此之後的save option將不能使用。為了使用全部的功能,你不得不為之付費。

預設安裝只只提供了五位使用者的許可證,若要支援更多的使用者,必須向http://www.crystaldecisions.com/購買額外的許可證。

牛刀小試-在.aspx頁中使用一個已存在的Crystal Report檔案

現在讓我們看看如何將一個Crystal Report檔案應用於你的web form。

(1) 從tool box中拖出一個"Crystal Report Viewer"放到你的.aspx頁面上。

(2) 開啟這個control的屬性視窗。

(3) 在"Data Binding"屬性上點擊[...]彈出data binding視窗。

(4) 從左邊選擇"Report Source"。

(5) 選擇"Custom Binding Expression",在下邊的表單中輸入以下語句:

"C:\Program Files\Microsoft Visual Studio.NET\Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt"

記得要包括引號,點OK。

 

[下一頁]

 

注意:這個‘World Sales Report.rpt’檔案是做為VS.NET的一部分被安裝的。如果你指定了一個不同的路徑安裝VS.NET,請自行修改。

(譯者註:C#使用者請輸入以下字串:"C:\\Program Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt")

經過短暫時間的載入後,你將會看到一個簡單的預覽 。

上面的步驟實際上在你的.aspx頁面上插入了如下代碼:

< %@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web" %>

和在< form>段裡的

< CR:CrystalReportViewer

id="CrystalReportViewer1"

runat="server"

Width="350px" Height="50px"

ReportSource=''''>

< /CR:CrystalReportViewer>

(6) 調用DataBind方法,在Code Behind檔案中編輯Page Load Event

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

DataBind()

End Sub

(7) 儲存,產生並運行。現在你已經有了一個包含Crystal Report檔案的頁面了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.