首页 > 范文大全 > 正文

VS.NET中Crystal Reports的使用

开篇:润墨网以专业的文秘视角,为您筛选了一篇VS.NET中Crystal Reports的使用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:介绍了crystal reports功能、结构和特点.通过在创建具体的Windows应用演示了Crystal Reports的强大功能。

关键词: CrystalReports

中图分类号 TP312 文献标识码 A 文章编号:1002-2422(2007)03-0019-02

1 Crystal Reports简介

1.1 Crystal Reports的功能

(1)支持多种数据源和强大的内容创建功能;(2)交互式和自定义功能;(3)将报表并入应用程序。

1.2 Crystal Reports的结构

Crystal Reports访问数据库文件需要经过三层(如图1):Crystal Reports作为接口运行,通过此接口可以对数据库文件中存储的数据进行格式化、排列、选择和排序。它通过与数据转换层中的一个或多个文件通讯来获取数据,此数据转换层通过一组专用于Crystal Reports的DLL对来自不同数据源的数据进行转换。

Crystal Reports Designer用于报表的设计,用户可以在报表设计过程中设置报表的标题、插入数据、公式、图表、子报表等操作。

Crystal Reports Viewer是用于查看报表的控件。对于Web应用和Windows应用分别有不同的Viewer控件,但其功能基本相同,主要用途都是查看应用程序中的报表。除此之外,查看器控件对报表的控制是非常有限的。

报表文件是在Crystal Reports Designer中设计的,用来确定来自数据源的数据显示方式的文件,默认安装方式下已经安装一些报表文件(.rpt)示例。

1.3 Crystal Reports的执行模式

DataSouree是报表文件中数据的来源。报表文件取得数据的方法有两种:一种是让Crystal Reports自己选择数据而不使用任何代码;另一种是手动编写代码组装DataSet,然后将DataSet作为数据源绑定到报表文件。

对应两种不同的取数据的方法,Crystal Reports有两种执行模式:

(1)Pull模式:被请求时,Crystal Reports直接根据指定的驱动连接数据库,然后组装这些数据。

(2)Push模式:开发人员需要自己编写代码连接数据库并组装DataSet,同时将DataSet中的数据传送至Crysta]-Reports。

1.4 Crystal Reports的报表类型

(1)Strongly-Typed报表:如果报表被加入到项目中去,则该报表即为Stronsly-Typed报表。此时用户拥有创建报表对象的权力,能够减少代码并提高性能。

(2)Un-Typed报表:如果报表不直接包含在项目中,称为Un-Typed报表。此时,用户需要用Crystal Reports的ReportDocument对象创建一个实例,并手动调用报表。

2 Crystal Reports在中的应用

2.1 建立到数据源的连接

Crystal Reports支持多种类型数据的访问,如访问ODBC数据源、OLEDB数据源、Excel、Access中的数据、XML、OLAP数据源。用户可以根据报表中数据的具体来源建立到相应数据源的连接。若在Windows应用中报表的数据来源于SQL Server2000,可在中从“工具箱”的“数据”选项卡上将“sqlConnection控件”拖到报表窗体中,在窗体下方显示该控件自动命名为sqlConnection1。

在sqlConnection1控件的属性窗口中配置Connection-String属性,选择“新建连接”,指定数据库服务器名称为“TBDYJ”,选取合适的身份认证方式并输入身份认证信息,如果正确即可继续选取该数据库服务器上的数据库“students”,认证信息不正确则无法继续进行。

2.2建立数据适配器

从的“工具箱”的“数据”选项卡中拖动“sql-Data.Adapter控件”到将要创建报表的窗体中去,建立名为sqlDataAdapter1的数据适配器同时自动弹出数据适配器向导对数据适配器进行配置。选了刚刚建立的到数据库连接,选择“使用SQL语句”访问数据库,通过“查询生成器”将对视图V_stud的查询作为数据适配器访问数据库students的方式。

按照同样的方式再创建两个数据适配器sqlDataAdapter2和sqlDataAdapter3,分别配置为通过对视图V_course、V_sc查询来访问数据库students。

2.3 生成数据集对象

选取sqlDataAdapter1并右键单击选中快捷菜单中的“生成数据集”,此时会弹出“生成数据集”的对话窗口,在其中选择“新建”并输入新创建的数据集对象的名称,默认为DataSet1,此时系统自动在当前项目中添加一个名为DataSet1的数据集对象,同时生成数据集对象DataSet1的一个实例,默认名称为DataSet11,并为数据集建立架构,其中包含了数据库students中视图V_stud及其字段和类型的描述,但并不包括实际数据。

2.4 设计新报表

若准备在当前的工程中创建三种不同的报表分别显示学生情况、课程情况和每门课程学生选修情况及成绩,必须根据三种报表所要反映的内容创建三种不同类型的报表。

先创建反映学生情况的报表。在“解决方案资源管理器”中选取当前的工程名称,右键单击在快捷菜单中选取“添加新项”,并在弹出的窗口的“模板”中选取“Crystal Report”,再输入名称即可,默认为CrystalReport1,此时即建立了一个新的报表类同时自动打开报表创建向导,用户可充分利用这些向导快速创建各种类型的功能强大的报表,在向导的帮助下可以快速选取报表中使用的数据来源(来源于刚刚生成的数据集DataSet11中的表V_stud)、选取在报表中要显示的字段、数据分组的依据字段、是否进行总计、对报表中的数据进行筛选、报表类型、图表类型等。设置完成后,可在报表设计器中对刚刚设置过的报表样式外观进行修改和调整。

依同样的方法可建立另外两个报表文件CrystalReport2和CrystalReport3,分别用来显示课程信息和学生成绩信息。

2.5 添加“CrystalReportViewer”控件

CrystalReportViewer是用于查看报表文件的控件,从 “工具箱”的“Windows窗体”中选取CrystalReportViewer控件到窗体中去,默认名字为CrystalReportViewer1,为了能够在一个报表查看控件中查看三种不同的报表,可以窗体上再添加一个ComboBox控件comboBox1,在其属性Items中设置三个选项:学生信息表、课程信息表、成绩信息表,以方便用户通过不同选择查看不同的报表。

2.6 添加事件处理代码

采用数据访问的push模式,将数据从数据源中需要的数据推入数据集中,并将在报表所在的窗体加载事件(Form_Load事件)中添加如下代码:

sqlDataAdapter1.Fill(dataSetll,“V_stud”);

CrystalReport1 myrpt=new CrystalReport1();

myrptSetDataSource(dataSetll);

crystalReportViewer1.ReportSource=myrpt;

可以通过ComboBox控件来选择所要查看的报表文件,还必须在comboBox1控件的SelectedindexChanged事件中添加如下代码:

switch(int32.Pame(comboBox1.Selectedindex.ToString())){

case 0:{

sqlDutaAdaptcr1.Fill(dataSet11,“V_stud”);

CrystalReport1 myrpt=new CrystalReport1();

myrpt.SetDataSource(dataSet11);

crystalReportViewer1.ReportSource=myrpt;

break;}

case 1:{

sqlDataAdapter2.Fill(dataSetll,“v_cou”);

CrystaReport2 myrpt=new CrystalReport2();

myrpt.SetDataSource(dataSet11);

crystalReportViewcr1.ReportSource=myrpt;

break;}

case 2:{

sqlDataAdapter3.Fill(dataSet11,“V_SC”);

CrystalReport4 myrpt=new CrystalReport4();

myrpt.SetDataSource(dataSet11);

crystalRcportViewer1.ReportSource=myrpt;

break;}

3 结束语

本文通过使用Crystal Reports的Push数据访问模式在Windows应用程序中建立复杂的图表应用,展示了CrystalReports的功能:对于报表的更复杂的控制,可以使用通过非类型化的报表组件,在程序中进行控制。