65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Crystal Reports 在 .NET 2005 中开发报表

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.88/5 (16投票s)

2006年10月19日

CPOL

4分钟阅读

viewsIcon

253001

downloadIcon

2944

一个简单的例子,连接到 Oracle 数据库,使用 DataSet 检索数据,然后使用 CrystalReportViewer 显示 Web 报表

引言

当使用 .NET 2005 和 Oracle 数据库开发 Web 应用程序时,我们收到了客户的需求。他们希望我们打印带有每页页眉和页脚的报表,并将文件转换为其他文件格式,例如 Excel。可以使用 Crystal Reports 在 .NET 2005 中实现此需求。本文是我们关于如何使用 Crystal Reports 在 .NET 2005 中使用 Oracle 开发报表的笔记,以及部署包含 Crystal Reports 的网站(这花费了我们很多时间,尤其是在部署方面)。希望它可以帮助您,并节省您一些时间。

使用 Crystal Reports 在 .NET 2005 中开发报表

使用 Visual Studio .NET 2005 中的 Crystal Reports,您可以创建非常复杂的报表。我们只是给出一个简单的例子,连接到 Oracle 数据库,使用 DataSet 检索数据,然后使用 CrystalReportViewer 显示 Web 报表。

1. 从数据源检索数据到 DataSet  

OracleAccess oa = new OracleAccess(login, pwd, database);
DataSet ds = oa.Get_Data(id));
ds.Tables[0].TableName = "DTPrint"; 

为了方便演示,我们的代码从 XML 文件读取数据到数据集:XMLFile.xml

<Employee Name="AAA" age="30" Sex="F" BirthDate="1/1/1960"></Employee>
<Employee Name="BBB" age="31" Sex="M" BirthDate="1/2/1960"></Employee>
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("App_Data/XMLFile.xml"));
ds.Tables[0].TableName = "DTEmployees"; 

2. 为可用数据源创建 DataSet DSEmployees.xsd

在 App_code 目录中,添加 DataSet DSEmployees.xsd。Crystal Reports 将找到此数据源。然后添加 DataTable DTEmployees 及其列(姓名、年龄、性别和出生日期)到 DataSet 中。

3. 创建 Crystal Report:CREmployees.rpt

添加新建项目 | CrystalReport | 使用报表向导。在标准报表创建向导窗口中,您可以从项目数据 | ADO.NET DataSets | DSEmployees 中的可用数据源中找到表 DTEmployees。选择此可用数据源 DTEmployees。

4. 编辑您的 Crystal Report

为此报表添加字段、页眉、页脚等。

5. 创建一个网页 CRPage.aspx

拖动一个 CrystalReportViewer CRVEmployees。在 Page_load 事件中,加载报表,并将其分配给 CRVEmployees 的 reportsource。

ReportDocument rd;
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("App_Data/XMLFile.xml"));
ds.Tables[0].TableName = "DTEmployees";
rd = new ReportDocument();
rd.Load(Server.MapPath("CREmployees.rpt"));
rd.SetDataSource(ds);
CRVEmployees.ReportSource = rd;
CRVEmployees.DataBind(); 

6. 在浏览器中查看 CRPage.aspx

以下是报表的外观。

部署包含 Crystal Reports 的 .NET 2005 网站

有许多方法可以部署包含 Crystal Reports 的 .NET 2005 网站。我们只探讨了以下可行的方法。

1. 创建一个用于部署的 Web 安装项目

在“文件”菜单上,选择新建 | 项目;在“新建项目”窗口中,选择其他项目类型 | 安装和部署,选择Web 安装项目;输入项目名称、位置,并选择“解决方案”添加到解决方案中;

2. 添加合并模块

在解决方案资源管理器中,右键单击项目 DeploymentTest,然后选择添加 | 合并模块;选择 CrystalReportsRedist2005_x86.msm

解决方案资源管理器应该如下所示

如果您的解决方案资源管理器看起来不像上面那样,您将需要下载 CrystalReportsRedist2005_x86.msm。然后将其复制到文件夹 \Program Files\Common Files\Merge Modules 中。如果 microsoft_vc80_atl_x86.msmpolicy_8_0_microsoft_vc80_atl_x86.msm 不存在,您也需要下载并复制它们。如果添加合并模块 CrystalReportsRedist2005_x86.msm 后,它们仍然不在“已检测到的依赖项”中,您可能需要卸载您的 Visual Studio 2005。重新安装时,勾选“Itanium Compilers and Tools”和“X64 Compilers and Tools”。 [2]

 

 

3. 将输出文件添加到 Web 安装项目

在解决方案资源管理器中,右键单击安装项目 DeploymentTest,添加 | 项目输出…;选择内容文件,将配置保留为活动;

单击“确定”;双击解决方案资源管理器中的项目来自…(活动)的内容文件;在“属性”窗口中,将 DefaultDocument 设置为您的网站的起始页面 (CRPage.aspx);VirtualDirectory 属性设置为项目名称 (DeploymentTest)。

4. 构建 Web 安装项目

选择安装项目 DeploymentTest;从“生成”菜单中,选择“生成 DeploymentTest”。

5. 部署 Web 安装项目

在 Visual Studio 之外,转到您的安装项目目录,将您的安装项目文件夹 (DeploymentTest) 复制到您的远程 Web 服务器;在您的 Web 服务器上,双击您的安装项目 DeploymentTest.msi 以部署您的网站。

执行所有步骤,这将部署到您的默认网站 C:\Inetpub\wwwroot\ DeploymentTest。

6. 为 Web 项目创建一个虚拟目录

在您的 IIS 应用程序服务器管理控制台中,创建一个虚拟目录,该目录将内容目录路径引用到 C:\Inetpub\wwwroot\ DeploymentTest;您还应该检查 IIS 服务器的 ASP.NET 版本,应用程序池。您还应该将“文档 | 默认内容页面”设置为您的起始页面 (CRPage.aspx)。

参考文献

© . All rights reserved.