古詩詞大全網 - 古詩大全 - .net裏CrystalReportViewer的用法

.net裏CrystalReportViewer的用法

Crystal Reports for Visual Studio 2005 包括用於查看報表的標準形式控件。每個控件將復雜的報表布局信息封裝到工具箱的 GUI 對象中。

有兩種控件:

CrystalReportViewer 控件。

該控件將報表顯示在基於頁面的布局中,可在頁面之間進行移動。

CrystalReportPartsViewer 控件。

該控件將報表摘要信息顯示在壹個類似於門戶的小窗口中,可通過壹系列的鏈接部件向下鉆取到報表。

通過將控件從“工具箱”拖放到 Web 或 Windows 窗體,再將控件的 ReportSource 屬性分配給報表,每個控件都可用來顯示報表。

CrystalReportViewer 對象模型是四個對象模型中最簡單的壹個。但由於其功能有限,通常不建議您使用此對象模型,而建議使用範圍更廣泛的 ReportDocument 對象模型。

CrystalReportViewer 對象模型提供了七個報表綁定方案:

使用代碼綁定到文件目錄路徑

用代碼綁定到文件目錄路徑請參見

通過“屬性”窗口綁定到文件目錄路徑 | 所有方案的詳細列表 | SDK 基礎知識 | CrystalReportViewer 對象模型

語言

C#

Visual Basic

全部顯示

對象模型

這個報表綁定方案使用 CrystalReportViewer(請參見通過 CrystalReportViewer 對象模型進行報表綁定。)

報表的位置

報表位於壹個文件目錄中。

說明

這是最簡單的報表綁定方案:使用位於文件目錄中的報表的路徑字符串將其綁定到 CrystalReportViewer 控件。

優點

低維護:可以添加、刪除或修改報表,而無需重新編譯應用程序。

實現簡單:無需聲明和實例化類。它將報表直接傳遞給 CrystalReportViewer 控件,而不使用 ReportDocument 對象模型。

缺點

分布有限:由於要授予 ASPNET 用戶帳戶訪問網絡上的另壹臺計算機的權限非常復雜,因此報表通常與應用程序位於同壹臺計算機上。

對象模型有限:這個綁定方案只提供屬於 CrystalReportViewer 的有限對象模型。請參見應該使用哪種對象模型?。

實現

註意 此過程僅適用於已通過項目設置創建的項目。“項目設置”包含此過程需要的特定命名空間引用和代碼配置,而沒有該配置,您將無法完成此過程。因此,在開始此過程之前,您必須首先執行項目設置中的步驟。

在 ConfigureCrystalReports() 方法(在項目設置壹節中已創建)中,將壹個文件目錄路徑字符串賦給 CrystalReportViewer 類的 ReportSource 屬性。

這會將該報表直接綁定到該控件。所有要通過編程方式與報表進行的交互都必須在有限的 CrystalReportViewer 對象模型中完成。

[Visual Basic]

myCrystalReportViewer.ReportSource = _

"C:\Program Files\Microsoft Visual Studio 8\" _

& "Crystal Reports\Samples\zh-chs\Reports\General Business\" _

& "World Sales Report.rpt"

[C#]

crystalReportViewer.ReportSource =

"C:\\Program Files\\Microsoft Visual Studio 8\\"

+ "Crystal Reports\\Samples\\zh-chs\\Reports\\General Business\\"

+ "World Sales Report.rpt";

註意 該文件目錄路徑指向 Visual Studio 2005 中的示例報表。要查看指向您的 Crystal Reports 版本中的示例報表的完整路徑

通過“屬性”窗口綁定到文件目錄路徑

通過“屬性”窗口綁定到文件目錄路徑請參見

綁定到 CrystalReportSource 控件(Visual Studio 2005 中的網站) | 所有方案的詳細列表 | SDK 基礎知識 | CrystalReportViewer 對象模型

語言

C#

Visual Basic

全部顯示

對象模型

這個報表綁定方案使用 CrystalReportViewer(請參見通過 CrystalReportViewer 對象模型進行報表綁定。)

報表的位置

報表存儲在文件目錄中。

說明

這是最簡單的報表綁定方案的可替代版本,用代碼綁定到文件目錄路徑。通過路徑字符串將文件目錄中的報表綁定到 CrystalReportViewer 控件,但是在“屬性”窗口中進行賦值,直接賦值給 ReportSource 屬性或者 DataBindings>ReportSource 屬性。

對於 Web 項目,報表路徑字符串被直接插入到 ASPX 頁面的 HTML 中,而不是插入代碼隱藏類的代碼中。

優點

設計時預覽:在 Web 或 Windows 窗體中,在設計時預覽報表。

註意 設計時預覽功能在網站已經存在,但是在 Windows 項目中是壹項全新的功能。有關更多信息,請參見如何使用 CrystalReportViewer 控件?壹節中的設計時預覽。

列在用代碼綁定到文件目錄路徑中的相同優點。

缺點

對於 Web 應用程序,由於綁定發生在 HTML 頁面,需要在代碼隱藏類中為 CrystalReportViewer 控件調用 DataBind() 方法。

註意 在 Crystal Reports for Visual Studio 2005 中已沒有該限制。有關更多信息,請參見從“屬性”窗口到 Crystal Reports 的自動數據綁定。

分布有限:由於要授予 ASPNET 用戶帳戶訪問網絡上的另壹臺計算機的權限非常復雜,因此報表通常與應用程序位於同壹臺計算機上。

對象模型有限:這個綁定方案只提供屬於 CrystalReportViewer 的有限對象模型。請參見應該使用哪種對象模型?。

實現

使用“屬性”窗口綁定到文件目錄路徑

創建新的 Web 或 Windows 項目。

從“工具箱”中將 CrystalReportViewer 拖放到 Web 或 Windows 窗體。

單擊 CrystalReportViewer 控件,將其選中。

從“屬性”窗口中,給 ReportSource 屬性分配壹個文件目錄路徑字符串。

C:\Program Files\Microsoft Visual Studio 8\Crystal Reports\Samples\zh-chs\Reports\Feature Examples\Hierarchical Grouping.rpt

註意 該文件目錄路徑指向 Visual Studio 2005 中的示例報表。要查看指向您的 Crystal Reports 版本中的示例報表的完整路徑,請參見示例報表的目錄。

由於設計時預覽功能,該報表顯示在預覽模式。

若要查看該報表,請生成並運行您的項目。

如果是使用 Crystal Reports for Visual Studio .NET 2002 或 2003 創建的 Web 項目,還需要向調用 CrystalReportViewer 控件的 DataBind() 方法的代碼隱藏類添加代碼。有關更多信息,請參見本頁前面的“缺點”壹節。

添加對 CrystalReportViewer.DataBind() 方法的調用

註意 只有在 Crystal Reports for Visual Studio .NET 2002 或 2003 中開發的 Web 項目需要使用本方法調用。

在“設計”視圖中打開 Web 窗體。

從“視圖”菜單中,單擊“代碼”。

展開“Web 窗體設計器生成的代碼”區域。

在 "Page_Init" [Visual Basic] 或 "OnInit" [C#] 事件方法內和對 InitializeComponent() 的方法調用之下,輸入對 CrystalReportViewer 控件的 DataBind() 方法的調用。

[Visual Basic]

myCrystalReportViewer.DataBind()

[C#]

crystalReportViewer.DataBind();

單擊“Web 窗體設計器生成的代碼”區域上的“-”號,折疊此區域。

若要查看該報表,請生成並運行您的項目。

綁定到 CrystalReportSource 控件(Visual Studio 2005 中的網站)

綁定到 CrystalReportSource 控件(Visual Studio 2005 中的網站)請參見

綁定到報表 Web 服務 URL | 所有方案的詳細列表 | SDK 基礎知識 | CrystalReportViewer 對象模型

對象模型

這個報表綁定方案使用 CrystalReportViewer(請參見通過 CrystalReportViewer 對象模型進行報表綁定。)

報表的位置

報表存儲在文件目錄中。

說明

這是最簡單的報表綁定方案的可替代版本,用代碼綁定到文件目錄路徑。在此方案中,您使用 ASP.NET 2.0 版的新的精簡代碼的、基於標記的應用程序開發模型來綁定報表。關於基於標記的應用程序開發模型的更多信息,請參見基於代碼的應用程序開發模型。

註意 此報表綁定方案僅適用於網站。

在此方案中,您使用智能任務來創建 CrystalReportSource 控件。然後,為 CrystalReportSource 控件選擇壹個報表。

您將通過智能任務面板(在“設計”視圖中)進行選擇或直接輸入聲明性的 XML(在“源”視圖中),而不是通過手動編寫代碼與報表進行交互和允許其訪問 CrystalReportViewer 對象模型。

使用聲明性的 XML,您可以將嵌套在 <Report> 標記中的 <Parameters> 和 <DataSources> 標記關聯到參數和數據源框架中的各種非可視控件。

註意 參數和數據源框架是 ASP.NET 2.0 的新功能。它們包含以下控件:ControlParameter 或 QueryStringParameter 以及 SqlDataSource 或 JetDataSource。

基於標記的應用程序開發模型提供了與報表進行有限交互的快捷而簡單的方法,而且不需要編寫代碼。

優點

設計時預覽:在 Web 或 Windows 窗體中,在設計時預覽報表。

創建報表交互的最簡單的辦法:基於標記的應用程序開發模型的簡化的、精簡代碼方式能用來與報表進行交互。

列在用代碼綁定到文件目錄路徑中的相同優點。

缺點

分布有限:由於要授予 ASPNET 用戶帳戶訪問網絡上的另壹臺計算機的權限非常復雜,因此報表通常與應用程序位於同壹臺計算機上。

對象模型有限:這個綁定方案只提供屬於 CrystalReportViewer 的有限對象模型。請參見應該使用哪種對象模型

綁定到報表 Web 服務 URL

綁定到報表 Web 服務 URL請參見

使用 Crystal 服務的 CrystalReportViewer 綁定方案 | 所有方案的詳細列表 | SDK 基礎知識 | CrystalReportViewer 對象模型

語言

C#

Visual Basic

全部顯示

對象模型

這個報表綁定方案使用 CrystalReportViewer(請參見通過 CrystalReportViewer 對象模型進行報表綁定。)

報表的位置

報表作為 Web 服務器(通常為遠程)上承載的報表 Web 服務存在。

說明

存儲在另壹臺服務器上,作為報表 Web 服務的報表通過其 URL 綁定到 CrystalReportViewer 控件。

優點

分布範圍廣:報表可以位於 Internet 上的任何位置。

易於分發:報表 Web 服務使用端口 80,因此甚至可以跨防火墻進行訪問。

缺點

對象模型有限:這個綁定方案只提供屬於 CrystalReportViewer 的有限對象模型。請參見應該使用哪種對象模型?。

實現

註意 此過程僅適用於已通過項目設置創建的項目。“項目設置”包含此過程需要的特定命名空間引用和代碼配置,而沒有該配置,您將無法完成此過程。因此,在開始此過程之前,您必須首先執行項目設置中的步驟。

在 ConfigureCrystalReports() 方法(在項目設置壹節中創建)中,將壹個報表 Web 服務 URL 字符串賦給 CrystalReportViewer 類的 ReportSource 屬性。

這會將該報表直接綁定到該控件。所有要通過編程方式與報表進行的交互都必須在有限的 CrystalReportViewer 對象模型中完成。

[Visual Basic]

myCrystalReportViewer.ReportSource = _

"http://localhost/TestProject/World_Sales_ReportService.asmx"

[C#]

crystalReportViewer.ReportSource =

"http://localhost/TestProject/World_Sales_ReportService.asmx";

註意 若要使用此綁定方案,請在 Visual Studio 2005 中創建壹個報表 Web 服務項目。

使用 Crystal 服務的 CrystalReportViewer 綁定方案

請參見