550 likes | 791 Views
第 21 章 .NET 报表设计. (时间: 1.5 次课, 3 学时). 第 21 章 .NET 报表设计. 在信息系统开发过程中,报表的制作是项目成功的关键,它给管理者提供了可视化的信息呈现方式,可以通过图形、表格等各种形式描述数据特征。本章介绍 .Net 项目开发过程中利用 OWC 组件、 SQL Server Reporting Services 以及 Crystal Reports 制作报表的技术。 本章教学目的: 学会使用 OWC 组件制作简单的报表 掌握 SQL Server Reporting Services 报表技术
E N D
第21章 .NET报表设计 (时间:1.5次课,3学时)
第21章 .NET报表设计 • 在信息系统开发过程中,报表的制作是项目成功的关键,它给管理者提供了可视化的信息呈现方式,可以通过图形、表格等各种形式描述数据特征。本章介绍.Net项目开发过程中利用OWC组件、SQL Server Reporting Services以及Crystal Reports制作报表的技术。 • 本章教学目的: • 学会使用OWC组件制作简单的报表 • 掌握SQL Server Reporting Services 报表技术 • 掌握Crystal Reports报表技术
第21章 .NET报表设计 • 21.1 OWC组件 • 21.2 SQL Server Reporting Services • 21.3 Crystal Reports
21.1 OWC组件 • 21.1.1 OWC组件概述 • 21.1.2 OWC组件的内部控件 • 21.1.3 OWC组件应用示例 • 21.1.4 Spreadsheet控件使用语法参考
21.1.1 OWC组件概述 • OWC(Office Web Component)是Microsoft Office中的一组用于发布电子数据表、数据透视表和图表的COM控件,它可以从Microsoft网站免费下载。 • OWC组件拥有Microsoft Excel的基本功能。在Internet Explorer 浏览器中使用OWC组件,可以实现在 Web 中显示和处理数据,如对数据进行排序和筛选、输入新的数值、展开和折叠明细数据、旋转行列数据等,从而可查看不同形式的源数据汇总信息。 • OWC组件提供开放的编程接口,可在ASP、ASP.NET、C#.net、VB.net、Java、PHP中使用OWC组件。利用OWC组件可以构建基于Web或者Windows的 Microsoft Excel格式的报表。 • 使用OWC组件时,仅需安装OWC组件,不需安装Microsoft Office软件,便可以在应用程序中使用与Microsoft Excel一样的功能。不同的Office版本配置不同的OWC组件,常见的OWC版本有3种:OWC 9.0、OWC 10.0、OWC 11.0,表21.1给出了OWC版本与Office版本的对应关系。如无特殊说明,本教程所使用的OWC组件的版本为OWC 10.0,对应Office的版本是Microsoft Office XP。
21.1.1 OWC组件概述 表21.1 OWC版本与Office版本对应关系
21.1.2 OWC组件的内部控件 • 常用的OWC组件可以内嵌以下4种控件以实现不同格式报表。 • (1) Spreadsheet 控件:电子表格控件。可在 Web中提供类似 Excel 的功能。 • (2) Chart 控件:图表控件。可使Web页面具有图表功能。 • (3) PivotTable 控件:数据透视表控件。用于呈现OLAP多维数据集,允许用户通过向 Web 页添加排序、分组、筛选、分级和其他数据处理功能实现多维数据分析。 • (4) Data Source控件:数据源控件。可为OWC组件内嵌的其他控件提供数据访问能力。 • 以下是各个控件的具体说明。
21.1.2 OWC组件的内部控件 • 1.Spreadsheet 控件 • Spreadsheet控件是OWC组件的电子表格控件,它能够在 Web中提供类似 Excel 的功能。使用Spreadsheet控件可以产生一个完整的电子表格,并将其发布到Web页,如图21.1 所示。数据发布以后Spreadsheet控件不但能将数据呈现出来,而且有很多类似EXCEL的计算公式供用户使用。 • 当包含数据的单元格区域从 Excel 中发布时,Spreadsheet 组件将自动使用这些数据进行填充。也可以使用数据通过编程来填充 Spreadsheet 控件,具体用法请参考21.1.3 OWC应用示例。 • Spreadsheet 控件在 Internet Explorer 中提供如下功能。 • 支持 Excel中的大部分功能 • 重新计算引擎 • 简单的电子表格用户界面 • 基本的电子表格格式 • 数据排序 • 自动筛选 • 多重撤消
21.1.2 OWC组件的内部控件 图21.1 显示在 Internet Explorer 中的 Spreadsheet 控件
21.1.2 OWC组件的内部控件 • 2.Chart 控件 • Chart控件OWC组件内的图表控件,能够在 Internet Explorer 中提供Microsoft Office的图形功能。如图21.2所示,当Chart控件在 Internet Explorer 中发布以后,可以生成各种柱状图、饼状图以及曲线走势图。如果在同一个Web页内同时包含Chart控件和PivotTable控件或Spreadsheet控件,可以将Chart控件和PivotTable控件或Spreadsheet控件进行绑定,这样在 Internet Explorer 中查看 Chart 组件时,对 Spreadsheet 或 PivotTable 组件中数据的更改将自动显示在 Chart 组件中。
21.1.2 OWC组件的内部控件 图21.2 显示在 Internet Explorer 中的 Chart 控件
21.1.2 OWC组件的内部控件 • 3.PivotTable 控件 • PivotTable控件OWC组件内的数据透视表控件。使用PivotTable控件允许用户向 Web 页添加排序、分组、筛选、分级和其他数据透视表的数据处理功能。 • PivotTable控件将 Excel 的列表功能(排序、自动筛选和分级)和数据透视表的自动汇总功能结合到运行于 Internet Explorer 中。因此,Web 页上的数据透视表几乎等同于 Excel 工作表中的数据透视表。 • 数据透视表列表中的数据源可以来自 Excel 电子表格、OLE DB 或 ODBC 数据源、Microsoft OLE DB 提供的 OLAP 数据源。PivotTable 组件提供如下功能。 • 交叉列表(能够旋转行列以查看源数据的不同汇总信息) • 浏览报表数据 • 动态筛选(自动筛选、按选定内容筛选、筛选字段)和排序 • 按行或按列分组 • 创建总计 • 有效处理大量数据或少量数据 • 进一步处理总计后面的明细数据(只能处理列表数据源,不能处理 OLAP 数据源)
21.1.2 OWC组件的内部控件 • 要理解数据透视表报表和列表的工作方式,应熟悉如下区域,如图21.3所示。 • 拖放区域 用于数据透视表列表中,能够将字段拖放到该区域。 • 筛选区域 数据透视表列表的顶端拖放区域。用于整个数据透视表列表的筛选。在筛选区提供了所有条目的下拉选择列表。选中特定的条目将只允许该条目显示在数据区域/明细数据区域。 • 行区域 左边的拖放区域。用于行的分组。 • 列区域 筛选区域下面的区域。用于列的分组。 • 数据区域 数据透视表列表的主要部分。用于所有的总计(求和、计数、最小值、最大值)和列表。 • 明细数据区域 也是数据透视表列表的主要部分。用于支持明细数据的字段(即没有应用总计功能)。您可以通过单击 PivotTable 组件工具栏上的“展开/折叠”按钮来显示此区域。
21.1.2 OWC组件的内部控件 图21.3 未填充的 PivotTable List 控件,显示筛选区域、列区域、行区域和汇总/明细区域
21.1.2 OWC组件的内部控件 • 4.Data Source 控件 • Data Source(DSC) 控件是数据源控件,能够为OWC内部其他组件提供数据访问能力。该控件提供了数据检索、数据绑定和游标管理功能。只有在发布图表或数据透视表报表且这些组件需要绑定到数据时,Data Source 控件才会从 Microsoft Excel 中发布。在 Internet Explorer 中,Data Source 控件本身是不可见的,而且也没有在 Microsoft Excel、Microsoft FrontPage 或 Microsoft Access 中向它发布的选项。它主要由 Access 的数据访问页使用。
21.1.3 OWC组件应用示例 • OWC 组件有丰富的编程接口,可用于实现多种应用,它不但可以应用于Web应用程序,还可以应用于Windows应用程序,利用C#语言通过OWC编程接口与OWC进行通信可以构建复杂的报表系统。 • 【例 21.1】在Web应用程序中使用OWC 组件 • 本示例将演示如何在ASP.Net应用程序中使用 OWC 组件的SpreadSheet控件来创建学生成绩查询的报表程序,同时实现将Web中生成的报表导出到本地Excel中。本示例由以下4个步骤完成。 • (1) 创建 Web 窗体应用程序。 • (2) 向VS.NET工具箱中添加OWC组件。 • (3) 创建OWC报表 • (4) 将OWC报表导出到本地Excel
21.1.3 OWC组件应用示例 • 1.创建 Web 窗体应用程序 • (1) 选择【文件】∣【新建】命令,然后选择【项目】选项。 • (2) 在【新建项目】对话框中,选择【项目类型】窗格中的【Visual C#项目】,然后选择【模板】窗格中的【ASP.NET Web 应用程序】。在【位置】文本框中,键入 http://localhost/OWCWebDemo。 • (3) 单击【确定】按钮关闭对话框。 • 项目被添加到解决方案资源管理器中,并且 Web 窗体设计器打开。
21.1.3 OWC组件应用示例 • 2.向VS.NET工具箱中添加OWC组件 • (1) 在【工具箱】空白处右击,在弹出的快捷菜单中选择【新建选项卡】命令,添加OWC选项卡。 • (2) 在【工具箱】中选择新建的OWC选项卡,在空白处右击,在弹出的快捷菜单中选择【添加删除项】命令。 • (3) 在【自定义工具箱】中选择【COM组件】选项卡,然后选择Microsoft Office Spreadsheet 10.0选项,如图21.4所示。
21.1.3 OWC组件应用示例 图21.4 自定义工具箱
21.1.3 OWC组件应用示例 • (4)单击【确定】按钮,关闭对话框。 • 成功添加后,Microsoft Office Spreadsheet 10.0将被添加到OWC选项卡下面。如图21.5所示。 • 3.创建OWC报表 • 在【工具箱】中选择OWC选项卡。 • 选择Microsoft Office Spreadsheet 10.0控件并将其拖到 Web 窗体中,并将其ID命名为Spreadsheet1。 • 打开HTML代码视图,添加一个Div标签代码,使该标签的ID为dv,同时要使该Div标签的runat属性更改为server,使其可以服务器端运行,代码布局如图21.6所示。
21.1.3 OWC组件应用示例 图21.5 添加OWC组件后的工具箱
21.1.3 OWC组件应用示例 图21.6OWC组件HTML代码
21.1.3 OWC组件应用示例 • 服务器端代码如下: • private void Page_Load(object sender, System.EventArgs e) • { if(!IsPostBack) • { //构建数据源 • DataTable dt=new DataTable(); • DataRow dr; • dt.Columns.Add(new DataColumn("StudentID",typeof(string))); • dt.Columns.Add(new DataColumn("StudentName",typeof(string))); • dt.Columns.Add(new DataColumn("Subject",typeof(string))); • dt.Columns.Add(new DataColumn("Grade",typeof(double))); • dr=dt.NewRow(); • dr[0]="060101"; • dr[1]="王辉"; • dr[2]="语文"; • dr[3]="83"; • dt.Rows.Add(dr); • dr=dt.NewRow(); • dr[0]="060101"; • dr[1]="王辉"; • dr[2]="数学"; • dr[3]="79";
21.1.3 OWC组件应用示例 • dt.Rows.Add(dr); • dr=dt.NewRow(); • dr[0]="060102"; • dr[1]="张亮"; • dr[2]="英语"; • dr[3]="91"; • dt.Rows.Add(dr); • StringBuilder s=new StringBuilder(); • s.Append("\n<script language=\"vbs\">\n"); • s.Append("Sub Window_OnLoad()\n"); • s.Append("Spreadsheet1.ActiveSheet.Cells.Clear\n"); • //表头 • s.Append("Spreadsheet1.ActiveSheet.Range(\"A1:D1\").Merge\n"); • s.Append("Spreadsheet1.ActiveSheet.Range(\"A1\").Value = \"学生成绩查询表\"\n"); • s.Append("Spreadsheet1.ActiveSheet.Range(\"A2:D2\").Merge\n"); • s.Append("Spreadsheet1.ActiveSheet.Range(\"A2\").Value =\""); • s.Append(System.DateTime.Now.ToShortDateString()); • s.Append("\"\n");
21.1.3 OWC组件应用示例 • s.Append("Spreadsheet1.ActiveSheet.Cells(3,1).Value=\"学号\"\n"); • s.Append("Spreadsheet1.ActiveSheet.Cells(3,2).Value=\"姓名\"\n"); • s.Append("Spreadsheet1.ActiveSheet.Cells(3,3).Value=\"科目\"\n"); • s.Append("Spreadsheet1.ActiveSheet.Cells(3,4).Value=\"成绩\"\n"); • //内容 • for(int j=0;j<dt.Columns.Count;j++) • { for(int i=0;i<dt.Rows.Count;i++) • { int row=i+3; • int col=j+1; • s.Append("Spreadsheet1.ActiveSheet.Cells("+row+","+col+").Value="+"\""+dt.Rows[i][j]+"\""+"\n"); } } • //格式 • s.Append("Spreadsheet1.ActiveSheet.Range(\"a1\"). Font.size=15\n"); • s.Append("Spreadsheet1.ActiveSheet.Range(\"a1\").font.bold=true\n"); • s.Append("Spreadsheet1.ActiveSheet.Range(\"a1:a2\").VerticalAlignment=Spreadsheet1.Constants.xlVAlignCenter \n"); s.Append("Spreadsheet1.ActiveSheet.Range(\"a1:a2\").HorizontalAlignment=Spreadsheet1.Constants.xlHAlignCenter \n"); • s.Append("Spreadsheet1.Range(\"a3:d6\").Borders.Weight = Spreadsheet1.Constants.owcLineWeightMedium \n"); • s.Append("End Sub\n"); • s.Append("</script\n"); • dv.InnerHtml=s.ToString();} } • 运行结果如图21.7所示。
21.1.3 OWC组件应用示例 图21.7 Web中的OWC报表
21.1.3 OWC组件应用示例 • 4.将OWC报表导出到本地Excel • 单击图标可以将Web页中生成的报表导出报本地的Excel中,并且打开,如图21.8所示。
21.1.3 OWC组件应用示例 图21.8 Excel中的OWC报表
21.1.3 OWC组件应用示例 • 为Form1_Load事件添加代码以生成报表: • private void Form1_Load(object sender, System.EventArgs e) • { this.axSpreadsheet1.ActiveSheet.Cells[1,1]="060101"; • this.axSpreadsheet1.ActiveSheet.Cells[1,2]="王辉"; • this.axSpreadsheet1.ActiveSheet.Cells[1,3]="语文"; • this.axSpreadsheet1.ActiveSheet.Cells[1,4]="83"; • this.axSpreadsheet1.ActiveSheet.Cells[2,1]="060101"; • this.axSpreadsheet1.ActiveSheet.Cells[2,2]="王辉"; • this.axSpreadsheet1.ActiveSheet.Cells[2,3]="数学"; • this.axSpreadsheet1.ActiveSheet.Cells[2,4]="79"; • this.axSpreadsheet1.ActiveSheet.Cells[3,1]="060102"; • this.axSpreadsheet1.ActiveSheet.Cells[3,2]="张亮"; • this.axSpreadsheet1.ActiveSheet.Cells[3,3]="英语"; • this.axSpreadsheet1.ActiveSheet.Cells[3,4]="91"; }
21.1.4 Spreadsheet控件使用语法参考 • 1.标题栏控制 • 2.单元格控制 • 3.其他属性
21.2 SQL Server Reporting Services • 21.2.1 SQL Server Reporting Services 概述 • 21.2.2 报表制作环境 • 21.2.3 创建简单的报表 21.2.2
21.2.1 SQL Server Reporting Services 概述 • 1.简介 • SQL Server Reporting Services 是一种新型报表平台,可用于创建和管理各类数据库以及数据仓库所产生的报表。它与Visual Studio.Net紧密集成,可以利用Visual Studio.Net开发环境创建各类报表。
21.2.2 报表制作环境 • SQL Server Reporting Services是通过Visual Studio.Net 2003创建的。Visual Studio包括了Reporting Services创建报表所需的各种工具。从选择数据源信息、创建报表布局以及预览报表所需的所有工作都可以在Visual Studio中完成。 • 在SQL Server Reporting Services安装完成后,Visual Studio会新增一个【商业智能项目(Business Intelligence)】类型模版,如图21.10所示。 • 在【商业智能项目】类型中的项目具有【报表项目向导】和【报表项目】两种模版。 • 报表项目向导——通过Report Wizard向导创建一个完成的报表项目。 • 报表项目——创建一个空白的报表项目。打开报表后,需要手动指定数据源、指定查询、对报表布局设置格式等。
21.2.2 报表制作环境 图21.10 新建项目
21.2.2 报表制作环境 • 2.制作环境 • 图21.11展示了Visual Studio中创建Reporting Services报表的环境。下面简要介绍Visual Studio用于创建报表的各种工具栏的功能。 • 设计(Design)窗口 • 图21.11中间的设计窗口是创建报表的地方,数据定义和报表布局都是在这里创建的。设计窗口有3个标签: • 数据 可以为报表定义数据源、用查询分析器创建数据集。 • 布局 可以创建报表布局。单击该标签后可以利用【字段】、【工具箱】和【属性】3个窗口对报表进行设计,本教程下面的小节将介绍这三个窗口的基本功能。 • 预览 可以看到报表的外观以及报表内的数据。使用预览功能可以看到HTML格式的报表,也可以看到导出为其他格式的报表。
21.2.2 报表制作环境 • (2) 字段窗口 • 字段窗口位于图21.11的左上方,它提供了报表中采用的数据库字段清单。这些字段是由查询分析器创建的数据集生成。将字段窗口中的字段拖放到设计窗口中的适当位置,Visual Studio就会将该字段添加到报表中,在预览报表的时候能够自动从数据库中读取数据信息。 • (3) 工具箱 • 工具箱位于图21.11左下方,它包含创建报表所需要的所有控件。利用工具箱可以将文本和图形放到报表的适当位置。同字段窗口一样,可以利用拖放的方式把工具箱中的控件摆放到报表中。 • (4) 属性窗口 • 属性窗口位于图21.11的右下方,是控制每一个报表控件特征的地方。属性窗口显示了设计窗口中选中的报表控件的属性。在图21.11中,选中的是报表的主体。属性窗口的左侧列出了该报表控件的每一个属性的名称,它们是可以改变的。右边列出了这些属性的当前设置。 • (5) 解决方案资源管理器 • 解决方案资源管理器位于图21.11右边,用于管理Visual Studio中处理的所有对象,这些对象由数型结构分级显示。 • 一个报表项目总是包含“共享数据源”和Reports两个文件夹。其中“共享数据源”文件夹中包含报表所要的各种数据源的连接,这些数据源由报表项目中的多个报表共享使用。 • Reports文件包含用Visual Studio创建的所有报表。在Visual Studio编辑报表的时候,设计窗口和字段窗口每次只能显示一个报表信息。如果项目包含多个报表,双击Reports文件中的报表可以切换它们的显示信息。
21.2.2 报表制作环境 图21.11 报表制作环境
21.2.3 创建简单的报表 • 创建Reporting Services 报表应用程序一般要通过以下几个步骤来完成。 • (1)在Visual Studio中创建一个新的报表项目 • (2)创建一个数据源 • (3)创建一个数据集 • (4)设计报表布局
21.3 Crystal Reports • 21.3.1 Crystal Reports概述 • 21.3.2 报表设计 • 21.3.3 创建简单报表 • 21.3.4 用CrystalReportViewer报表查看 器承载报表
21.3.1 Crystal Reports概述 • 1.简介 • Crystal Reports是加拿大Crystal Decisions公司出品的专业级报表分析与生成软件,在全球已经拥有超过1100万的用户,是.Net平台下使用最为广泛的报表工具之一。Crystal Reports集成在Visual Studio.Net集成开发环境之中,但是购买了Visual Studio.Net使用许可后,必须购买Crystal Reports的使用许可,才可以在软件项目中使用Crystal Reports。 • 2.特点 • Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。
21.3.2 报表设计 • 可在 Crystal Report Designer 中创建报表。当向项目中添加 Crystal Reports 对象,或双击项目中现有的 Crystal Reports 对象时,Crystal Report Designer 将自动启动。 • 1. 报表对象 • Crystal Report Designer 使用类似于 Visual Studio .NET 的拖放方式,即将一个报表对象拖动到设计器(如数据库字段或文本对象)上,然后使用【属性】对话框或快捷菜单格式化该对象。 • 可根据您的需要将一些报表对象添加到您的报表中并进行格式化,如:数据库字段、公式字段、参数字段、组名字段、运行总计字段、摘要字段、图表、子报表。 • 2. 报表节 • Crystal Report Designer分为若干个报表节,如报表页眉、页脚和详细信息,可将对象拖动到某个报表节上。
21.3.2 报表设计 • 报表页眉 • 放在【报表页眉】节中的对象只在报表开头输出显示一次。【报表页眉】节通常包含报表的标题和其他希望只在报表开始位置出现的信息。放在该节中的图表和交叉表包含整个报表的数据。放在该节中的公式只在报表开始进行一次求值。 • 页眉 • 放在【页眉】节中的对象输出显示在每个新页的开始位置。【页眉】节通常包含希望在每页的顶部出现的信息。它可以包括文本字段(如章节名、文档名或其他类似信息)。该节也可以用来包含字段标题。在报表中这些字段标题将作为标签显示在字段数据列的顶部。图表或交叉表不能放置在该节中。放在该节中的公式在每个新页的开始进行一次求值。 • 详细资料 • 放在【详细资料】部分中的对象随每条新记录输出显示。【详细资料】部分包含报表正文数据。批量报表数据通常出现在这一节中。当报表运行时,【详细资料】部分随每条记录重复输出显示。例如,如果向【详细资料】部分中添加了一个数据库对象,而这个数据库对象包含100条记录,那么报表在运行时将输出显示100个单独的“详细资料”部分。图表或交叉表不能放置在该节中。放在该节中的公式对每条记录进行一次求值。 • 报表页脚 • 放在【报表页脚】节中的对象只在报表的结束位置输出显示一次。该节可用来包含希望只在报表的末尾出现一次的信息(如总计)。放在该节中的图表和交叉表包含整个报表的数据。放在该节中的公式只在报表的结束位置进行一次求值。
21.3.2 报表设计 • 页脚 • 放在【页脚】节中的对象输出显示在每页的底部。该节通常包含页码和任何其他希望出现在每页底部的信息。图表和交叉表不能放置在该节中。放在该节中的公式在每个新页面的结束位置进行一次求值。 • 其他报表节 • 如果将组、摘要或小计添加到报表,则本程序创建另外两个节:【组页眉】和【组页脚】。当添加了组、摘要或小计时,【组页眉】节出现在【详细资料】部分的正上方,而【组页脚】节出现在【详细资料】部分的正下方。跟原始报表节一样,每个新添加的节也可以包含一个或多个子节。默认情况下,它们都只包含一个节。 • 组页眉 • 放在【组页眉】节中的对象输出显示在每个新组的开始位置。该节通常保存组名字段,也可以用来显示包括组特定数据的图表或交叉表。【组页眉】节在每组的开始位置输出显示一次。放在该节中的图表和交叉表仅包含本组数据。放在该节中的公式在每组的开始对本组进行一次求值。 • 组页脚 • 放在【组页脚】节中的对象输出显示在每组的结束位置。该节通常保存汇总数据(如果有),也可以用来显示图表或交叉表。【组页脚】节在每组的结束位置输出显示一次。放在该节中的图表和交叉表仅包含本组数据。放在该节中的公式在每组的结束位置对本组进行一次求值。 • 最后完成的报表中出现的数据将因你的设计选择而定。尤其是,报表数据会因你所选择插入特定报表对象的节的不同而不同。例如,如果在【报表页眉】节中插入一个图表对象,那么该图表将只在报表开头出现一次,并汇总报表所包含的数据。或者,如果将图表对象添加到【组页眉】节中,那么每组数据的开头都将出现一个单独的图表,并汇总只与该组相关的数据。
21.3.2 报表设计 • 3. 访问和添加数据 • 在Report Designer中,首先选择你的报表将要引用的数据源,在一个报表中可使用一个以上的数据源。 • 接下来,选择要在报表中使用的数据库表。Crystal Reports可自动链接这些表,或者可以指定链接这些表的方式。将数据库表链接以使来自一个数据库的记录与来自另一个数据库的记录相匹配。
21.3.2 报表设计 • 4. 受支持的数据源 • 使用Crystal Reports for Visual Studio .NET 可以连接到并从中制作报表的数据源。 • Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。 • Crystal Reports for Visual Studio .NET 可以访问下列数据源并从中制作报表: • 使用ODBC 驱动程序的任何数据库 • 使用OLEDB提供程序的任何数据库 • Microsoft Access数据库 • Microsoft Excel工作簿 • ADO.NET数据集 • ADO 记录集 • CDO 记录集 • DAO 记录集 • RDO 记录集
21.3.3 创建简单报表 • 1. 使用 Crystal Report Designer • 当在项目中双击现有的 Crystal report 对象或向项目中添加新报表对象时,Crystal Report Designer 就会自动启动。 • 2. 创建新报表步骤 • 在Visual Studio .NET 【解决方案资源管理器】中,右击项目以显示快捷菜单。选择【添加】|【添加新项】命令。 • 在【添加新项】对话框中,从【模板】区域选择 Crystal Report。单击【打开】按钮。 • 在Crystal Report 库中,选择下列选项之一: • 使用报表专家——指导您完成报表的创建过程,并将您的选择添加到Crystal eport Designer。 • 作为空白报表——打开Crystal Report Designer。 • 来自于现有的报表——创建新报表,它与指定的另一报表设计相同。 • 单击【确定】按钮。如果选择使用【报表专家】,便会出现【报表专家】对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成【报表专家】选项卡界面上的操作,然后单击【完成】按钮来访问 Crystal Report Designer报表。 • 选择【文件】|【保存】命令,保存报表。
21.3.4 用CrystalReportViewer报表查看器承载报表 • 在Windows应用程序中承载报表包括下列步骤(可选步骤用于处理 Windows 报表查看器和/或 Windows 应用程序的自定义情况): • 创建 Windows 应用程序。 • 向应用程序添加 Windows 报表查看器。 • 调整Windows 报表查看器的属性(可选)。 • 访问Windows 项目中的报表。 • 将报表绑定到 Windows报表查看器。 • 与Windows 窗体中的其他控件交互(可选)。 • 生成和运行 Windows 应用程序。 • 在Windows 报表查看器中查看报表。