《ADO.NET数据库访问技术案例教程 第12章 报表制作与数据导出.ppt》由会员分享,可在线阅读,更多相关《ADO.NET数据库访问技术案例教程 第12章 报表制作与数据导出.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第 12 12 章章报表制作与数据导出报表制作与数据导出 利用利用Crystal ReportsCrystal Reports向导制作报表向导制作报表12.1数数 据据 导导 出出12.2 在在VisualStudio.NET中提供了一个报中提供了一个报表设计器表设计器CrystalReports,利用此工,利用此工具,可以快速地生成各种报表。具,可以快速地生成各种报表。【知知识识技技能能目目标标】(1)掌握利用)掌握利用CrystalReports向导向导创建创建CrystalReport文件的过程,学文件的过程,学会在报表设计器中绘制表格线的方法。会在报表设计器中绘制表格线的方法。(2
2、)掌握动态改变)掌握动态改变CrystalReport的的SetDataSource属性的方法。属性的方法。(3)掌握动态改变)掌握动态改变CrystalReportViewer控件的控件的ReportSource属性的方法。属性的方法。(4)掌握将数据表中的数据导出到)掌握将数据表中的数据导出到Excel工作表的方法。工作表的方法。【本本章章学学习习导导航航】数据表中的数据可以采用报表的形式数据表中的数据可以采用报表的形式预览,也可以采用报表的形式打印,本章预览,也可以采用报表的形式打印,本章主要探讨利用主要探讨利用CrystalReports工具设计报工具设计报表的方法,主要涉及以下对象。
3、表的方法,主要涉及以下对象。(1)CrystalReports向导。向导。(2)CrystalReportViewer控件。控件。(3)ReportDocument组件。组件。12.112.1利用利用Crystal ReportsCrystal Reports向导制向导制作报表作报表在在VisualStudio.NET中设计报表的一中设计报表的一般过程是:首先使用般过程是:首先使用CrystalReports报表报表设计器生成一个可以在设计器生成一个可以在VisualStudio.NET中运行的报表文件(中运行的报表文件(*.rpt文件),然后再文件),然后再通过通过CrystalReport
4、Viewer控件将报表文件控件将报表文件显示出来。显示出来。【实例实例12-1】1设计任务设计任务设计一个显示或打印报表的窗体,该设计一个显示或打印报表的窗体,该窗体的运行效果如图窗体的运行效果如图12-1所示,当前窗体所示,当前窗体显示的是班级编号为显示的是班级编号为“2003030201”班的班的学生数据。从学生数据。从ComboBox控件中选择一个控件中选择一个班级编号,下方报表中便会显示对应的班班级编号,下方报表中便会显示对应的班级的所有学生数据级的所有学生数据 图图12-112-1【打印报表打印报表】窗体的运行效果窗体的运行效果 2设计过程设计过程(1)新建一个项目)新建一个项目Ch
5、apter12_1。(2)在窗体中添加)在窗体中添加1个个Label控件、控件、1个个ComboBox控件和控件和1个个CrystalReportViewer控件,窗体及控控件,窗体及控件的设计外观如图件的设计外观如图12-2所示。所示。(3)添加数据适配器对象,生成数)添加数据适配器对象,生成数据集对象。据集对象。图图12-212-2“打印报表打印报表”窗体的设计状态窗体的设计状态 从工具箱的从工具箱的“数据数据”控件区拖动一个控件区拖动一个SqlDataAdapter控件到窗体上,利用控件到窗体上,利用“数数据适配器配置向导据适配器配置向导”建立建立SqlConnection对对象和象和S
6、qlDataAdapter对象,分别更改名称对象,分别更改名称为为“conn”和和“SqlDa”。接下来生成数据。接下来生成数据集,且将数据集名称更改为集,且将数据集名称更改为“SqlDs1”,如图如图12-2所示。所示。(4)添加)添加CrystalReport文件。文件。在在VisualStudio.NET集成开发环境中,集成开发环境中,单击单击【项目项目】【添加新项添加新项】菜单,在菜单,在“添加新项添加新项”对话框中的对话框中的“模板模板”列表框中列表框中选择选择CrystalReport,在,在“名称名称”文本框中文本框中输入输入“CrystalReport1.rpt”(为默认名(为
7、默认名称),如图称),如图12-3所示,然后单击所示,然后单击【打开打开】按钮。按钮。图图12-312-3在在【添加新项添加新项】对话框中创建对话框中创建Crystal ReportCrystal Report文件文件 接着出现如图接着出现如图12-4所示的提示注册所示的提示注册CrystalReport的向导,如果已有的向导,如果已有“注册号注册号码码”和和“密码密码”则单击则单击【下一步下一步】进行注进行注册,否则单击册,否则单击【以后注册以后注册】出现如图出现如图12-5所示的对话框。所示的对话框。图图12-412-4Crystal ReportCrystal Report注册向导注册向
8、导 图图12-512-5“Crystal ReportCrystal Report库库”对话框对话框 在如图在如图12-5所示的所示的“CrystalReport库库”对话框中,上方单击选择对话框中,上方单击选择“使用报表专使用报表专家家”单选按钮,下方单击选择单选按钮,下方单击选择“标准标准”,然后单击然后单击【确定确定】按钮,打开如图按钮,打开如图12-6所所示的示的“选择要报告的数据选择要报告的数据”对话框。对话框。图图12-6“选择要报告的数据选择要报告的数据”对话框对话框 在图在图12-7中展开中展开“项目数据项目数据”“ADO.NET数据集数据集”“Chapter12_1.SqlD
9、s”,然后选取,然后选取“学生信息学生信息”,单,单击击【插入表插入表】按钮,如图按钮,如图12-7所示。然后所示。然后单击单击【下一步下一步】按钮,切换到按钮,切换到“字段字段”选选项卡。项卡。图图12-712-7展开项目数据与插入报表中所需的表展开项目数据与插入报表中所需的表 在如图在如图12-8所示的所示的“选取要显示的字选取要显示的字段段”对话框中,从左边对话框中,从左边“可用字段可用字段”列表列表框中,选择字段添加到右边框中,选择字段添加到右边“要显示的字要显示的字段段”列表框中,然后在每个字段下方的列表框中,然后在每个字段下方的“列标题列标题”文本框中输入想显示在报表上的文本框中输
10、入想显示在报表上的字段标题。字段标题。图图12-812-8“选取要显示的字段选取要显示的字段”对话框对话框 对于对于“组组”、“总计总计”、“最前最前N个个”、“图表图表”和和“选择选择”等选项采用默认等选项采用默认设置,直接单击设置,直接单击“样式样式”标签,在标签,在“标题标题”文本框中输入文本框中输入“学生信息的查询结果学生信息的查询结果”,如图,如图12-9所示,单击所示,单击【完成完成】按钮,打按钮,打开如图开如图12-10所示的报表设计器窗口。所示的报表设计器窗口。图图12-912-9“输入标题输入标题”对话框对话框 图图12-1012-10报表设计器窗口报表设计器窗口 (5)调整
11、字段的位置与宽度,绘制)调整字段的位置与宽度,绘制表格线。表格线。在报表设计器窗口中调整字段的位置在报表设计器窗口中调整字段的位置与宽度,利用如图与宽度,利用如图12-11所示的所示的CrystalReports工具按钮中的工具按钮中的【线条对象线条对象】工具绘工具绘制表格线,报表调整的结果如图制表格线,报表调整的结果如图12-12所示。所示。图图12-1112-11Crystal ReportsCrystal Reports的工具按钮的工具按钮 图图12-1212-12添加报表的表格线与报表调整的结果添加报表的表格线与报表调整的结果 (6)添加)添加ReportDocument组件。组件。从
12、工具箱的从工具箱的“组件组件”区拖动区拖动ReportDocument组件到组件到“打印报表打印报表”窗体窗体中,弹出如图中,弹出如图12-13所示的所示的“选择一个选择一个ReportDocument”对话框,在该对话框中对话框,在该对话框中选取选取“Chapter12_1.CrystalReport1”,然,然后单击后单击【确定确定】按钮,在按钮,在“打印报表打印报表”窗窗体的组件区会出现体的组件区会出现“CrystalReport11”组组件,如图件,如图12-2所示。所示。图图12-1312-13“选择一个选择一个ReportDocumentReportDocument”对话框对话框
13、(7)切换到代码窗口,编写程序代)切换到代码窗口,编写程序代码,实现其功能。码,实现其功能。定义自定义类的对象:定义自定义类的对象:DimSqlDbAsNewSqlDbClass。窗体窗体Load事件过程的程序代码如代码事件过程的程序代码如代码12-1-1所示。所示。ComboBox1控件的控件的SelectedIndexChanged事件过程的程序代事件过程的程序代码如代码码如代码12-1-2所示。所示。3代码分析代码分析代码分析如表代码分析如表12-1所示。所示。代代码码序号序号行号行号代代 码码 分分 析析代代码码12-1-112-1-10202行行调调用用crystalReport11
14、crystalReport11的方法的方法SetDataSourceSetDataSource,设设置其数据源置其数据源为为SqlDs1.Tables(0)SqlDs1.Tables(0)0404行行调调用自定用自定义类义类的方法的方法CheckSqlConnectionCheckSqlConnection创创建新的建新的连连接接对对象,第象,第0606行行调调用自定用自定义类义类的方法的方法SelectSqlDvSelectSqlDv返回返回DataViewDataView对对象象表表12-112-1程序代码分析程序代码分析 代代 码码 序序 号号行号行号代代 码码 分分 析析代代码码12-
15、1-212-1-20202行行调调用自定用自定义类义类的方法的方法SelectSqlDtSelectSqlDt返回返回DataTableDataTable对对象象0404行行重新重新设设置置crystalReport11crystalReport11的数据源的数据源0505行行调调用方法用方法RefreshRefresh对对crystalReport11crystalReport11的的数据源数据源进进行刷新行刷新0606行行利用利用CrystalReportViewerCrystalReportViewer控件的属性控件的属性ReportSourceReportSource,设设置置报报表的
16、数据源表的数据源续表续表 4知识要点说明知识要点说明(1)CrystalReportViewer控件常用控件常用的属性是的属性是ReportSource,该属性用于,该属性用于获取或设置报表的数据源。获取或设置报表的数据源。(2)ReportDocument组件是一种非组件是一种非类型化的报表组件。类型化的报表组件。12.212.2数数 据据 导导 出出数据库应用系统一般都应具有数据导数据库应用系统一般都应具有数据导出的功能,可能通过编程的方式将数据输出的功能,可能通过编程的方式将数据输出到出到Office应用程序中,例如应用程序中,例如Word、Excel等,本节以数据表中的数据导出到等,本
17、节以数据表中的数据导出到Excel为为例说明如何导出数据。例说明如何导出数据。【实例实例12-2】1设计任务设计任务设计一个导出数据的窗体,该窗体的设计一个导出数据的窗体,该窗体的运行效果如图运行效果如图12-14所示,先选取导出对象,所示,先选取导出对象,然后单击然后单击【导出导出】按钮即可将数据导出到按钮即可将数据导出到Excel工作表中。工作表中。图图12-1412-14数据导出窗体的运行状态数据导出窗体的运行状态 2设计过程设计过程(1)新建一个项目)新建一个项目Chapter12_2。(2)在窗体中添加)在窗体中添加2个个Button控件、控件、2个个CheckBox控件和控件和1个
18、个GroupBox控控件,窗体及控件的设计外观如图件,窗体及控件的设计外观如图12-14所示。所示。(3)添加引用。)添加引用。要引用要引用Excel对象,首先应引入对象,首先应引入MicrosoftExcel11.0ObjectLibrary对象,对象,在在VisualStudio.NET环境中单击菜单环境中单击菜单【项项目目】【添加引用添加引用】,出现如图,出现如图12-15所示所示的的“添加引用添加引用”对话框,选择对话框,选择“COM”选项选项卡,在其中选择卡,在其中选择“MicrosoftExcel11.0ObjectLibrary”对象,单击对象,单击【选择选择】按钮,按钮,然后单
19、击然后单击【确定确定】按钮关闭对话框即可。按钮关闭对话框即可。图图12-1512-15“添加引用添加引用”对话框对话框 (4)切换到代码窗口,编写程序代)切换到代码窗口,编写程序代码,实现其功能。码,实现其功能。3代码分析代码分析代码分析如表代码分析如表12-2所示。所示。代代 码码 序序 号号行行 号号代代 码码 分分 析析代代码码12-2-312-2-30303行行创创建一个建一个ApplicationApplication对对象象0606行行启启动动ExcelExcel1010行行在在ExcelExcel表中的第表中的第1 1行的第行的第1 1个个单单元格中元格中输输入入标题标题文本文本
20、1515行行在在ExcelExcel表中的第表中的第2 2行的各个行的各个单单元格中元格中输输入列入列标题标题文本文本2222行行在在ExcelExcel表中从第表中从第3 3行开始依次行开始依次输输入数据表中入数据表中的各字段的的各字段的值值2626行行自自动调动调整列整列宽宽2828行行保存保存ExcelExcel文件文件3333行行退出退出ExcelExcel表表12-212-2程序代码分析程序代码分析 【课堂实践课堂实践】打开光盘中文件夹打开光盘中文件夹【ClassroomPractise12_1】中的解决方案文中的解决方案文件件【ClassroomPractise12_1.sln】,
21、打开,打开该解决方案中的窗体该解决方案中的窗体【Form1.vb】,打开,打开报表设计器,手工绘制表格线。报表设计器,手工绘制表格线。然后切换到代码窗体,在窗体的然后切换到代码窗体,在窗体的Load事件过程中补写程序代码,实现报表的显事件过程中补写程序代码,实现报表的显示与打印功能,如图示与打印功能,如图12-16所示。所示。图图12-1612-16用户数据报表用户数据报表 【课外拓展实践课外拓展实践】参考如图参考如图12-17所示的所示的【当前资料借阅当前资料借阅情况情况】报表设计一个报表设计一个【图书借阅情况图书借阅情况】报报表。表。图图12-1712-17当前资料借阅情况报表当前资料借阅情况报表 【本章小结本章小结】本章主要介绍了利用本章主要介绍了利用CrystalReports向导创建向导创建CrystalReport文件的过程,动态文件的过程,动态改变改变CrystalReport的的SetDataSource属性、属性、CrystalReportViewer控件的控件的ReportSource属性的方法;也介绍了将数据表中的数据属性的方法;也介绍了将数据表中的数据导出到导出到Excel工作表的方法。工作表的方法。