日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

ASP.NETserver控件使用之Reportviewer 报表

發(fā)布時(shí)間:2025/3/15 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NETserver控件使用之Reportviewer 报表 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.?????? Reportviewer 報(bào)表

?

?

1.1.?????? Reportviewer控件

注:本教程附2個(gè)事例:

l? 演練:在本地處理模式下將數(shù)據(jù)庫(kù)數(shù)據(jù)源與 ReportViewer Web server控件一起使用

?

l? 演練:在本地處理模式下將業(yè)務(wù)對(duì)象數(shù)據(jù)源與 ReportViewer Web server控件一起使用

假設(shè)您已經(jīng)對(duì)ReportViewer控件基礎(chǔ)知識(shí)比較了解,能夠直接參閱事例。

?

1.1.1.???????????????? 簡(jiǎn)單介紹

Microsoft Visual Studio 2005 包括報(bào)表設(shè)計(jì)功能和 ReportViewer 控件,使您能夠?qū)⒐δ芡暾膱?bào)表加入到自己定義應(yīng)用程序。報(bào)表能夠包括表格格式數(shù)據(jù)、聚合數(shù)據(jù)和多維數(shù)據(jù)。提供 ReportViewer 控件的目的是能夠處理和顯示應(yīng)用程序中的報(bào)表。控件有兩種版本號(hào)。ReportViewer Web server控件用于在 ASP.NET 項(xiàng)目中駐留報(bào)表。ReportViewer Windows 窗口控件用于在 Windows 應(yīng)用程序項(xiàng)目中駐留報(bào)表。

?

這兩種版本號(hào)的控件都能夠配置為以本地處理模式或遠(yuǎn)程處理模式執(zhí)行。配置為何種處理模式將影響有關(guān)報(bào)表從設(shè)計(jì)到部署的全部方面。

?

l? “本地處理模式”是指 ReportViewer 控件在client應(yīng)用程序中處理報(bào)表。全部報(bào)表都是使用應(yīng)用程序提供的數(shù)據(jù)作為本地過(guò)程處理的。若要?jiǎng)?chuàng)建本地處理模式下使用的報(bào)表,須要使用 Visual Studio 中的報(bào)表項(xiàng)目模板。有關(guān)具體信息,請(qǐng)參閱將 ReportViewer 配置為進(jìn)行本地處理。

?

l? “遠(yuǎn)程處理模式”是指由 SQL Server 2005 Reporting Services 報(bào)表server處理報(bào)表。在遠(yuǎn)程處理模式下,ReportViewer 控件用作查看器,顯示已經(jīng)在 Reporting Services 報(bào)表server上公布的提前定義報(bào)表。從數(shù)據(jù)檢索到報(bào)表呈現(xiàn)的全部操作都是在報(bào)表server上處理的。若要使用遠(yuǎn)程處理模式,則必須具有 SQL Server 2005 Reporting Services 的許可副本。有關(guān)具體信息,請(qǐng)參閱將 ReportViewer 配置為進(jìn)行遠(yuǎn)程處理。

?

若要在應(yīng)用程序中使用 ReportViewer 控件,則必須了解怎樣將控件加入到項(xiàng)目表單或網(wǎng)頁(yè)中,怎樣配置控件來(lái)使用本地報(bào)表定義或server報(bào)表,怎樣更新數(shù)據(jù)源引用,以及怎樣在應(yīng)用程序中測(cè)試和部署報(bào)表和控件。提供的演練有助于您學(xué)習(xí)這些關(guān)鍵技能。有關(guān)具體信息,請(qǐng)參閱演示樣例和演練。

1.1.2.???????????????? Reportviewer配置為進(jìn)行本地處理

您能夠?qū)?/span> ReportViewer 控件配置為在本地處理報(bào)表,以使這些報(bào)表能夠使用該控件提供的內(nèi)置處理功能。假設(shè)配置 ReportViewer 控件進(jìn)行本地處理,則全部的報(bào)表處理都在承載應(yīng)用程序的計(jì)算機(jī)上進(jìn)行。報(bào)表使用的全部數(shù)據(jù)必須從client應(yīng)用程序提供的數(shù)據(jù)中檢索。

報(bào)表設(shè)計(jì)期間,必須事先定義報(bào)表中使用的數(shù)據(jù)源。執(zhí)行時(shí),應(yīng)用程序必須生成數(shù)據(jù)表或檢索報(bào)表中使用的數(shù)據(jù)。本地處理的報(bào)表能夠獲取數(shù)據(jù)表和業(yè)務(wù)對(duì)象中的數(shù)據(jù)。依據(jù)您使用的是 Web server控件還是 Windows 窗口控件,為本地處理的報(bào)表配置數(shù)據(jù)源的步驟有所不同。有關(guān)支持的數(shù)據(jù)源的具體信息,請(qǐng)參閱 ReportViewer 報(bào)表創(chuàng)建數(shù)據(jù)源

怎樣配置 ReportViewer 進(jìn)行本地處理

若要配置 ReportViewer 進(jìn)行本地處理,應(yīng)選擇或創(chuàng)建要用于 ReportViewer 控件的client報(bào)表定義 (.rdlc) 文件:

?

1.???????? 將工具箱的“數(shù)據(jù)”部分中的 ReportViewer 控件加入到項(xiàng)目中的窗口或網(wǎng)頁(yè)。

?

2.???????? 在“ReportViewer 任務(wù)”智能標(biāo)記面板中,單擊“設(shè)計(jì)新報(bào)表”來(lái)創(chuàng)建您要使用的 .rdlc 文件。另外,您也能夠選擇“選擇報(bào)表”來(lái)使用已是您項(xiàng)目的一部分的現(xiàn)有 .rdlc 文件。您僅僅能選擇一個(gè)報(bào)表。假設(shè)報(bào)表包括子報(bào)表或鉆取鏈接,則文件列表中將會(huì)顯示其它報(bào)表。

?

3.???????? 單擊“設(shè)計(jì)新報(bào)表”會(huì)將空的 .rdlc 文件加入到您的項(xiàng)目中,以圖形設(shè)計(jì)模式打開(kāi)空?qǐng)?bào)表,并提供菜單和設(shè)計(jì)圖面,以便您能夠創(chuàng)建新報(bào)表。若要?jiǎng)?chuàng)建新報(bào)表,您必須已經(jīng)定義要使用的數(shù)據(jù)集。有關(guān)創(chuàng)建 .rdlc 文件的具體信息,請(qǐng)參閱創(chuàng)建client報(bào)表定義 (.rdlc) 文件。

?

4.???????? 生成或部署應(yīng)用程序以驗(yàn)證報(bào)表是否正確地顯示在應(yīng)用程序中。

?

您能夠使用演練來(lái)了解怎樣配置和使用本地處理模式的 ReportViewer 控件。全部演練都包含本地處理報(bào)表的控件配置。有關(guān)具體信息,請(qǐng)參閱 演示樣例和演練。

何時(shí)使用本地處理

建議對(duì)于包含中小型號(hào)報(bào)表和數(shù)據(jù)集的應(yīng)用程序使用本地處理模式。因?yàn)槿繑?shù)據(jù)和報(bào)表的處理都是在client進(jìn)行的,因此,假設(shè)您試圖處理大型或復(fù)雜的報(bào)表和查詢(xún),性能可能會(huì)減少。假設(shè)您須要簡(jiǎn)單的部署策略,當(dāng)中應(yīng)用程序的全部部分都在同一臺(tái)計(jì)算機(jī)上一起執(zhí)行,也建議使用本地處理模式。

?

本地處理模式的功能不及遠(yuǎn)程處理強(qiáng)大,它適用于不須要報(bào)表server的獨(dú)立應(yīng)用程序。熟悉在遠(yuǎn)程 SQL Server Reporting Services 報(bào)表server上執(zhí)行的server報(bào)表的用戶(hù)應(yīng)注意下面特別之處:

?

1.???????? client報(bào)表定義 (.rdlc) 中的報(bào)表參數(shù)不映射到查詢(xún)參數(shù)。client報(bào)表定義中沒(méi)有參數(shù)輸入?yún)^(qū)域,它接受隨后在查詢(xún)中使用的值。

?

2.???????? client報(bào)表定義不包括嵌入式查詢(xún)信息。您必須定義返回可供報(bào)表使用的數(shù)據(jù)的數(shù)據(jù)源。

?

3.???????? 通過(guò) RSClientPrint ActiveX 控件執(zhí)行的基于瀏覽器的打印不適用于 ReportViewer Web server控件中執(zhí)行的client報(bào)表定義。打印控件是報(bào)表server功能集的一部分。

?

假設(shè)您受到這些特別之處的影響,您應(yīng)該遷移到 Reporting Services 安裝或編寫(xiě)提供您所需功能的應(yīng)用程序代碼。

?

1.1.3.???????????????? 加入和配置Reportviewer控件

1.???????? 向項(xiàng)目中加入 Windows 窗口或網(wǎng)頁(yè)。

?

2.???????? 在圖形設(shè)計(jì)模式中,將工具箱中的 ReportViewer 控件拖至窗口或網(wǎng)頁(yè)。ReportViewer 控件位于工具箱的“數(shù)據(jù)”組中。控件包含“ReportViewer 任務(wù)”智能標(biāo)記面板,這樣您能夠馬上選擇報(bào)表。

?

3.???????? 在“ReportViewer 任務(wù)”智能標(biāo)記面板中,選擇任務(wù)以加入報(bào)表并配置控件。指定報(bào)表確定將控件配置為本地處理還是遠(yuǎn)程處理。

?

l? 單擊“設(shè)計(jì)新報(bào)表”啟動(dòng)報(bào)表設(shè)計(jì)器,并在您的應(yīng)用程序中創(chuàng)建報(bào)表定義 (.rdlc) 文件。能夠在您的應(yīng)用程序中創(chuàng)建在client本地處理的新報(bào)表。若要了解有關(guān)創(chuàng)建報(bào)表的具體信息,請(qǐng)參閱創(chuàng)建client報(bào)表定義 (.rdlc) 文件。

?

l? 使用“選擇報(bào)表”來(lái)選擇現(xiàn)有報(bào)表定義。您能夠選擇在項(xiàng)目中定義的本地報(bào)表定義 (.rdlc) 文件,也能夠選擇“server報(bào)表”來(lái)選擇在 SQL Server 2005 Reporting Services 報(bào)表server上公布的報(bào)表。

?

l? 選擇server報(bào)表將控件配置為遠(yuǎn)程處理。若要選擇server報(bào)表,必須知道報(bào)表server URL 和報(bào)表的路徑。報(bào)表路徑必須以正斜杠 ( / ) 開(kāi)頭。若要執(zhí)行報(bào)表,必須對(duì)報(bào)表server具有權(quán)限才干訪問(wèn)報(bào)表。假設(shè)不知道 URL 或報(bào)表路徑,請(qǐng)咨詢(xún)報(bào)表server管理員。有關(guān)server報(bào)表的具體信息,請(qǐng)參閱將 ReportViewer 配置為進(jìn)行遠(yuǎn)程處理。

?

l? 選擇現(xiàn)有的報(bào)表定義 (.rdlc) 文件將控件配置為本地處理。選擇報(bào)表時(shí),必須選擇 .rdlc 文件;即使您的項(xiàng)目中包括 .rdl 文件,也不能指定 .rdl 文件。假設(shè)要使用 .rdl 文件,必須對(duì)其進(jìn)行轉(zhuǎn)換。有關(guān)具體信息,請(qǐng)參閱創(chuàng)建client報(bào)表定義 (.rdlc) 文件和轉(zhuǎn)換 RDL 文件和 RDLC 文件。

?

l? 單擊“在父容器中停靠”展開(kāi) ReportViewer 控件的視圖圖面,以便它使用窗口或頁(yè)面中全部可用空間。此選項(xiàng)可用于 Windows 窗口控件。

?

l? 單擊“又一次綁定數(shù)據(jù)源”更新報(bào)表中使用的數(shù)據(jù)表和業(yè)務(wù)對(duì)象的數(shù)據(jù)源綁定。此選項(xiàng)在為控件選擇報(bào)表之后可用。假設(shè)改動(dòng)報(bào)表數(shù)據(jù)源,或在圖形報(bào)表設(shè)計(jì)環(huán)境之外改動(dòng)數(shù)據(jù)綁定報(bào)表項(xiàng)(比如,直接編輯 XML),則須要又一次綁定數(shù)據(jù)源。

?

4.???????? 選擇 ReportViewer 控件并打開(kāi)“屬性”窗體。

?

5.???????? 對(duì) ReportViewer 控件設(shè)置屬性以確定視圖區(qū)域的可見(jiàn)性和可用性。可使用參考文檔了解每種屬性。有關(guān)具體信息,請(qǐng)參閱 ReportViewer 屬性。若要了解 ReportViewer 工具欄,請(qǐng)參閱配置并使用 ReportViewer 工具欄。

?

6.???????? 生成或部署應(yīng)用程序以在窗口或頁(yè)面中預(yù)覽報(bào)表。

?

1.1.4.???????????????? 創(chuàng)建client報(bào)表定義(.rdlc)文件

ReportViewer 控件支持本地處理模式,該模式同意用戶(hù)使用控件的內(nèi)置處理功能執(zhí)行client報(bào)表定義 (.rdlc) 文件。能夠easy地在應(yīng)用程序項(xiàng)目中創(chuàng)建以本地處理模式執(zhí)行的報(bào)表。創(chuàng)建這樣的報(bào)表的方法有兩種:

?

l? 能夠向應(yīng)用程序項(xiàng)目中加入報(bào)表項(xiàng)。從“項(xiàng)目”菜單中選擇“加入新項(xiàng)”時(shí),能夠選擇“報(bào)表”模板,從空白報(bào)表中生成報(bào)表布局。

?

l? 能夠在配置 ReportViewer 控件時(shí),單擊“設(shè)計(jì)新報(bào)表”。即打開(kāi)一個(gè)空白報(bào)表。

?

怎樣創(chuàng)建和預(yù)覽本地報(bào)表:

?

1.???????? Microsoft Visual Studio 2005 中,打開(kāi)應(yīng)用程序項(xiàng)目或站點(diǎn)。

?

2.???????? 創(chuàng)建要使用的數(shù)據(jù)源。能夠使用項(xiàng)目中可用的數(shù)據(jù)集中定義的數(shù)據(jù)表或業(yè)務(wù)對(duì)象。有關(guān)具體信息,請(qǐng)參閱為 ReportViewer 報(bào)表創(chuàng)建數(shù)據(jù)源。

?

3.???????? 創(chuàng)建要在項(xiàng)目中使用的報(bào)表定義 (.rdlc) 文件。

?

4.???????? 通過(guò)將工具箱中的表、文本框、矩陣、列表或圖表加入到空白報(bào)表來(lái)定義報(bào)表布局。這些項(xiàng)稱(chēng)為“數(shù)據(jù)區(qū)域”。數(shù)據(jù)區(qū)域綁定到數(shù)據(jù)源。具體來(lái)說(shuō),就是將數(shù)據(jù)區(qū)域中的每一個(gè)單元映射到數(shù)據(jù)源中的字段。有關(guān)具體信息,請(qǐng)參閱向 ReportViewer 報(bào)表加入數(shù)據(jù)區(qū)域。

?

5.???????? 通過(guò)加入樣式、格式設(shè)置、圖像、邊框、頁(yè)眉、頁(yè)腳、排序及其它報(bào)表功能來(lái)完畢報(bào)表。有關(guān)具體信息,請(qǐng)參閱定義報(bào)表布局。

?

6.???????? 選擇將包括控件的窗口或頁(yè)面。

?

7.???????? 在圖形設(shè)計(jì)模式中,將 ReportViewer 控件加入到網(wǎng)頁(yè)或窗口。ReportViewer 控件位于工具箱的“數(shù)據(jù)”部分中。有關(guān)具體信息,請(qǐng)參閱加入和配置 ReportViewer 控件。

?

8.???????? 在頁(yè)面或窗口中調(diào)整控件的大小和位置。

?

9.???????? 在“ReportViewer 任務(wù)”智能標(biāo)記面板中,選擇創(chuàng)建的client報(bào)表定義 (.rdlc) 文件來(lái)將報(bào)表綁定到控件。有關(guān)打開(kāi)智能標(biāo)記面板的具體信息,請(qǐng)參閱使用“ReportViewer 任務(wù)”智能標(biāo)記面板。

?

若要預(yù)覽報(bào)表,能夠生成或部署應(yīng)用程序。僅僅能通過(guò)在 ReportViewer 控件中執(zhí)行報(bào)表對(duì)其進(jìn)行預(yù)覽。沒(méi)有僅僅是針對(duì) .rdlc 文件的單獨(dú)預(yù)覽模式。請(qǐng)注意,您能夠隨時(shí)打開(kāi)和編輯報(bào)表定義,然后生成或部署應(yīng)用程序來(lái)檢查結(jié)果。

?

向項(xiàng)目加入新的報(bào)表項(xiàng):

?

l? 向項(xiàng)目加入新的報(bào)表項(xiàng)時(shí),會(huì)創(chuàng)建空白報(bào)表,并向項(xiàng)目加入 Report.rdlc 文件。報(bào)表定義以圖形設(shè)計(jì)模式打開(kāi)。報(bào)表對(duì)象命名空間加入到項(xiàng)目中,可用的報(bào)表控件加入到工具箱中。

?

向報(bào)表加入報(bào)表項(xiàng):

?

能夠輕松創(chuàng)建簡(jiǎn)單的報(bào)表,方法是將報(bào)表項(xiàng)(比如,文本框、表、圖表和圖像)拖至報(bào)表設(shè)計(jì)圖面,并對(duì)那些項(xiàng)設(shè)置屬性。

?

l? 較復(fù)雜的報(bào)表可能包含用于自己定義報(bào)表輸出的參數(shù)和表達(dá)式。比如,若要獲得某種股票的市場(chǎng)分析報(bào)表,必須向報(bào)表中加入?yún)?shù)才干指定股票代碼。您能夠在您的應(yīng)用程序中提供一個(gè)用戶(hù)界面,用于從用戶(hù)那里搜集參數(shù)值。參數(shù)能夠傳遞到查詢(xún),以便更準(zhǔn)確地指定數(shù)據(jù)選擇條件;也能夠用于篩選結(jié)果集,以便在報(bào)表中僅顯示部分結(jié)果集。能夠通過(guò)您的應(yīng)用程序提前定義參數(shù)值并傳入;也能夠在運(yùn)行報(bào)表之前由用戶(hù)指定參數(shù)值。

?

l? 表達(dá)式必須使用 Microsoft Visual Basic 編寫(xiě),用于聚合數(shù)據(jù)或運(yùn)行條件格式設(shè)置。報(bào)表還能夠包括自己定義代碼。您能夠在報(bào)表中嵌入自己定義代碼,也能夠?qū)ψ鳛閼?yīng)用程序一部分的自己定義程序集調(diào)用方法。與表達(dá)式不同,自己定義代碼可採(cǎi)用 Visual Basic 以外的其它語(yǔ)言編寫(xiě)。

?

1.1.5.???????????????? 部署報(bào)表和Reportviewer控件

您能夠?qū)?bào)表和 ReportViewer 控件作為應(yīng)用程序的一部分自由公布。依據(jù)控件類(lèi)型以及報(bào)表是配置為本地處理還是遠(yuǎn)程處理,部署要求會(huì)有非常大不同。在同一個(gè)應(yīng)用程序中,既能夠部署本地處理的報(bào)表,也能夠部署遠(yuǎn)程處理的報(bào)表。

?

又一次公布 ReportViewer 控件

?

可又一次公布的 ReportViewer 控件是一個(gè)名為 ReportViewer.exe 的自解壓縮文件,當(dāng)中包含一個(gè) .msi 文件以及其它文件。您能夠在下面位置找到 ReportViewer.exe 文件:C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper/Packages/Report Viewer/ReportViewer.exe

?

您所使用控件的類(lèi)型決定執(zhí)行 ReportViewer.exe 的位置。

?

l? 假設(shè)使用 ASP.NET 應(yīng)用程序部署控件,則必須在部署計(jì)算機(jī)上執(zhí)行 ReportViewer.exe

?

l? 假設(shè)使用 Windows 窗口應(yīng)用程序部署控件,也必須在部署計(jì)算機(jī)上執(zhí)行 ReportViewer.exe。您能夠使用引導(dǎo)程序來(lái)自己主動(dòng)完畢此步驟:

?

1.???????? 打開(kāi)項(xiàng)目屬性頁(yè)。

?

2.???????? 單擊“公布”,再單擊“必備組件”。

?

3.???????? 選中“Microsoft Visual Studio 2005 報(bào)表查看器”,然后單擊“確定”。

?

4.???????? 公布應(yīng)用程序。

?

在安裝應(yīng)用程序時(shí),會(huì)在本地計(jì)算機(jī)上進(jìn)行檢查,以確定是否已安裝 ReportViewer。假設(shè)未安裝,安裝程序?qū)惭b它。

?

部署報(bào)表查看器 Web server控件的注意事項(xiàng)

?

Web 場(chǎng)中部署 ASP.NET 應(yīng)用程序須要進(jìn)行其它配置,以確保在整個(gè)場(chǎng)中維護(hù)視圖狀態(tài)。假設(shè)是在 Web 場(chǎng)環(huán)境中部署 ReportViewer Web server控件,則應(yīng)在應(yīng)用程序的 Web.config 文件里指定 machineKey 元素。有關(guān)具體信息,請(qǐng)參閱 ReportViewer Web.config 設(shè)置。

?

必須注意,在 ReportViewer Web server控件中處理的報(bào)表對(duì)瀏覽器有要求。瀏覽器兼容性問(wèn)題會(huì)影響某些種類(lèi)的報(bào)表功能的可用性。有關(guān)具體信息,請(qǐng)參閱 ReportViewer Web server控件的瀏覽器支持。

?

分發(fā)報(bào)表

?

除非在執(zhí)行時(shí)動(dòng)態(tài)生成client報(bào)表定義 (.rdlc) 文件,否則本地處理的報(bào)表將以 .rdlc 文件存儲(chǔ)在文件系統(tǒng)上,而且必須與應(yīng)用程序一起提供。這些文件能夠安裝在磁盤(pán)驅(qū)動(dòng)器上,或者編譯到應(yīng)用程序可執(zhí)行文件里。

?

在遠(yuǎn)程server上處理的報(bào)表將存儲(chǔ)在 Microsoft SQL Server 2005 Reporting Services 報(bào)表server上。應(yīng)用程序中不包括不論什么報(bào)表文件,由于報(bào)表是遠(yuǎn)程處理的,而且本地系統(tǒng)中不存在報(bào)表。若要部署在報(bào)表server上公布的報(bào)表,必須提供對(duì)報(bào)表server進(jìn)行訪問(wèn)的權(quán)限,并確保應(yīng)用程序用戶(hù)有權(quán)查看該server上的報(bào)表。部署server報(bào)表須要了解報(bào)表server所使用的身份驗(yàn)證擴(kuò)展插件,以及提供內(nèi)容訪問(wèn)權(quán)限和操作權(quán)限的、基于角色的身份驗(yàn)證模式。有關(guān)具體信息,請(qǐng)參閱server報(bào)表的部署注意事項(xiàng)。

?

1.1.6.???????????????? Reportviewer創(chuàng)建數(shù)據(jù)源

假設(shè)您將 ReportViewer 控件配置為以本地處理模式執(zhí)行,則client應(yīng)用程序必須提供報(bào)表中包括的全部數(shù)據(jù)。在將數(shù)據(jù)用于報(bào)表之前,必須對(duì)數(shù)據(jù)進(jìn)行全然處理。若要向報(bào)表提供數(shù)據(jù),請(qǐng)?jiān)陧?xiàng)目中定義指向數(shù)據(jù)源的數(shù)據(jù)連接。支持的數(shù)據(jù)源包括:

?

l? 自己定義業(yè)務(wù)對(duì)象

?

l? ADO.NET DataTable

?

僅僅要報(bào)表能夠作為 ADO.NET DataTable 或業(yè)務(wù)對(duì)象的可枚舉集合來(lái)提供,該報(bào)表就能夠使用隨意源中的數(shù)據(jù)。

怎樣為 ReportViewer 報(bào)表加入數(shù)據(jù)源

?

建議使用下列方法來(lái)設(shè)置數(shù)據(jù)源,以便可以在client報(bào)表定義中使用該數(shù)據(jù)源。

?

l? 向應(yīng)用程序項(xiàng)目中加入數(shù)據(jù)源并配置指向基礎(chǔ)數(shù)據(jù)的數(shù)據(jù)連接。請(qǐng)?jiān)诨A(chǔ)數(shù)據(jù)存儲(chǔ)區(qū)中選擇要使用的特定數(shù)據(jù)。要在報(bào)表中使用的數(shù)據(jù)必須存在于“數(shù)據(jù)源”窗體中。對(duì)于數(shù)據(jù)表,數(shù)據(jù)源將顯示查詢(xún)所返回的列名稱(chēng)。對(duì)于業(yè)務(wù)對(duì)象的可枚舉集合,數(shù)據(jù)源將顯示由類(lèi)對(duì)象所公開(kāi)的簡(jiǎn)單數(shù)據(jù)類(lèi)型的公共屬性列表。

?

l? 若要?jiǎng)?chuàng)建數(shù)據(jù)表,請(qǐng)向項(xiàng)目中加入數(shù)據(jù)集,并使用 TableAdapter 向?qū)渲迷摂?shù)據(jù)表。TableAdapter 向?qū)峁┝瞬樵?xún)生成器和數(shù)據(jù)預(yù)覽功能,使您能夠馬上確認(rèn)查詢(xún)結(jié)果。

?

l? 若要?jiǎng)?chuàng)建業(yè)務(wù)對(duì)象,請(qǐng)使用“項(xiàng)目”菜單中的“加入新項(xiàng)”命令,并選擇類(lèi)對(duì)象。提供用于公開(kāi)簡(jiǎn)單數(shù)據(jù)類(lèi)型的公共屬性的實(shí)現(xiàn)方式,以便在設(shè)計(jì)時(shí)使用。提供用于返回這些屬性的可枚舉集合的方法,以便在執(zhí)行時(shí)使用。

?

配置了數(shù)據(jù)源之后,可綁定數(shù)據(jù)就會(huì)在“數(shù)據(jù)源”窗體中顯示為一個(gè)層次結(jié)構(gòu)。若要將數(shù)據(jù)綁定到報(bào)表,請(qǐng)將展開(kāi)層次結(jié)構(gòu)的節(jié)點(diǎn)拖到報(bào)表布局中的文本框或數(shù)據(jù)區(qū)域中。假設(shè)在定義了報(bào)表以后改動(dòng)數(shù)據(jù)集,則必須更新報(bào)表和控件中的數(shù)據(jù)綁定。有關(guān)具體信息,請(qǐng)參閱更新和又一次綁定數(shù)據(jù)源引用。

?

您能夠在項(xiàng)目中包括隨意數(shù)量的數(shù)據(jù)源。若要查看報(bào)表實(shí)際使用的數(shù)據(jù)源列表,請(qǐng)選擇“報(bào)表”菜單中的“數(shù)據(jù)源”。若要在應(yīng)用程序中預(yù)覽報(bào)表及其數(shù)據(jù),則必須生成或部署該應(yīng)用程序以驗(yàn)證報(bào)表是否包括您期望的數(shù)據(jù)。有關(guān)配置控件和定義報(bào)表布局的具體信息,請(qǐng)參閱將 ReportViewer 配置為進(jìn)行本地處理和創(chuàng)建client報(bào)表定義 (.rdlc) 文件。

?

若要馬上開(kāi)始操作,請(qǐng)使用下列演練來(lái)了解怎樣向項(xiàng)目中加入每種數(shù)據(jù)源:

?

l? 演練:在本地處理模式下將數(shù)據(jù)庫(kù)數(shù)據(jù)源與 ReportViewer Web server控件一起使用

?

l? 演練:在本地處理模式下將業(yè)務(wù)對(duì)象數(shù)據(jù)源與 ReportViewer Web server控件一起使用

?

使用業(yè)務(wù)對(duì)象

業(yè)務(wù)對(duì)象是公開(kāi)簡(jiǎn)單數(shù)據(jù)類(lèi)型的公共屬性的隨意應(yīng)用程序?qū)ο蟆I(yè)務(wù)對(duì)象的演示樣例可包含基礎(chǔ)數(shù)據(jù)存儲(chǔ)區(qū)中的客戶(hù)對(duì)象集合、由應(yīng)用程序創(chuàng)建的書(shū)籍標(biāo)題對(duì)象數(shù)組或者從 RSS XML 源創(chuàng)建的通道對(duì)象列表。

?

若要成為可訪問(wèn)的數(shù)據(jù)源,該集合必須支持 IEnumerable。可綁定數(shù)據(jù)在“數(shù)據(jù)源”窗體中顯示為一個(gè)層次結(jié)構(gòu)視圖。對(duì)于業(yè)務(wù)對(duì)象,數(shù)據(jù)源將顯示由類(lèi)對(duì)象所公開(kāi)的簡(jiǎn)單數(shù)據(jù)類(lèi)型的公共屬性列表。您隨后能夠?qū)⑺鼈兘壎ǖ綀?bào)表定義中的數(shù)據(jù)區(qū)域和文本框中。

?

若要提供業(yè)務(wù)對(duì)象集合,能夠向項(xiàng)目中加入類(lèi)或加入對(duì)類(lèi)程序集的引用。

?

使用數(shù)據(jù)表

DataTable ADO.NET DataSet 的一部分,通過(guò)從“項(xiàng)目”菜單中選擇“加入新項(xiàng)”能夠輕松地將其加入到項(xiàng)目中。若要配置數(shù)據(jù)連接,請(qǐng)啟動(dòng) TableAdapter 配置向?qū)А摹皵?shù)據(jù)”菜單中選擇“加入”,然后選擇“TableAdapter”。還能夠定義查詢(xún)來(lái)限制結(jié)果集。向?qū)ЫY(jié)束后,可通過(guò)“數(shù)據(jù)源”窗體來(lái)訪問(wèn) DataTable 中的列,以便您能夠?qū)⑺鼈兘壎ǖ絚lient報(bào)表定義中的數(shù)據(jù)區(qū)域和文本框中。

?

ReportViewer Web server控件定義數(shù)據(jù)源

數(shù)據(jù)源控件支持提取數(shù)據(jù)訪問(wèn)層,以便網(wǎng)頁(yè)上的控件綁定到數(shù)據(jù)源,而該數(shù)據(jù)源隨后綁定到實(shí)際數(shù)據(jù)。這使您能夠有效地更改數(shù)據(jù)源,而無(wú)需將每一個(gè)控件又一次綁定到每一個(gè)數(shù)據(jù)塊。

?

當(dāng)您設(shè)計(jì)網(wǎng)頁(yè)時(shí),“工具箱數(shù)據(jù)”區(qū)域?qū)⒘谐鰩讉€(gè)數(shù)據(jù)源控件,比如 SqlDataSource XmlDataSource。某些數(shù)據(jù)源控件支持在網(wǎng)頁(yè)中使用頁(yè)內(nèi)存,其它控件則使用共享數(shù)據(jù)。由于報(bào)表不使用頁(yè)內(nèi)存,所以對(duì)于 ReportViewer Web server控件,最佳選擇是使用 ObjectDataSource 控件。此控件在內(nèi)存中緩存對(duì)象(DataTable 或業(yè)務(wù)對(duì)象集合)與報(bào)表數(shù)據(jù)區(qū)域之間架起了一座橋梁。假設(shè)向網(wǎng)頁(yè)中加入了 ReportViewer 控件,將會(huì)自己主動(dòng)加入和配置 ObjectDataSource 控件。

?

為了盡可能避免編寫(xiě)額外代碼,ASP.NET 的網(wǎng)頁(yè)支持提供了額外的后臺(tái)處理來(lái)檢測(cè)提供可綁定業(yè)務(wù)對(duì)象的集合。假設(shè)向項(xiàng)目中加入的類(lèi)將返回一個(gè)對(duì)象集合,且這些對(duì)象能夠被標(biāo)識(shí)為業(yè)務(wù)對(duì)象,則該集合將會(huì)自己主動(dòng)加入到“站點(diǎn)數(shù)據(jù)源”窗體中。

?

1.1.7.???????????????? 演練:在本地處理模式下將數(shù)據(jù)庫(kù)數(shù)據(jù)源與ReportViewer Webserver控件一起使用

本演練顯示了怎樣為 Microsoft Visual Studio 2005 ASP.NET 站點(diǎn)創(chuàng)建報(bào)表,以及怎樣向網(wǎng)頁(yè)加入 ReportViewer 控件,以便用戶(hù)能夠查看該報(bào)表。

?

?先決條件

本演練假定您能夠連接到 Oracle DataBase 實(shí)例,而且已建立EMPLOYEE_TABLE_2

表。您還必須對(duì)執(zhí)行 Microsoft Internet Information Services (IIS) 5.0 版或更高版本號(hào)的server具有訪問(wèn)權(quán)限,并具有創(chuàng)建 ASP.NET 網(wǎng)頁(yè)的權(quán)限。

EMPLOYEE_TABLE_2建表

create table EMPLOYEE_TABLE_2 ( EMPLOYEE_ID NUMBER, EMPLOYEE_NAME VARCHAR2(20), AGE NUMBER, DEPARTMENT_ID NUMBER, PROJECT_ID NUMBER, LOGIN_ID VARCHAR2(20), LOGIN_PASSWORD VARCHAR2(20) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );

?

在您的計(jì)算機(jī)上運(yùn)行下面步驟,以使用 Visual Studio 2008 模板創(chuàng)建含有配置為查看您所創(chuàng)建報(bào)表的 ReportViewer 控件的 ASP.NET 網(wǎng)頁(yè)。常規(guī)步驟例如以下:

?

1.???????? 創(chuàng)建新的站點(diǎn)。

?

2.???????? 通過(guò)加入 DataSet 來(lái)定義數(shù)據(jù)連接和 DataTable

?

3.???????? 設(shè)計(jì)報(bào)表。

?

4.???????? ReportViewer 控件加入到應(yīng)用程序。

?

5.???????? 編譯和執(zhí)行應(yīng)用程序。

?

對(duì)于本演示樣例,在 Microsoft Visual C# 中創(chuàng)建應(yīng)用程序。

?

?創(chuàng)建新的站點(diǎn)

1.???????? 在“文件”菜單中,指向“新建”,選擇“站點(diǎn)”。

?

?

2.???????? 在“新建站點(diǎn)”對(duì)話框中,選擇“ASP.NET 站點(diǎn)”。

?

?

3.???????? 在“語(yǔ)言”列表中,選擇 Visual C#,再單擊“確定”。

?

4.???????? 在“位置”框中,保留選定的默認(rèn) HTTP,然后輸入站點(diǎn)根文件夾的位置,使用“瀏覽”導(dǎo)航及創(chuàng)建新的文件夾(假設(shè)須要)。單擊“確定”。

?

5.???????? 站點(diǎn)項(xiàng)目將打開(kāi),并顯示 Default.aspx 網(wǎng)頁(yè)。

?

6.???????? 在“查看”菜單上,選擇“設(shè)計(jì)器”。

?

如今您就能夠改動(dòng)站點(diǎn)的默認(rèn)頁(yè)。

?

?通過(guò)加入數(shù)據(jù)集來(lái)定義數(shù)據(jù)連接和 DataTable

1.???????? ??web.config中配置數(shù)據(jù)庫(kù)連接

1)???????? 什么是web.config

可擴(kuò)展的基礎(chǔ)結(jié)構(gòu)是 ? ASP.NET ? 配置系統(tǒng)的一大特色,該基礎(chǔ)結(jié)構(gòu)使您能夠在最初部署 ? ASP.NET ? 應(yīng)用程序時(shí)定義配置設(shè)置,以便能夠隨時(shí)加入或改動(dòng)這些配置設(shè)置,同一時(shí)候?qū)\(yùn)作著的 ? Web ? 應(yīng)用程序和server產(chǎn)生的影響也將被減至最小。

2)???????? 配置連接

web.config<configuration></configuration>下加上

<connectionStrings> <add name="ConnectionString" connectionString="Data Source=HCDB;Persist Security Info=True;User ID=huchen;Password=huchen;Unicode=True" providerName="System.Data.OracleClient"/> </connectionStrings>

當(dāng)中Data Source是指tns中的Host String, User IDoracle登陸username,Passwordoracle登錄password。providerName是數(shù)據(jù)提供者。

?

2.???????? 在server資源管理器中,右鍵單擊站點(diǎn)項(xiàng)目(非解決方式節(jié)點(diǎn)),然后選擇“加入新項(xiàng)”。

?

3.???????? 在“加入新項(xiàng)”對(duì)話框中,單擊“數(shù)據(jù)集”。提示您是否應(yīng)將項(xiàng)加入到 App_Code 目錄是,請(qǐng)單擊“是”。這將把新的 XSD 文件 DataSet.xsd 加入到項(xiàng)目,打開(kāi)數(shù)據(jù)集設(shè)計(jì)器,并調(diào)用 TableAdapter 配置向?qū)А?/span>

?

?

?

4.???????? 在“選擇您的數(shù)據(jù)連接”頁(yè)上,配置向?qū)ё约褐鲃?dòng)找到了Web.config中的連接,接受默認(rèn)連接并點(diǎn)擊下一步。

?

5.???????? 在“選擇命令類(lèi)型”頁(yè)上,選擇“使用 SQL 語(yǔ)句”。

?

6.???????? 在“輸入 SQL 語(yǔ)句”頁(yè)上,輸入下面SQL 查詢(xún)以從 EMPLOYEE_TABLE_2表中中檢索數(shù)據(jù),再單擊“完畢”:

SELECT t.employee_id, t.employee_name, t.age FROM employee_table_2 t

?

還能夠單擊“查詢(xún)生成器”button,然后使用查詢(xún)生成器創(chuàng)建查詢(xún),并使用“運(yùn)行查詢(xún)”button對(duì)其進(jìn)行檢查。

?

7.???????? 在“選擇要生成的方法”頁(yè)上,接受默認(rèn)值“填充 DataTable”(“方法名稱(chēng)”:Fill)和“返回 DataTable”(“方法名稱(chēng)”:GetData)。單擊“下一步”。

?

8.???????? 在“向?qū)ЫY(jié)果”頁(yè)上,單擊“完畢”。

如今已完畢將 ADO.NET DataTable 配置為報(bào)表的數(shù)據(jù)源。

忽略下面錯(cuò)誤,點(diǎn)擊確定。

?

9.???????? Visual Studio 的“數(shù)據(jù)集設(shè)計(jì)器”頁(yè)上,應(yīng)看到加入的 DataTable(默認(rèn)名稱(chēng)為 DataTable1),當(dāng)中列出了從查詢(xún)定義得到的列。在“數(shù)據(jù)”菜單中,能夠選擇“預(yù)覽數(shù)據(jù)”來(lái)檢查查詢(xún)結(jié)果。

?

?設(shè)計(jì)報(bào)表

1.???????? 在“站點(diǎn)”菜單上,選擇“加入新項(xiàng)”。

?

1.???????? 在“加入新項(xiàng)”對(duì)話框中,選擇“報(bào)表”模板,輸入報(bào)表文件的名稱(chēng),再單擊“加入”。這將創(chuàng)建報(bào)表定義文件(默覺(jué)得 Report.rdlc),啟動(dòng)報(bào)表設(shè)計(jì)器,并在左窗格中顯示“站點(diǎn)數(shù)據(jù)源”窗體。假設(shè)看不到“站點(diǎn)數(shù)據(jù)源”選項(xiàng)卡,請(qǐng)從“數(shù)據(jù)”菜單中選擇“顯示數(shù)據(jù)源”。

?

?

2.???????? 顯示工具箱,將“報(bào)表項(xiàng)”組中的“表”拖至報(bào)表設(shè)計(jì)圖面上。

表控件設(shè)計(jì)分三行,各自是表頭,具體信息,表尾。表頭是指報(bào)表的列字段,具體信息是綁定的列,既報(bào)表每列的數(shù)據(jù),表尾是報(bào)表的每列的底部數(shù)據(jù)

?

?

?

3.???????? 在“站點(diǎn)數(shù)據(jù)源”窗體,展開(kāi) DataTable1 節(jié)點(diǎn),直至看到查詢(xún)得到的列,然后將 Employee_Id 拖至表中第一列的中間行。中間行是具體信息行。請(qǐng)注意,指定具體信息行時(shí),標(biāo)題行會(huì)自己主動(dòng)填充。

?

4.???????? 將“Employee_Name”字段拖至第二列的具體信息行,使其位于 Employee_Id 字段旁邊。

?

5.???????? Age 字段拖至第三列的具體信息行,使其位于 Employee_Name 字段旁邊。

?

6.???????? (可選)單擊第一行左側(cè)的“表格表頭”button,并選擇“粗體”格式樣式。

?

7.???????? 在“文件”菜單上,選擇“所有保存”。

?

?向應(yīng)用程序加入 ReportViewer 控件

1.???????? 在解決方式資源管理器中,右鍵單擊 Default.aspx,選擇“視圖設(shè)計(jì)器”。

?

2.???????? 將工具箱中的“數(shù)據(jù)”組中的 ReportViewer 控件拖至頁(yè)面。

?

1)???????? 假設(shè)“數(shù)據(jù)”節(jié)點(diǎn)下沒(méi)有ReportViewer圖標(biāo),則右擊“數(shù)據(jù)”節(jié)點(diǎn),選擇“選擇項(xiàng)”。

?

2)???????? .NET Framework組件選項(xiàng)卡下選中命名空間為Microsoft.Reporting.WebForm下的ReportViewer,點(diǎn)擊確定。

?

3.???????? 通過(guò)單擊網(wǎng)頁(yè)上 ReportViewer 控件右上角中的三角形,打開(kāi)“ReportViewer 任務(wù)”智能標(biāo)記面板。在“選擇報(bào)表”框中,選擇 Report.rdlc 的全然限定文件名稱(chēng)。

?

選擇報(bào)表后,將自己主動(dòng)創(chuàng)建報(bào)表中使用的數(shù)據(jù)源的實(shí)例。并生成代碼以實(shí)例化每一個(gè) DataTable(及其 DataSet 容器)以及與報(bào)表中使用的每一個(gè)數(shù)據(jù)源相相應(yīng)的 ObjectDataSource 控件。此數(shù)據(jù)源控件自己主動(dòng)進(jìn)行配置。

?

????

?

注意

若要了解為什么 ASP.NET 使用 ObjectDataSource 控件而不使用 SqlDataSource 控件(即使基礎(chǔ)數(shù)據(jù)源可能是數(shù)據(jù)庫(kù)或某些其它強(qiáng)類(lèi)型化的數(shù)據(jù)存儲(chǔ)),請(qǐng)參閱為 ReportViewer 報(bào)表創(chuàng)建數(shù)據(jù)源。

?編譯和執(zhí)行應(yīng)用程序

1.???????? 設(shè)置Default.aspx為起始頁(yè),按 Ctrl+F5 在不調(diào)試情況下執(zhí)行頁(yè),或者按 F5 在執(zhí)行頁(yè)時(shí)進(jìn)行調(diào)試。

?

在編譯進(jìn)程中包含對(duì)報(bào)表進(jìn)行編譯,并將發(fā)現(xiàn)的全部錯(cuò)誤(比如,報(bào)表中使用的表達(dá)式中的語(yǔ)法錯(cuò)誤)加入到“任務(wù)列表”。

?

網(wǎng)頁(yè)顯示在瀏覽器中。ReportViewer 控件顯示報(bào)表。能夠使用工具欄瀏覽報(bào)表、縮放及導(dǎo)出到 Excel

?

2.???????? 關(guān)閉瀏覽器。

1.1.8.???????????????? 演練:在本地處理模式下將業(yè)務(wù)對(duì)象數(shù)據(jù)源與ReportViewer Webserver控件一起使用

?

本演練說(shuō)明了怎樣在 Microsoft Visual Studio 2005 ASP.NET 應(yīng)用程序中的報(bào)表中使用對(duì)象數(shù)據(jù)源。有關(guān)業(yè)務(wù)對(duì)象和對(duì)象數(shù)據(jù)源的具體信息,請(qǐng)參閱Binding to Business Objects

?

請(qǐng)運(yùn)行下列步驟向 Visual Studio ASP.NET 站點(diǎn)項(xiàng)目加入報(bào)表。本演示樣例將用 Microsoft Visual C# 來(lái)創(chuàng)建應(yīng)用程序。

?

?創(chuàng)建新的 ASP.NET 站點(diǎn)項(xiàng)目

1.???????? 在“文件”菜單中,指向“新建”,然后選擇“站點(diǎn)”。

?

2.???????? 在“新建站點(diǎn)”對(duì)話框中,從“語(yǔ)言”下拉列表中選擇 Visual C#,并選擇 ASP.NET 站點(diǎn)模板。

3.???????? 在“位置”中,選擇 HTTP 并鍵入站點(diǎn)的 URL。默認(rèn)的 URL http://localhost/WebSite。改為http://localhost/ReportViewerTest,單擊“確定”。

?

?創(chuàng)建要用作數(shù)據(jù)源的業(yè)務(wù)對(duì)象。

1.???????? 在解決方式資源管理器中選擇項(xiàng)目站點(diǎn)(以“http://”開(kāi)頭)。右鍵單擊并選擇“加入新項(xiàng)”。

?

?

2.???????? 在“加入新項(xiàng)”對(duì)話框中,選擇“類(lèi)”,鍵入 Employee.cs 作為文件名稱(chēng),然后單擊“加入”。

?

3.???????? 在詢(xún)問(wèn)“是否要將該類(lèi)放在‘App_Code’目錄中”的消息框中,選擇“是”。新文件將被加入到項(xiàng)目中并在 Visual Studio 中自己主動(dòng)打開(kāi)。

?

4.???????? Oracle數(shù)據(jù)庫(kù)中事例創(chuàng)建表

create table EMPLOYEE_TABLE_2 ( EMPLOYEE_ID NUMBER, EMPLOYEE_NAME VARCHAR2(20), AGE NUMBER, DEPARTMENT_ID NUMBER, PROJECT_ID NUMBER, LOGIN_ID VARCHAR2(20), LOGIN_PASSWORD VARCHAR2(20) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );

5.???????? web.config中配置數(shù)據(jù)庫(kù)連接

3)???????? 什么是web.config

可擴(kuò)展的基礎(chǔ)結(jié)構(gòu)是 ? ASP.NET ? 配置系統(tǒng)的一大特色,該基礎(chǔ)結(jié)構(gòu)使您能夠在最初部署 ? ASP.NET ? 應(yīng)用程序時(shí)定義配置設(shè)置,以便能夠隨時(shí)加入或改動(dòng)這些配置設(shè)置,同一時(shí)候?qū)\(yùn)作著的 ? Web ? 應(yīng)用程序和server產(chǎn)生的影響也將被減至最小。

4)???????? 配置連接

web.config<configuration></configuration>下加上

<connectionStrings> <add name="ConnectionString" connectionString="Data Source=HCDB;Persist Security Info=True;User ID=huchen;Password=huchen;Unicode=True" providerName="System.Data.OracleClient"/> </connectionStrings>

當(dāng)中Data Source是指tns中的Host String, User IDoracle登陸username,Passwordoracle登錄password。providerName是數(shù)據(jù)提供者。

6.???????? 加入對(duì)System.Data.OracleClient的引用

1)???????? 右擊站點(diǎn)項(xiàng)目,在彈出的選項(xiàng)卡下選擇加入引用

?

?

2)???????? 找到.net標(biāo)簽頁(yè)下找到System.Data.OracleClient,單擊確定。

?

7.???????? Employee.cs 的默認(rèn)代碼替換為下面代碼:

using System; using System.Data; using System.Data.OracleClient; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; /// <summary> ///employee 的摘要說(shuō)明 ///created by 胡琛 17-Feb-09 /// </summary> public class Employee { public Employee() { // //TODO: 在此處加入構(gòu)造函數(shù)邏輯 // } public Employee(string employeeId, string employeeName, string employeeAge) { this.employeeId = employeeId; this.employeeName = employeeName; this.employeeAge = employeeAge; } private string employeeId; private string employeeName; private string employeeAge; public string EmployeeId { get { return employeeId; } set { employeeId = value; } } public string EmployeeName { get { return employeeName; } set { employeeName = value; } } public string EmployeeAge { get { return employeeAge; } set { employeeAge = value; } } public static List<Employee> GetEmployees() { OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); OracleCommand cmd = new OracleCommand(); cmd.CommandText = "select * from employee_table_2"; cmd.Connection = conn; conn.Open(); OracleDataReader reader = cmd.ExecuteReader(); List<Employee> list = new List<Employee>(); while (reader.Read()) { Employee employee = new Employee(reader.GetOracleNumber(0).ToString(), reader.GetOracleString(1).ToString(), reader.GetOracleNumber(2).ToString()); list.Add(employee); } reader.Close(); conn.Close(); return list; } }

?

8.???????? 從“項(xiàng)目”菜單中,選擇“生成解決方式”。這將為對(duì)象創(chuàng)建程序集,并在您向項(xiàng)目中加入報(bào)表后,使業(yè)務(wù)對(duì)象“Employee”顯示在“站點(diǎn)數(shù)據(jù)源”窗體中。

?

?向項(xiàng)目中加入報(bào)表

1.???????? 請(qǐng)確保在解決方式資源管理器中選中了項(xiàng)目站點(diǎn)或某個(gè)項(xiàng)目項(xiàng)。

?

2.???????? 右鍵單擊項(xiàng)目站點(diǎn)并選擇“加入新項(xiàng)”。

?

3.???????? 在“加入新項(xiàng)”對(duì)話框中,選擇“報(bào)表”。鍵入報(bào)表的名稱(chēng),然后單擊“加入”。該報(bào)表將被加入到項(xiàng)目中并在報(bào)表設(shè)計(jì)器中自己主動(dòng)打開(kāi)。報(bào)表的默認(rèn)名稱(chēng)為 Report.rdlc

?

?檢查“站點(diǎn)數(shù)據(jù)源”窗體

2.???????? 單擊“Report.rdlc 設(shè)計(jì)”選項(xiàng)卡。在左側(cè)窗格中,單擊“站點(diǎn)數(shù)據(jù)源”選項(xiàng)卡。假設(shè)看不到“站點(diǎn)數(shù)據(jù)源”選項(xiàng)卡,請(qǐng)從“數(shù)據(jù)”菜單中選擇“顯示數(shù)據(jù)源”。

?

3.???????? 確認(rèn)對(duì)象“Employee”及其3個(gè)公共屬性“id”,“名稱(chēng)”和“年齡”都顯示在“站點(diǎn)數(shù)據(jù)源”窗體中的層次結(jié)構(gòu)中。

?

?設(shè)計(jì)報(bào)表

1.???????? 假設(shè)報(bào)表是以設(shè)計(jì)模式打開(kāi)的,請(qǐng)打開(kāi)工具箱。從工具箱中將某個(gè)表控件拖到報(bào)表上。該表控件將在一個(gè)選項(xiàng)卡式設(shè)計(jì)窗體中打開(kāi)。

?

2.???????? 表控件設(shè)計(jì)分三行,各自是表頭,具體信息,表尾。表頭是指報(bào)表的列字段,具體信息是綁定的列,既報(bào)表每列的數(shù)據(jù),表尾是報(bào)表的每列的底部數(shù)據(jù)。

????

3.???????? 從“站點(diǎn)數(shù)據(jù)源”窗體,將“Employee”數(shù)據(jù)源中的“EmployeeId”字段拖到表的具體信息行的第一列中。具體信息行是中間行。請(qǐng)注意,當(dāng)您指定具體信息行后,系統(tǒng)將自己主動(dòng)填充標(biāo)題行。

?

4.???????? 將“EmployeeName”字段拖到具體信息行的第二列中,使其顯示在“EmployeeId”字段的旁邊。第三列EmployeeAge同上。(可選操作)通過(guò)單擊左側(cè)的表格表頭圖標(biāo)并應(yīng)用粗體樣式來(lái)選擇標(biāo)題行。

???

5.???????? 若要向報(bào)表中加入標(biāo)題,請(qǐng)打開(kāi)工具箱并將一個(gè)文本框拖到報(bào)表上。將該文本框置于表上方。鍵入 Employee 作為報(bào)表名稱(chēng)。(可選操作)對(duì)文本應(yīng)用字號(hào)和字體樣式來(lái)突出標(biāo)題。

?

?向網(wǎng)頁(yè)中加入 ReportViewer 控件

1.???????? 通過(guò)在解決方式資源管理器中右鍵單擊 Default.aspx,選擇設(shè)計(jì)視圖中的默認(rèn)網(wǎng)頁(yè),然后選擇“視圖設(shè)計(jì)器”。

2.???????? 打開(kāi)工具箱。在工具箱中,展開(kāi)“數(shù)據(jù)”節(jié)點(diǎn)并將 ReportViewer 圖標(biāo)拖到網(wǎng)頁(yè)上。

?

3)???????? 假設(shè)“數(shù)據(jù)”節(jié)點(diǎn)下沒(méi)有ReportViewer圖標(biāo),則右擊“數(shù)據(jù)”節(jié)點(diǎn),選擇“選擇項(xiàng)”。

?

4)???????? .NET Framework組件選項(xiàng)卡下選中命名空間為Microsoft.Reporting.WebForm下的ReportViewer,點(diǎn)擊確定。

?

3.???????? 選擇 ReportViewer 控件,并通過(guò)單擊右上角的三角形打開(kāi)智能標(biāo)記面板。單擊“選擇報(bào)表”下拉列表并選擇剛才設(shè)計(jì)的報(bào)表。默認(rèn)情況下,名稱(chēng)為 c:/inetpub/wwwroot/ReportViewerTest/Report.rdlc。請(qǐng)注意,ObjectDataSource 控件直接顯示在 ReportViewer 控件以下,并自己主動(dòng)設(shè)置為檢索 DataTable 的內(nèi)容,就像通過(guò)數(shù)據(jù)表的 TableAdapter 組件所配置的那樣。

?

?

????

?執(zhí)行應(yīng)用程序

l? Default.aspx設(shè)為起始頁(yè),按 F5 以邊執(zhí)行邊調(diào)試,或按 CTRL + F5 以執(zhí)行而不調(diào)試,然后查看報(bào)表。

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/mengfanrong/p/3794047.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NETserver控件使用之Reportviewer 报表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。