生活随笔
收集整理的這篇文章主要介紹了
Asp.net中水晶报表的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 在我們對VS.Net中的水晶報表(Crystal Reports)進行研究之前,我和我朋友對如何將這個復雜的東東加入我們的Web應用有著非常的好奇心。一周以后,在閱讀了大量的“HOWTO”文檔之后,我們成功地將一些簡單的報告加入到了我們的Asp.net程序中,并得到了一些小決竅。 |
| 這篇文章教你如何在.Net Web應用中使用水晶報表,也可以讓你在學習過程中少走一些彎路。為了得到最好的效果,讀者最好需要有一些基礎的Asp.Net訪問數據庫的知識以及使用VS.Net的開發經驗。 |
| 水晶報表可以由很多的方法得到,其中一個就是使用VS.Net來創建,它提供了非常豐富模型以使我們能夠在運行時操作屬性和方法。如果你正在使用VS.Net開發.Net程序,那么你就不需要再安裝其它軟件了,因為他已經內嵌在VS.Net中了。 |
- 快速的報表開發
- 能夠導出成為復雜的交互性圖表
- 可以與其它控件一起在WebForm中使用
- 能夠動態地將報表導出成為.pdf,.doc,xls,html,rtf等多種格式
|
| 一些組件組成了水晶報表的二層結構,需要的Web應用有: |
| 客戶端僅需要一個可以訪問嵌入aspx頁面報表的游覽器就可以了 |
- 水晶報表引擎(Crystal Report Engine (CREngine.dll))
|
| 通過它可以完成一些任務,如在報告文件中合并數據,轉換報告為其它格式等。也正是因為報告引擎的作用,才可以將Asp.Net中的水晶報表轉換成為普通HTML格式 |
- 水晶報表設計器(Crystal Report Designer (CRDesigner.dll))
|
| 水晶報表就是在設計器中創建的,在設計器中你可以設計標題,插入數據,公式,圖表,子報表等。 |
| 執行報表中的第一步就是在水晶報表設計器接口創建此報表,在默認安裝中微軟已經提供了一些現成的.rpt例子。 |
| .rpt文件取得數據庫的方法取決于你方法的選擇,你能選擇讓水晶報表自己選擇數據而不使用任何代碼或者也可以選擇手動的組裝DataSet,然后再將其傳送到報表文件。 |
- 水晶報表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))
|
| 水晶報表查看控件是一個WebForm控件,可以將它看成是一個在.aspx頁面中存放報表的容器。 注意:在一些復雜的操作中,報表服務器與Web服務器可能不在同一物理主機上,Web服務器將HTTP請求傳送到報表服務器上去。水晶報表也可以當做WebService來執行。 |
| 被請求時,水晶報表直接根據指定的驅動連接數據庫然后組裝這些數據。 |
| 此時開發表不得不自己編寫代碼連接數據并組裝DataSet,同時將它傳送至報表。在些這種情況下,通過使用連接共享以及限制記錄集合的大小,可以使用報表性能最大化。 |
| 水晶報表設計器能夠直接包含報表至工程也能夠使用獨立的報表對象。 |
| 當你將報表文件加入到項目中去時,它就變成了一個了“ strongly-typed“報表。在這些情況下,你將擁有直接創建報表的對象的權力,這將減少一些代碼并且能夠提供一些性能。 |
| 這里的報表并不直接包含在項目中,因此稱為‘un-typed’ 報表。在這種情況下,你不得不使用水晶報表的”ReportDocuemt“對象建立一個實例,并且”手動“地凋用報表。 |
| 盡管水晶報表查看器擁有一些很酷的功能,如縮放、頁面導航等。但是他不提供打印功能,你不得不調用游覽器的打印功能。 |
| VS.Net中的水晶報表如果沒有注冊,那么它只能使用30次,30次后,”保存“功能就不能再使用了。為了避免這個,你不是不在 http://www.crystaldecisions.com/這里注冊此產品。 (好像不是這樣子的,不注冊也好像能用很長的時間,只是不能提供支持) |
| 默認安裝的水晶報表只能支持5個用戶,為了支持更多的用戶,你不得不在 http://www.crystaldecisions.com/中購買許可證。 |
| 讓我們感受一下——在Asp.net中使用一個現成的水晶報表文件 |
| 1) 從WebForm工具欄中拖動水晶報表查看器控件(Crystal Report Viewer)至.aspx頁面中。 |
| 3) 點擊[...]按鈕查看"Data Binding"屬性,并彈出了DataBinding窗口。 |
| 4) 從左邊的"Bindable屬性”區中選擇“Report Source” |
| 5) 選中"自定義綁定表達式"單選按鈕,在右邊的底部的窗口中指定.rpt文件的文件名和路徑,例如:"C:\\Program Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt",然后“確定”。 |
| 注意:文件”World Sales Report.rpt“文件是在VS.Net安裝時創建的。如果你在安裝過程中指定了其它目錄,此時你最好確認一下路徑的正確性。 |
| 上面的步驟中實際上是插入了下面這些代碼至Asp.Net文件中:? |
| <%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web" %> |
| 以及: <CR:CRYSTALREPORTVIEWER> |
| id="CrystalReportViewer1" |
| runat="server" Width="350px" Height="50px" |
| ReportSource=' <%# "C:\\Program Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt" %>'> |
| </CR:CRYSTALREPORTVIEWER> |
| 注意:在飛刀我的VS.Net正式版中自動生成的代碼中ReportSource產生的樣式不是這樣子的,它是: |
| ?ReportSource=" <%# C:\xxxxx\xxx.rpt %>" |
- DataBind中要有雙引號,因此外部只能用單引號
- 目錄分隔符號不能使用"\",必須使用"\\"
|
| 必須按照使用本文介紹的格式來手動修改,這也算是VS.Net的一個Bug吧。 |
| 6) 在Page_Load方法中調用DataBind方法。(代碼為VB.Net) |
| Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) |
| 7)保存并編譯你的頁面。 現在,你就有一個內嵌水晶報表的WebForm頁面了。 |
| 注意:實際開發中,一開始會出現無法訪問inetsrv目錄的錯誤,解決的辦法是改變其目錄的安全屬性,使User用戶有可寫的權限。飛刀我發現.Net系統自已給出的解決方法是沒有用的,也可能是我使用的是Windows.Net操作系統的原因。 |
| |
?
?
?
=============
?
?
?
?
我們將通過下面的這些步驟來通過Pull模式來執行水晶報表
1.首先創建rpt文件,并使用水晶報表設計接口設置一些必須的數據連接。
2.拖放一個 CrystalReportViewer控件至aspx頁面,設置它的屬性指定我們上一步創建的.rpt文件。
3. 在代碼中調用DataBind方法。 創建 .rpt 文件:
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 (您的機器是什么名字就寫什么) 用戶 ID: 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文件路徑。
17) 此時你能夠從Crystal Report Viewer 控件中看到使用一些虛擬數據組成的報表文件的預覽。 注意:在上面的例子中,CrystalReportViewer可以在設計時直接調用真實的數據,因為此時數據已經保存。在這種情況下,設計時當沒有保存數據時,他是不能顯示數據的。取而代這的是顯示一些虛擬的數據,只有在執行時才會選取真實的數據。 Code Behind 程序設計
18) 在Page_Load方法中調用DataBind方法。 執行你的程序
19) 創建并運行你的程序!
?
您現在就可以直接在Web頁面中使用水晶報表內置的一些功能,如頁面導航,縮放等。
?
?
?
轉載于:https://www.cnblogs.com/yongheng178/archive/2008/08/19/1271035.html
總結
以上是生活随笔為你收集整理的Asp.net中水晶报表的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。