Crystal Reports for Visual Studio .NET 是用于
Visual Studio .NET 的标准报表开发工具
, 使用他可以快速创建各种类型的报表(如交叉表、子报表、图表
……)并能同时承载于
Web和
Windows平台,还可将
Crystal 报表作为报表
Web 服务在
Web 服务器上发布。
一、在第一次使用
.NET自带的水晶报表设计器时,设计器会提示注册。
注册号
: 6655108968
密钥号:
AAP5GKS0000S272000F
二、将数据加载到报表并显示数据。
Crystal Reports提供拉模型和推模型两种数据访问方式,在拉模型中,驱动程序将直接连接到数据库并根据需要将数据
“拉
”进来,使用这种模型时,为了获取数据而执行的
SQL 命令由
Crystal Reports 本身处理,不需要开发人员编写代码,推模型需要开发人员编写代码以连接到数据库,执行
SQL 命令以创建与报表中的字段匹配的记录集或数据集(
DataSet),并且将该数据集传递给报表。
使用ADO.NET
数据集创建报表:
1、 添加数据集框架文件,将文件命名为
DataSet1.xsd。
2、 向
DataSet1.xsd添加数据集框架,可以手动添加框架也可以从“服务器资源管理器”中将数据库中的数据表拖拉到
DataSet1.xsd中自动生成数据的框架。
3、 创建新报表。
①、在
Visual Studio .NET 解决方案资源管理器中,右击您的项目以显示快捷菜单。
②、指向
“添加
”,单击
“添加新项
”。
③、在
“添加新项
”对话框中,从
“模板
”区域选择
“Crystal Report”。单击
“打开
”。
④、在
Crystal Report 库中,选择下列选项之一:
a)
使用报表专家—— 指导您完成报表的创建过程,并将您的选择添加到
Crystal Report Designer 。
b)
作为空白报表
—— 打开
Crystal Report Designer 。
c)
来自于现有的报表
——创建新报表,它与指定的另一报表设计相同。
⑤、向报表添加数据集框架,打开报表设计器后,右击“字段资源管理器”中的数据库字段项,选择“添加或删除数据库”项打开“数据库专家”。点击“项目数据”—
>“
ADO.NET”将刚才创建的
DataSet1.xsd添加到报表中。
⑥、使用数据表中的字段设计报表,详细的设计可以参考开发工具中的帮助文档。
4、 使用
CrystalReportViewer报表查看器,查看报表数据,
Web 应用程序使用
Web 窗体
CrystalReportViewer,而
Windows 应用程序则使用
Windows 窗体
CrystalReportViewer
5、 将
CrystalReportViewer从工具箱中拖到
web或
windows窗体上。
6、 通过程序将报表绑定到
CrystalReportViewer上,并将数据集中的数据显示到
CrystalReportViewer
上。
ReportDocument repDoc= new ReportDocument(); //
报表类
repDoc.Load(m_ReportPath); //
加载报表文件,m_ReportPath为报表文件的物理路径。
repDoc.SetDataSource(ds); //
设置报表的数据源,ds表示与上面创建的
DataSet1.xsd
具有相同框架的数据集。
crViewer.ReportSource = repDoc; //
将报表对象绑定到
CrystalReportViewer
报表查看器的
ReportSource
属性上。
7、 将报表数据导成
.
PDF,
.
RTF,
.
DOC,
.
HTML,
.
XLS等文件格式,程序如下:
ReportDocument repDoc= new ReportDocument(); //
报表类
repDoc.Load(m_ReportPath); //
加载报表文件,m_ReportPath为报表文件的物理路径。
repDoc.SetDataSource(ds); //
设置报表的数据源,ds表示与上面创建的
DataSet1.xsd
具有相同框架的数据集。
ExportOptions exOpt=repDoc.ExportOptions; //
创建输出对象exOpt
exOpt.ExportDestinationType=ExportDestinationType.DiskFile; //
设置
导出目标
类型,diskfile为磁盘文件
DiskFileDestinationOptions diskOpt = new DiskFileDestinationOptions ();
exOpt.DestinationOptions =diskOpt; //
为exOpt属性DestinationOptions设置值
diskOpt.DiskFileName=C:/
ReportTemp/report.pdf
; //
设置导出文档的路径和文件名
exOpt.ExportFormatType=ExportFormatType.PortableDocFormat//
设置导出文档的格式为pdf格式。这里可以设置其他文件格式。
repDoc.Export(); //
将文件导出。
三、部署报表。
要运行报表程序,必须在目标机器上部署
Crystal Reports 合并模块,可以创建
web安装项目或
windows安装项目来部署合并模块,创建安装项目时需要将下列合并模块添加到项目中
Crystal_Database_Access2003.msm
Crystal_Database_Access2003_chs.msm
Crystal_Managed2003.msm
Crystal_Managed2003_chs.msm
Crystal_regwiz2003.msm
VC_User_CRT71_RTL_X86_---.msm (
被基于ADO.NET)
VC_User_STL71_RTL_X86_---.msm (被基于ADO.NET 的报表使用) 的报表使用
创建步骤:
1
、 创建一个安装项目。
2 、向项目中添加报表的合并模块。
在注册模块
Regwiz的属性
license key 添入密钥号:
AAP5GKS0000S272000F(否则运行报表时报表引擎会报“无效密钥”的错误
)
3、生成项目
四、使用报表中可以出现的各种问题
1、 水晶报表查询引擎出错的问题:
设计时的数据集框架和数据源中数据集框架不同引起的(如列名不同,表名不同
….)
2、 水晶报表登陆出错的问题,可能原因:
①、报表文件不存在
②、存放报表文件的文件夹的权限问题
(
NTFS
格式的文件
),
可以给
EveryOne
用户添加完全控制权限。
③、
水晶报表
Web
查看器文件夹
NTFS
权限的问题
涉及的文件夹
VS.NET Crystal Reports: C:/Program Files/Microsoft Visual Studio .NET/Crystal Reports/Viewers
④、
导出时的目标文件夹
(
临时文件夹
) NTFS
权限的问题
.
需要
EveryOne
完全控制权限。
3、 水晶报表加载出错的问题,可能原因:
需要加载的报表文件不存在,或物理路径不对。