第9章 数据报表创建的基本方法及其基础编程 9.1 数据报表设计器 9.2 报表的创建与制作 9.3 数据报表的其它一些设计方法 第9章 数据报表创建的基本方法及其基础编程 教学要求:通过本章的学习,读者要熟练掌握设计不同要求报表的一般方法,以及如何控制报表的打印,同时能够了解一些制作复杂报表的思想。 9.1 数据报表设计器 9.2 报表的创建与制作 9.3 数据报表的其它一些设计方法 9.4 利用报表模板制作复杂报表 9.5 小 结
9.1 数据报表设计器 9.1.1报表设计器的结构及组成 在使用报表设计器时,必须有数据环境(Data Environment)的支持才能使用。 数据报表本质上是一个DataReport对象,它和窗体很类似
1.报表设计器设计部分主要包含: (1) 报表标头(Report Header) (2) 页标头(Page Header) (3) 细节(Detail) (4) 页注解(Page Footer) 显示每一页出现的信息,例如页数、时间等。 (5) 报表注脚(Report Footer) (6) 分组标题头/注脚(Group Header/Group Footer)。
2. 数据报表新增控件 可以看到在工具箱的“数据报表”栏中新增了6个新的控件,
9.1.2报表设计器的常用属性 DataSource,用于设置一个数据源,通过该数据源,数据使用者被绑定到一个数据库。 DataMember,是从DataSource提供的几个数据成员中设置一个特定的数据成员。 LeftMargin、RightMargin、TopMargin、BottomMargin等,用于指定报表的左右上下的页边距。 Sections,即DataReport的报表标头、页标头、细节、页脚注、报表脚注5个区域,如果加上分组(可以有多层分组),则增加一对区域,即分组标头、分组脚注。它是报表设计器的精髓所在 。
9.1.3报表设计器的特点 报表设计器主要有以下功能特点: 1. 对字段的拖放功能——把字段从 Microsoft 数据环境设计器拖到数据报表设计器。 2. Toolbox控件——数据报表设计器以它自己的一套控件为特色。 3. 报表打印及预览——通过使用 Show 方法预览报表。 4. 文件导出——使用 ExportReport 方法导出数据报表信息。 5. 异步操作——DataReport 对象的 PrintReport 和 ExportReport 方法是异步操作。
9.1.4单表报表和多表报表和主从报表的概念 单表报表,也是最简单的报表,该报表涉及到的数据集只从一个数据表中提取。 多表报表,是相对于单表报表而言的,这种报表涉及到的数据集从多个数据表中提取 主从报表, 是指数据报表的数据集来自两个或多个具有主从表关系的结果集。该报表的数据源也涉及到多个数据表,但多个数据表之间存在主从关系。
9.2 报表的创建与制作 本节主要如何创建一个单表报表,该报表使用数据环境设计器作为数据源,介绍单表报表的制作方法。 9.2.1单表报表的制作方法 本节主要如何创建一个单表报表,该报表使用数据环境设计器作为数据源,介绍单表报表的制作方法。 【例】 设计一个数据报表并设计其打印格式,在这里我们继续使用Stud.mdb数据库。 1.开始设计报表 (1) 选择“工程”菜单中的“添加Data Report”命令选项。 (2) 为数据报表设计标题。 2.使用数据环境设计程序Data Environment Designer (1) 选择“工程”菜单中的“添加Data Environment”命令选项。 将数据环境设计器添加到当前工程中来。
(2) 要与Stud.mdb数据库之间建立其联系,用鼠标右键点击Connection1,在弹出的菜单中选择“属性”菜单,这时出现“Data Link Properties”(数据链接属性).这里通过选择“Microsoft OLE DB Provider for ODBC Driver”。 (3) 给数据环境取一个具体含义的名字,这里改为“denvStud”。 3. 生成用来从数据库中检索客户信息的查询 (1) 在denvStud上单击鼠标右键,从弹出的快捷菜单中选择“添加命令”菜单项,此时在denvStud项下面出现一个名为Command的命令对象。 4.完成报表的设计工作 (1) 设置数据报表设计器的DataSource属性 (2) 向数据报表中添加数据
(3) 为了使内容按表格方式显示 5.编写程序代码、运行程序。 Private Sub Command1_Click() DataReport1.Show End Sub
【例】 设计一个数据报表,用于显示和打印学生的基本信息及各科成绩信息。使用的数据库为Stud 【例】 设计一个数据报表,用于显示和打印学生的基本信息及各科成绩信息。使用的数据库为Stud..mdb,在这里涉及到两个表:Students、Score。 1.开始设计报表 在新建的工程中添加数据报表DataReport,在报表中增加一个RptLabel控件,并设置好其Caption属性值为“学生信息-成绩表”。 2.使用数据环境设计程序Data Environment Designer
9.3 数据报表的其它一些设计方法 9.3.1 数据报表中日期、时间、标题和页号添加 可以通过向页标头或也注脚部分添加适当地Label控件来将标头和注脚数据添加到数据表的每一页。
9.3.2 数据报表中数据的统计分析 【例】 制作一个学生成绩报表,并对成绩,对没个同学求总分、平均分;以及对每门课求平均分。 1.设计数据报表 (1) 在数据环境设计器中 (2) 从数据环境设计器中 (3) 插入一个求和函数“Sum(非绑定)”。 2.运行显示数据报表
FunctionType属性的取值及作用:
数据环境的Command对象提供的字段不同于已经由创建分组标签合注脚获得的分组字段。不用将数据库的表作为分组基础,数据环境设计器的Grouping功能可以选择表中的一个特定的字段作为分组字段,而不需要创建一个新的Command对象。 1. 设计数据环境设计器 2. 设计数据报表 3. 运行程序
9.3.4 报表的打印控制 对于制作的数据报表经常需要将其打印出来。打印数据报表的方法有两种。 1.在打印前显示“打印”对话框 Private Sub CmdPrint_Click() DataReport1.PrintReport True End Sub 2.不显示“打印”对话框 Private Sub Command2_Click() DataReport1.PrintReport False
9.3.4 数据报表的导出 1. ExportReport方法 Object.ExportReport(index,filename,Overwrite,ShowDialog,Range,PageFrom,PageTo) 2. ExportFormat对象 使用ExportFormat对象,可以通过编程决定从数据报表中导出的文本的各种属性。该对象一般ExportReport方法一同使用。 3. 创建模板导出报表
9.4 利用报表模板制作复杂报表 9.4.1 使用报表模板快速创建报表 用一个模板示例用来创建报表,这种报表设计时简单,调整方便、灵活,只需更改一点代码,而不必为了一点点的改动而在设计窗口调整半天。
9.4.2利用VB操作EXCEL来生成复杂的报表 使用数据报表设计器设计的报表虽然功能也比较强大,但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。EXECL具有强大报表功能,因此可以利用VB操作Excel来制作复杂的报表。 1. 用VB创建外部EXCEL对象 2. 了解在程序中操作EXCEL表常用命令 3. 使用Excel设计报表的模板文件 4. 生成工作表内容 5. 打印报表
图表报表是一种非常直观的数据表现形式,数据库应用程序会经常涉及到数据图标的控制,如显示、打印等操作。 9.4.3 图形报表的制作 图表报表是一种非常直观的数据表现形式,数据库应用程序会经常涉及到数据图标的控制,如显示、打印等操作。 MSChart控件是一个功能强大的高级图表工具,拥有丰富的图表绘制功能,可显示二维和三维的棒图、区域图、线形图、饼图等多种常用图表。
1. MSChart控件的基本用法 看到它有以下几部分组成: ● 横向坐标线及标签 ● 横向纵向网格线 ● 数据条形图
2. MSChart控件的常用属性 (1) ChanrtType属性 (2) Column属性 (3) ColumnCount属性 (4) Row属性 (5) RowCount属性 (6) Data属性 (7) RowLabel属性
2. MSChart控件图表的数据源 (1) 设置MsChart控件数据源为一数组 创建一个1行5列的图表,用于显现某学生某学期5门课成绩。使用一个一维数组作为数据源,
(2) 设置MsChart控件数据源为ADO控件 通过ADO控件,可以将MSChart控件与记录集关联起来。关联方法和前面讲过的数组关联类似。记录集中的记录数相当于二维数组的第一维,记录集中的字段数相当于二维数组的第二维。 3. 图形报表的外观设计 通过设置MSChart控件的属性可以改变图标的外观。 4.一个图形报表示例 设计一个应用程序,其上的窗体Form1包括一个MSChart控件McScore,类型为二维饼图,用于显示每种成绩的学生数;一个ADO控件AdScore用于连接数据库;一个DataGrid控件DgScore用于以表格形式显示数据库内容。程序要求当双击图表的某个区域时将与该区域相对应的数据库的内容在DataGrid控件上显示出来。
9.4 小结 数据的输出可以是屏幕显示,也可以是报表或文件。在实际应用中常常需要把数据出来加以分析或保送,这就需要通过数据报表来实现,因此数据报表在应用系统中占据很重要的地位。 本章介绍了数据报表的一些制作方法,主要介绍了数据报表设计器常用属性、事件、方法、以及报表设计器的控件的使用、报表的打印、导出。还介绍一些设计复杂报表的方法,包括图形报表的设计方法。在数据库开发过程中,这些技术要经常使用。