ASP.NET水晶報(bào)表Push模式顯示多個(gè)表的數(shù)據(jù)
很多ASP.NET水晶報(bào)表示例教程只能顯示出一個(gè)表的數(shù)據(jù)。一個(gè)很常見(jiàn)的描述是,如果想使用PUSH模式在報(bào)表中顯示多個(gè)表的數(shù)據(jù),就會(huì)有“登錄失敗”的問(wèn)題。其實(shí)就在于,這些示例將DataSet與數(shù)據(jù)庫(kù)的關(guān)系描述的很緊密,給人一種錯(cuò)覺(jué),DataSet就要安排的和數(shù)據(jù)庫(kù)的結(jié)構(gòu)相同,其實(shí)呢,PUSH模式中的DataSet和數(shù)據(jù)庫(kù)是一點(diǎn)關(guān)系都沒(méi)有的,之所以要?jiǎng)?chuàng)建這個(gè)DataSet的原因,就是為了讓你能夠編輯RPT模版。***顯示出來(lái)的數(shù)據(jù),全都是你在后臺(tái)代碼中調(diào)用SetDataSource給它的。與設(shè)計(jì)時(shí)的數(shù)據(jù)庫(kù)沒(méi)有任何關(guān)系的。因此原示例中創(chuàng)建DataSet部分應(yīng)該修改為以下步驟:
如何實(shí)現(xiàn)ASP.NET水晶報(bào)表Push模式顯示多個(gè)表的數(shù)據(jù)
1、 在解決方案資源管理器中添加新項(xiàng),選擇數(shù)據(jù)集,設(shè)置文件名,確定。
2、 在數(shù)據(jù)集設(shè)計(jì)器中單擊右鍵,選擇“新建element”,這個(gè)步驟,實(shí)際上就是添加了一個(gè)表。如圖,設(shè)置表名。
3、 如圖所示,在新建出的表中添加相應(yīng)的字段,這里的字段名和字段類型,一定要和你想要顯示的那個(gè)字段相符。否則可能會(huì)出問(wèn)題。
4、 剩下的步驟和原教程中相同,在數(shù)據(jù)庫(kù)專家中選擇“項(xiàng)目數(shù)據(jù)-ADO.NET數(shù)據(jù)集”,下面就可以看到你剛才新建的數(shù)據(jù)庫(kù)及表。將該表選擇到“選定表”中。并按照你的意愿創(chuàng)建報(bào)表模版。在后臺(tái)代碼中用你從數(shù)據(jù)庫(kù)中取出的DataSet填充到報(bào)表中。OK!
附網(wǎng)上原示例內(nèi)容:
ASP.NET水晶報(bào)表:從數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)集對(duì)象
1.在項(xiàng)目中新建一個(gè)架構(gòu)文件:
a.在解決方案資源管理器中,右擊項(xiàng)目名,指向“添加”,然后單擊“添加新項(xiàng)”。
b.在“添加新項(xiàng)”對(duì)話框的“類別”區(qū)域,展開(kāi)文件夾,然后選擇“數(shù)據(jù)”。
c.在“模板”區(qū)域選擇“數(shù)據(jù)集”。
d.接受默認(rèn)名稱 Dataset1.xsd。
這就創(chuàng)建了一個(gè)新的架構(gòu)文件 (Dataset1.xsd),以后將用它來(lái)生成強(qiáng)類型數(shù)據(jù)集。該架構(gòu)文件將顯示在 ADO.NET 數(shù)據(jù)集設(shè)計(jì)器中。
2.指定數(shù)據(jù)庫(kù)位置:
a.在服務(wù)器資源管理器中,右擊“數(shù)據(jù)連接”并選擇“添加連接”。
b.在“數(shù)據(jù)鏈接屬性”對(duì)話框中,單擊“提供程序”選項(xiàng)卡,然后選擇一個(gè)提供程序(例如 Microsoft OLE DB Provider for SQL Server)。
c.單擊“連接”選項(xiàng)卡,然后指定您的數(shù)據(jù)庫(kù)所在位置。在所需位置輸入服務(wù)器和登錄信息。
d.單擊“確定”按鈕。
此時(shí),您的數(shù)據(jù)庫(kù)及其表和字段就出現(xiàn)在服務(wù)器資源管理器的“數(shù)據(jù)連接”節(jié)點(diǎn)下面。
3.在解決方案資源管理器中,雙擊 Dataset1.xsd (如果它尚不是活動(dòng)視圖)。
Dataset1.xsd 現(xiàn)在應(yīng)顯示在“數(shù)據(jù)集”選項(xiàng)卡中。
4.若要為數(shù)據(jù)集建立架構(gòu),請(qǐng)將需要的表從服務(wù)器資源管理器中拖動(dòng)到 Dataset1.xsd 的“數(shù)據(jù)集”選項(xiàng)卡上。
5.單擊“保存 Dataset1.xsd”來(lái)保存“Dataset1.xsd”文件。
6.在“生成”菜單上,單擊“生成”為項(xiàng)目生成數(shù)據(jù)集對(duì)象。
ADO.NET 數(shù)據(jù)集對(duì)象提供數(shù)據(jù)的描述,從它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“數(shù)據(jù)庫(kù)專家”從 ADO.NET 數(shù)據(jù)集對(duì)象添加表。
請(qǐng)?jiān)谑褂谩皥?bào)表專家”創(chuàng)建新報(bào)表時(shí)調(diào)用“數(shù)據(jù)庫(kù)專家”。或者,要從一個(gè)已經(jīng)使用 ADO.NET 建立好的報(bào)表中訪問(wèn)“數(shù)據(jù)庫(kù)專家”,請(qǐng)?jiān)?Report Designer 中右擊,指向“數(shù)據(jù)庫(kù)”,然后單擊“添加/刪除數(shù)據(jù)庫(kù)”。
ASP.NET水晶報(bào)表:將報(bào)表連接到 ADO.NET 數(shù)據(jù)集對(duì)象
1.在“數(shù)據(jù)庫(kù)專家”中,展開(kāi)“項(xiàng)目數(shù)據(jù)”文件夾。
2.展開(kāi)“ADO.NET 數(shù)據(jù)集”文件夾。
3.選擇所需數(shù)據(jù)集對(duì)象。
例如,如果當(dāng)時(shí)使用的是從項(xiàng)目“WindowsApplication1”的架構(gòu)文件“Dataset1.xsd”中生成的數(shù)據(jù)集對(duì)象,則應(yīng)該選擇“WindowsApplication1.Dataset1”。
4.選擇要向報(bào)表中添加的表,和使用其他數(shù)據(jù)源一樣。
動(dòng)態(tài)改變數(shù)據(jù)源的代碼
Dim dsdataSet As New DataSet()
Dim oRpt As New rptClient() '已建立的報(bào)表rptClient
請(qǐng)讀者自行填充數(shù)據(jù)集dsdataSet
'使用“報(bào)表引擎”對(duì)象模型將填充的數(shù)據(jù)集,傳遞給報(bào)表
oRpt.SetDataSource(dsdataSet.Tables(0))
' 將帶有數(shù)據(jù)的報(bào)表對(duì)象綁定到 Windows 窗體查看器,rptVew(CrystalReportViewer控件)
rptVew.ReportSource = oRpt
【編輯推薦】