第六节 报表设计 对一个完整的数据库应用程序来说,制作并打印报表是不可缺少的环节。 6.0 提供了 对象作为数据报表设计器( ),对象除了具有强大的功能外,还提供了简单易操作的界面。
对象可以从任何数据源包括数据环境创建报表,数据报表设计器可以联机查看、打印格式化报表或将其导出到正文或页中。
一、报表设计器 数据报表设计器由对象、对象和控件组成。 1对象 对象与的窗体相似,同时具有一个可视的设计器和一个代码模块,可以 使用设计器创建报表的布局,也可以在代码模块中添加代码。
在“工程”菜单上,单击“添加”命令,将数据报表设计器添加到工程中,则出现如图5-6-1所示的1对象,由“报表标头”、“页标头”、“细节”、“页注脚”和“报表注脚”组成。
图 5-6-1 ·报表标头:指显示在一个报表开始处的文本,例如用来显示报表标题、作者或数据库名。 ·页标头:指在每一页顶部出现的信息,例如用来显示每页的报表标题。 ·分组标头、注脚:指数据报表中的“重复”部分。每一个分组标头与一个分组注脚相匹配,用于分组。
·细节:指报表的最内部的“重复”部分(记录),与数据环境中最低层的 子对象相关联。 ·页注脚:指在每一页底部出现的信息,例如,用来显示页码。 ·报表注脚:指报表结束处出现的文本,例如,用来显示摘要信息或一个地址或联系人 姓名。报表注脚出现在最后一个页注脚之前。
2对象 数据报表设计器的每一个部分由对象表示,如图5-6-1中的1~5。设计时,每一个由一个窗格表示,可以单击窗格以选择页标头,编程改变其外观和行为,也可以在窗格中放置和定位控件,对对象及其属性进行动态重新配置,更改每一个对象的布局来设计报表。
3控件 当一个新的数据报表设计器被添加到工程时,在窗体上控件箱出现“数据报表”和“”(通用)选项卡,如图5-6-2所示。但在数据报表设计器上不能使用的控件,即内部控件或控件。数据报表选项卡中的控件仅包含可在数据报表设计器上工作的特殊控件。
图 5-6-2 数据报表选项卡有下列控件: ·控件():文本框用于在报表上设置规定文本格式,或指定一个。 ·控件():用于在报表上放置标签、标识字段或。 ·控件():用于在报表上放置图形,该控件不能被绑定到数据字段。 ·控件():用于在报表上绘制直线,可用于进一步区分。 ·控件():用于在报表上放置矩形、三角形或圆形(椭圆型)。 ·控件():是一个特殊的文本框,用于在报表生成时计算数值。 控件不像控件那样直接绑定到记录集上。
二、设计报表 用数据报表设计器设计一个定单明细表,利用中的四个数据表,输出每个客户的定单信息,即每个客户订购的图书数量、书名和书号。为了更具有实用性,在(图书信息表)和(订购图书信息表)中添加“单价”字段,这样在报表中可以对客户订购的金额进行汇总。
1.指定数据源 首先配置一个数据源,可以用数据环境()作数据源。 ①在“工程”菜单上,单击“添加 ”向工程中添加一个数据环境设计器对象()。 ②设置“连接”属性为“”,对象名为“”。添加命令“”。用右键单击“”,在快捷菜单中选择“属性”命令,打开属性页。在“通用”选项卡中选择“”表。
③在快捷菜单中选择“添加子命令”,添加“”命令,在属性页的“通用”选项卡中选择“语句”,单击“生成器”按钮,则出现如图5-6-3所示的查询设计窗口。
图 5-6-3 设计由、和表组成的查询记录集,设计查询的步骤如下: ①打开“数据视图”窗口,如图5-6-4所示。将、和表拖放到查询设计窗口中。
图 5-6-4 ②通过单击的“定单号”并拖放到的“定单号”来建立关联,并将的“书号”和的“书号”关联。单击要显示的字段,包括“定单号”、“客户号”、“书号”、“书名”、“数量”和“单价”。单击鼠标右键,选择“运行”命令,在查询设计窗口中显示语句和满足条件的记录,如图5-6-5所示。
图 5-6-5 ③关闭查询设计窗口,出现保存对话框,将查询保存为,则生成的数据环境设计器如图5-6-6所示,由两个对象:和。 图 5-6-6 ④在数据环境设计器窗口中用鼠标右键单击,在快捷菜单中选择“属性”, 选择“关联”选项卡,单击“添加”按钮,如图5-6-7所示。
图 5-6-7 单击“确定”按钮,则完成了对象的创建。 2.将数据报表设计器添加到工程中 在“工程”菜单上,单击“添加 ”命令,将数据报表设计器添加到工程中,则出现未设计的对象。 如果设计器不在“工程”菜单上,在控件箱用鼠标右键单击“部件”选择“设计器”命令,并在选项卡中单击“ ”把设计器添加到菜单上。 3.设置对象属性 在属性页设置对象的属性,将属性设置为“”;设置属性为数据环境对象“”;设置属性设置为“”命令。
4.检索结构 在上单击鼠标右键,选择“检索结构”命令,出现对话框“用新的数据层次代替现在的报表布局吗?” ,单击“是”按钮,将向报表设计器添加新的分组,分组与数据环境中的命令对象有“一对一”的对应关系。
5.添加控件 ·在页标头()下,从控件箱中选择控件,将属性设置为“客户定单明细”; ·从数据环境设计器中拖放“客户号”、“客户姓名”和“客户地址”字段到分组标头(),则自动出现标签和文本框。文本框的和 属性自动为“客户号”、“客户姓名”和“客户地址”的和对象,然后将标签都删除;
·从数据环境设计器中将“定单号”、“书名”、“数量”和“单价”字段拖放到细节(),将所有的标签拖放到分组标头,文本框仍放置在细节。
6.设置布局 ·设置属性的“”和“”都为5; ·设置各控件的布局,将分组标头中的标签与细节中相应的文本框对齐,将标签的“”属性设置为1,并设置字体大小;
·使用控件箱中的在分组注脚( )添加一直线。在页标头标签添加两条直线; ·调整细节部分的高度,使它尽可能的窄,因为细节的高度是同一客户的每一定单之间的距离,避免不必要的空间,如图5-6-8所示。 图 5-6-8 7.运行显示数据报表 有两种方法可以显示数据报表: (1)在“工程”菜单中选择“属性”命令,将“启动对象”设置为,运行显示数据报表。 (2)使用程序代码显示数据报表,在“工程资源管理器”窗口,双击“1”窗体图标,并窗体上放置一个按钮。按钮的事件代码如下:
()
在运行时单击“1”窗体中的按钮,显示报表,如图5-6-9所示。 图 5-6-9 三、向报表添加控件 数据报表设计器的控件箱中,控件使用各种内置函数,在报表生成时显示运行计算结果,一般放置在注脚部分。
控件仅在分组内的所有记录都被处理后,才可以计算值。语句则可以在记录处理时作为一个计算字段。因此,控件只能被放置在比所计算数据层次高一级的部分中,例如,被放置在报表注脚中,此时控件的计算范围扩大到整个报表。 控件包含的函数如表5-6-1所示。
表 5-6-1 函数名 功 能 合计一个字段的值 显示一个字段的最小值 显示一个字段的最大值 显示一个字段的平均值 显示一列数字的标准偏差 显示一列数字的标准错误 显示包含非空值的字段数 显示一个报表部分中的行数
1.向数据报表设计器添加一个控件的步骤 ①在数据报表设计器的一个适当的注脚部分绘制一个控件。 ②设置和属性为来自数据环境对象的一个数值字段。 2.报表中添加显示某个客户订单总金额的步骤: ①在的查询中添加一个别名为“合计金额”字段用于计算该客户的总金额,在图5-6-2中的查询设计窗口添加字段,在“列”栏中输入“.数量*.单价”,在“别名”栏输入“合计金额”。运行该查询后,在对象就增加了“合计金额”字段。如图5-6-10。 图 5-6-10 ②从数据视图中拖动“合计金额”字段,放置在数据报表设计器窗口的“”中,并安排布局。如图5-6-11。
图 5-6-11 ③在报表设计器窗口中的“”部分绘制一个控件,控件的属性如表5-6-2所示。在控件的左边放置一个控件,属性设置为“合计:”。
表 5-6-2 属 性 设置值
合计金额 ( ) 0
④保存并运行,当单击“1”窗体中的“显示报表”按钮时,如图5-6-12所示。
图 5-6-12 ⑤如果需要进一步增加所有订单的总计,向报表注脚添加一个控件,如表5-6-3所示设置控件的属性,在控件的左边放置一个控件。
表 5-6-3 属 性 设置值
合计金额 ( ) 0
⑥运行报表,显示结果如图5-6-12所示。 四、报表打印 打印一个数据报表可以使用两种方法,使用“打印”按钮或者使用方法编程打印。 1.使用“打印”按钮 当使用方法进行“打印预览”时,如图5-6-10所示,单击工具栏中的“打印”按钮,则出现“打印”对话框,然后进行打印设置。
2.使用方法 方法用于在运行时打印用数据报表设计器创建的数据报表。使用方法编程打印可以显示“打印”对话框,也可以不显示“打印”对话框。
语法: 对象(是否显示“打印”对话框,页面范围,起始页,终止页) 其中,页面范围0(默认),指所有页面:1为指定范围的页面。 (1)显示“打印”对话框 将一个“打印”按钮()添加到“1”中。在的事件中代码如下: ()
在运行时单击此按钮,则出现如图5-6-13所示的打印对话框。