Visual Basic .Net (VB.Net) 程式語言案例學習 (05. 會員管理及報表系統)
Visual Basic .Net (VB.Net) 程式語言案例學習 (05. 會員管理及報表系統)¶
5.1 問題¶
這是一個非常簡單的需求,只需要有會員清單與購買清單,並列出報表可供核對即可。主要的問題在於程式設計師利用Crystal Report設計程式之後,在本機上是可以運作的,可是無法直接將執行檔複製給其他使用者執行,因此重點在於如何發佈含有Crystal Report的報表程式,以及如何撰寫程式讓引用的Crystal Report可以讀取到正確的資料庫。有許多的書籍都採用精靈的方式建立資料庫應用程式,卻沒有談論到發佈程式的方法,因此都只能在本機上作業,但您不會希望每一位使用者要執行程式時,還必須安裝全套的Visual Studio .NET,因此本章將詳細告訴您如何發佈。
5.2 需求¶
表格 5‑1 「會員管理及報表系統」系統目的分析表
版本:1.0 | 要做什麼 | 不要做什麼(不要做不代表不會做) |
---|---|---|
能做什麼 | (第一格:必要項目) | (第二格:次要項目) |
要有會員清單。 | 可以由程式新增、刪除、修改會員資料。 | |
要有購買清單。 | 可由程式計算出購買金額、總計、數量。 | |
點選會員項目可以列出所購買的商品清單。 | ||
要有消費總表可供列印、匯出。 | ||
要可以安裝到其他電腦上執行。 | ||
不能做什麼(不能做代表不需要做) | (第三格:不必要項目) | (第四格:不需要項目) |
增加個人消費明細報表。 | 將資料庫建構於MS SQL上,變成網路版的程式。 |
表格 5‑2 「會員管理及報表系統」系統目標分析表
版本: | 重要 | 不重要 |
---|---|---|
優先 | (重) | (急) |
要有會員清單。 | 點選會員項目可以列出所購買的商品清單。 | |
要有購買清單。 | ||
不急迫 | (輕) | (緩) |
要有消費總表可供列印、匯出。 | 無。 | |
要可以安裝到其他電腦上執行。 |
表格 5‑3 「會員管理及報表系統」系統規格表
規格項目 | 規格內容 | 備註 |
---|---|---|
基本功能 | 要有會員清單。 | … |
要有購買清單。 | ||
點選會員項目可以列出所購買的商品清單。 | ||
報表功能 | 要有消費總表可供列印、匯出。 | … |
發佈 | 要可以安裝到其他電腦上執行。 | … |
5.3 特色¶
特點就是使用Crystal Report for .NET來製作報表程式。簡單又有效率。這是Visual Basic 2005設計師必備的技能之一。
5.4 使用工具¶
語言 | 軟體 |
---|---|
Visual Basic 2005 | MS Visual Studio .NET .NET、MS Access、Crystal Report for .NET |
5.5 系統架構¶
本程式採用兩個清單,第一個清單是載入會員資料,而第二個清單是載入購物資料,其實程式部分是相當簡單,主要是以Crystal Report展現報表,而且以程式碼連結Crystal Report作資料來源,不使用精靈工具來做資料來源,這樣有個好處,設計上較有彈性。因為您可以安排自訂的資料庫路徑,這樣有助於資料庫的安排。透過Crystal Report可以節省您許多寶貴的時間,例如:統計分析的資料、圖表的安排,都可以採用Crystal Report來完成。
5.6 程式實作¶
5.6.1 設計報表程式¶
Step 1:如圖5-1。這是程式執行的畫面。
圖 5-1
Step 2:如圖5-2。這是執行報表的畫面。
圖 5-2
Step 3:由程式碼連結Crystal Report的方法如下所示。
‘宣告並建立資料庫連結物件 Dim objCnn As New OleDb.OleDbConnection ‘宣告連結字串變數 Dim strCnn As String ‘宣告並建立資料集 Dim dataset As New DataSet ‘設定資料庫連結字串 strCnn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source =” & Application.StartupPath & “\Database1.mdb” ‘設定資料庫連結字串給物件 objCnn.ConnectionString = strCnn ‘開啟資料庫 objCnn.Open() ‘宣告並建立資料來源 Dim objDA As New OleDb.OleDbDataAdapter(“Select * from 會員”, objCnn) ‘將資料填入資料集 objDA.Fill(dataset, “會員”) ‘宣告並建立資料來源 Dim objDA2 As New OleDb.OleDbDataAdapter(“Select * from 消費”, objCnn) ‘將資料填入資料集 objDA2.Fill(dataset, “消費”) ‘宣告並建立Crystal Report報表物件 Dim cr1 As New CrystalReport1 ‘設定報表資料來源 cr1.SetDataSource(dataset) ‘設定Crystal Report Viewer的報表來源 CrystalReportViewer1.ReportSource = cr1
5.6.2 發佈報表程式¶
Step 1:如圖5-3。首先請來到http://support.businessobjects.com/downloads/merge_modules.asp#07 網站,準備下載Merge Modules for Crystal Reports for Visual Studio .NET 2005。
圖 5-3
Step 2:如圖5-4。下載後打開檔案,可以看到CrystalReportsRedist2005_x86.msm,這就是合併模組。
圖 5-4
Step 3:如圖5-5。點選新增專案,安裝及部署,安裝專案。
圖 5-5
Step 4:如圖5-6。在專案名稱上點選滑鼠右鍵,叫出功能表,點選加入、合併模組。
圖 5-6
Step 5:如圖5-7。找到剛下載的CrystalReportsRedist2005_x86.msm檔案,點選開啟。
圖 5-7
Step 6:如圖5-8。完成後再把所設計的程式執行檔以及資料庫加入,替使用者建立個捷徑。就可以將程式發佈出去了。
圖 5-8
Step 7:如圖5-9。發佈完成後就可看到安裝檔案,如此您就可以將檔案複製給使用者安裝。
圖 5-9
5.7 修改重點¶
本程式是一個簡單的範例,因此修改的重點在於利用Crystal Report產生更多的分析報表,讀者可能必須參考Crystal Report的設計相關書籍,除此之外,其他書籍並沒有說明如何包含Crystal Report發佈程式,而本章重點就是告訴讀者如何製作包含Crystal Reprot合併模組的安裝程式,便於發佈您的應用程式。
5.8 結論¶
這是一個非常好的範例,可由讀者繼續擴充,藉由本範例,可以知道如何由MS Access資料庫中取得資料,並且透過Crystal Report for .NET快速的製作報表。並且告訴讀者如何發佈含有Crystal Report的程式,這樣可以方便讀者佈署與安裝。
Lai Tai-Yu (賴岱佑)