CrystalReportViewer控件(水晶报表插件)是VS2011水晶报表的必备组件!在使用VS2011水晶报表时,只有安装了这个CrystalReportViewer控件,才能充分发挥VS2011水晶报表的各项功能!别再犹豫啦,若你有需求,欢迎前往IT猫扑网体验!
CrystalReportViewer控件(水晶报表插件)是VS2011水晶报表所提供的一款功能强大、动态且具备可操作性的报表解决方案控件。在使用该水晶报表控件的过程中,当对象模型需要登录到安全的SQL Server数据库时,必须借助CrystalDecisions.Shared命名空间中的类来实现。

使用PUSH模式
我们采用下面的几步使用Push模式执行水晶报表:
1.设计一个DataSet
2.创建一个.rpt文件同时将其指定给上一步建立的DataSet。
3.在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
4.在代码中访问数据库并把数据存入DataSet
5.调用DataBind方法。
设计一个DataSet
1)右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”
2)从“服务器资源管理器”中的“SQLServer”中拖放“Stores”表(位于PUBS数据库中)。
3)此时在数据集中就会有一个Stores表的结构图。
-.xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
创建.rpt文件:
4)使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
5)建立.rpt文件之后,右击“详细资料”-->"添加/删除数据库“
6)在“数据库专家”窗口中,展开“项目数据”(该选项替代了以往的OleDb),接着展开“ADO.Net数据集”下的“DataSet1”,然后选择其中的“Stores”表。
7)将”Stores"表添加到“选定的表”中,点击“OK”
8)使用PULL模式下的方法,建立一个WebForm
建立一个CrystalReportViewer控件
9)建立一个CrystalReportViewer控件,并设定其属性,此处与PULL模式下是一致的。

使用Pull模式
我们将通过下面的这些步骤来通过Pull模式来执行水晶报表
1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。
2.拖放一个CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
3.在代码中调用DataBind方法。
创建.rpt文件:
1)在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”CrystalReport”
2)在”CrystalReport库”中选择”作为空白报表“单选按钮,最后单击“确定“。
3)这里将弹出水晶报表设计器。
4)右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."
5)在弹出的”数据库专家“中,扩展”OLEDB(ADO)“选项,此时会弹出另外一个”OLEDB(ADO)“窗口。
6)在“OLEDB(ADO)”弹出窗口里,选中“Microsoft OLEDB Provider for SQL Server”这一项,接着点击“Next”按钮。
7)指定连接的信息
服务器:ASPCN(您的机器是什么名字就写什么)
用户ID:sa
密码:
数据库:Pubs
8)单击”Next“,最后单击”Finish“按钮。
9)这时你就能在”数据库专家“窗口中看到我们选择的数据库。
10)扩展”Pubs“数据库,扩展”表“,选择”Stores“表并将其加到”选定的表“区中,单击”OK"按钮。
11)现在在”字段资源浏览器“中就会在左边”数据库字段“区中显示你选择的表,以及表中的字段。
12)把所需的字段拖放到报表的“详细资料”区域。字段名称会自动显示在“页眉”区域。要是你想更改头部文字,可右键点击“页眉”区域里的文字,选择“编辑文本对象”选项来进行编辑。
13)保存,这样我们就有了一个水晶报表文件。
创建CrystalReportViewer控件
14)回到前面的WebForm中,拖放一个CrystalReportViewer控件到页面中去。
15)调出CrystalReportViewer控件的属性窗口,选择“DataBindings"区点击[...]
16)”CrystalReportViewer在“CrystalReportViewer数据绑定窗口”中,于右侧“可绑定属性”里选中“ReportSource”,接着在右下角的“自定义绑定表达式”中设定.rpt文件的路径。
17)此时你能够从CrystalReportViewer控件中看到使用一些虚拟数据组成的报表文件的预览。
注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
CodeBehind程序设计
18)在Page_Load方法中调用DataBind方法。
执行你的程序
19)创建并运行你的程序!
您现在就可以直接在Web页面中使用水晶报表的一些功能,如页面导航,缩放等。
我们在此仅探讨窗体(WinForm)的场景。多数时候,展示报表的界面具备一致性,所以通常会创建一个窗体类来呈现各类不同的报表。在部分实现方式里,会在该窗体类中实例化所需的报表对象,每当要展示不同报表时,就需要对这个报表显示窗体类进行维护,这给我们带来了不少麻烦。更有甚者,还将一些报表的逻辑写入这个窗体类中,这严重违背了类的单一职责原则,同时也让报表和报表显示之间产生了很强的依赖关系。
报表查看器(CrystalReportViewer)是一个控件,它需要依托窗体或页面来承载。在应用程序里,显示报表是常见需求。在.net环境中,我们多数时候会用到水晶报表,若不直接将报表发送至打印机打印,就需要把报表展示出来,这种情况下就得用到报表查看器。
双平台-既可以在Web程序中使用,也可以在Windows程序中使用
简单-CrystalReportViewer适合轻量的报表,开发相对简单
所见即所得-你只要在报表中设定好格式,打印出来是跟你看到的报表一样的
可以导出为Excel文件或PDF文件,要是习惯用Excel表格的话,CrystalReportViewer报表控件会很合适。
-微软自带的报表控件,不存在任何版权或者限制
查看/打印-CrystalReportViewer报表浏览器集成了报表查看及打印预览功能,可直接输出到打印机,也可直接