摘 要:在信息管理系統中圖像的打印是一個不可或缺的功能,特別是在打印人員信息的報表中,照片的打印是經常用的。本文結合一個實例簡要講解如何在DOTNET中使用Crystal Report實現圖像的輸出功能。
關鍵詞:C#; Crystal Report; 信息管理系統;照片;打印
中圖分類號:TP312 文獻標識碼:A 文章編號:1674-098X(2011)10(b)-0000-00
自從1993年開始,Crystal Report就集成到了微軟的開發工具中了,發展到Visual Studio 2005,Crystal Report和Visual Studio的結合也越來越緊密了。本文先介紹Crystal Report的基本概況。
1 Crystal Report的幾個重要組件
(1)Crystal Report Designer
Crystal Report之所以“可見即所得”就是靠這個組件,Crystal Report Designer用于編輯.rpt報表文件。
(2)Crystal Report Viewer
將Crystal Report Designer設計的報表展示在Web頁面或Windows Form 上就是用到這個組件。
(3)Crystal Report Engine
Crystal Report Engine允許開發人員在運行階段對報表的結構與內容進行完整的控制,但是 Crystal Report Engine必須和Crystal Report Viewer一同使用。
2理解報表節(Report Section)
(1)報表頁眉節。報表頁眉節中的數據在整份報表中只出現一次,而且只會顯示在第一頁的上方。
(2)頁眉節。頁眉節中的數據會固定顯示在每一頁的頂端。
(3)詳細資料節。顯示報表實際信息,如果綁定的數據庫表(DataSet)有多個記錄,則這些記錄都將顯示在詳細資料節中。
(4)報表頁腳節。報表頁眉節中的數據在整份報表中只出現一次,而且只會顯示在最后一頁之詳細資料節中最后一個數據記錄的下方。
(5)頁腳節。頁腳節中的數據會固定顯示在每一頁的尾端。
3水晶報表的執行模式
(1)Pull模式。被請求時生成報表時,驅動程序自動連接數據庫,并視需要提取數據。一般,簡單的報表用Pull模式就可以了。
(2)Push模式。使用Push模式,開發人員必須自行編寫代碼來連接數據庫,運行SQL命令來創建DataSet,并將DataSet傳遞給報表。Push模式比較靈活,并且效率高。"
使用Crystal Report可以非常方便的面向客戶展現系統的各種類型數據,其中圖像的打印是經常涉及到的,本文講解如何在DotNet 2005中使用Crystal Report實現該技術。
3.1設置打印窗體
首先在工程中添加一個打印窗體(General_PrtForm.cs),如下:
在該窗體的編碼文件中導入和 Crystal Report有關的命名空間,并且聲明全局變量:
然后在該窗體的Load事件中添加如下代碼:
3.2設置全局數據集
首先在工程中添加新建項,選擇“數據集”選項,命名為NewStu_Pic.xsd。
然后再出現的界面中單擊鼠標右鍵,選擇“添加” “DataTable”選項,接著在DataTable上單擊“添加” “列”,命名為“Pic”。這里重點注意,在屬性對話框中設置“Pic”的“DataType”的值為“System.Byte[]”,中括號是我們手動后加的。
3.3設置Crystal Report
首先在工程中添加新建項,選擇“Crystal 報表”選項,添加完畢簡要設置報表格式后,展開“字段資源管理器”,單擊鼠標右鍵選擇“數據庫專家”,打開設置對話框,在“項目數據”中的“ADO.NET數據集”中添加“NewStu_Pic”數據集。
然后展開Datatable1,選中“Pic”列,按住鼠標左鍵不放,把該列拖放到報表的相應位置即可。
3.4完成圖像打印功能
我們假設圖片已經存儲在數據庫里,并且通過與數據庫的交互操作,已經把圖像數據讀取到程序中的某個DataSet里面。接下來我們講解如何在打印按鈕的事件里,借助全局數據集NewStu_Pic.xsd完成我們的任務,簡要代碼如下:
按照上述過程即可實現把圖像數據打印在報表上。
參考文獻
[1]白德淳.Visual Basic.NET程序設計,機械工業出版社.
[2]曹祖圣,吳明哲,林兆燊.Visual_C#.NET程序設計經典,科學出版社.