教程 3:构建带有并排子报告的报告
本节提供构建显示客户列表的报告的逐步指示信息。对于每个客户,该报告都显示订单信息和支付信息。订单信息和支付信息位于并排显示的不同子报告中。客户报告是主报告(也称为外部报告),而订单子报告和支付子报告是详细报告(也称为内部报告)。
每个报告都从样本数据库 Classic Models 中的不同表访问数据。客户报告使用 Customers 表中的数据。订单子报告使用 Orders 表中的数据。支付子报告使用 Payments 表中的数据。
公共字段 CUSTOMERNUMBER 链接这些报告。主报告中的链接字段值确定出现在详细报告中的数据。例如,如果主报告中的客户编号是 173,则详细报告将显示标识为 173 的客户的订单信息和支付信息。
图 13-1 显示已完成的报告的一部分。
图 13-1 客户主报告,带有订单子报告和支付子报告
在本教程中,您将执行下列任务:
任务 1:创建新报告
如果使用的是 BIRT 报告设计器,则此任务假定您已经为报告创建了项目。如果使用的是 BIRT RCP 报告设计器,则不需要项目。
- 选择“文件”->“新建”->“报告”。
- 在“新建报告”上,选择用于存储报告的项目。
- 输入下列文本作为文件名:
- 选择“下一步”。
- 选择空白报告,然后选择“完成”。新报告将出现在布局编辑器中。
任务 2:构建数据源
在布局编辑器中开始设计报告之前,创建一个数据源以将报告连接至 Classic Models 数据库。
- 选择“数据资源管理器”。
- 右键单击“数据源”,然后从上下文菜单中选择“新建数据源”。
- 从数据源列表中选择“Classic Models Inc. 样本数据库”,使用缺省数据数据源名称,然后选择“下一步”。将出现有关该新数据源的连接信息。
- 选择“完成”。BIRT 报告设计器创建一个连接至样本数据库的新数据源。它将出现在“数据资源管理器”的“数据源”中。
任务 3:为客户报告构建数据集
在此过程中,将构建一个数据集以指示要从 Customers 表中抽取的数据。稍后创建的客户报告将使用此数据集。
- 在“数据资源管理器”中,右键单击“数据集”并选择“新建数据集”。
- 在“新建数据集”上,输入以下文本作为数据集的名称:
- 对于其他字段,请使用缺省值:
- 选择“下一步”。“查询”显示可帮助您创建 SQL 查询的信息。右边的文本区域显示 SQL SELECT 语句的必需关键字。
- 展开 CUSTOMERS 表。将显示 Customers 表中的列。
- 使用以下 SQL SELECT 语句来指示要检索的数据。可以输入列名和表名,也可以将它们从左边拖至 SELECT 语句中的适当位置。
您创建的此语句(显示在
图 13-2 中)从 CUSTOMERS 表中的 CUSTOMERNAME 和 CUSTOMERNUMBER 列获取值。
图 13-2 查询
- 选择“完成”以保存数据集。“编辑数据集”将显示在查询中指定的列,并提供用于编辑数据集的选项。
- 选择“预览结果”以确认查询有效并且它返回正确的数据。如果正确创建了 SELECT 语句,则您应该看到图 13-3 中显示的结果。这些是查询返回的数据行。
图 13-3 数据预览
- 选择“确定”。
任务 4:为订单子报告构建数据集
在此过程中,将构建一个数据集以指示要从 Orders 表中抽取的数据。稍后创建的订单子报告将使用此数据集。
- 在“数据资源管理器”中,右键单击“数据集”并从上下文菜单中选择“新建数据集”。
- 在“新建数据集”上,输入以下文本作为数据集的名称。
- 对于其他选项,请使用缺省值,然后选择“下一步”。
- 在“查询”上,展开 Orders 表以显示该表中的列。
- 使用以下 SQL SELECT 语句来指示要检索的数据:
此语句从 Orders 表中选择 ORDERNUMBER 和 ORDERDATE 列。WHERE 子句对于值 CUSTOMERNUMBER 有一个参数标记。报告运行时,订单子报告将从客户报告中获取当前 CUSTOMERNUMBER 值。
- 选择“完成”以保存数据集。“编辑数据集”将显示在查询中指定的列,并提供用于编辑数据集的选项。
- 创建数据集参数以提供 WHERE 子句中的 CUSTOMERNUMBER 值:
- 从窗口的左边选择“参数”。“编辑数据集”将显示参数信息。
- 在表的第一行中指定下列值:
图 13-4 订单子报告中的参数定义
- 选择“预览结果”以确认查询有效并且它返回正确的数据。如果正确地创建了 SELECT 语句和数据集参数,则您应该看到图 13-5 中显示的结果。这些是查询对客户编号 103 返回的数据行。
图 13-5 订单子报告的数据预览
- 选择“确定”以保存对数据集所作的更改。
任务 5:为支付子报告构建数据集
在此过程中,将构建一个数据集以指示要从 Payments 表中抽取的数据。稍后创建的支付子报告将使用此数据集。
- 在“数据资源管理器”中,右键单击“数据集”并从上下文菜单中选择“新建数据集”。
- 在“新建数据集”上,输入以下文本作为数据集的名称。
- 对于其他选项,请使用缺省值,然后选择“下一步”。
- 在“查询”上,展开 Payments 表以显示该表中的列。
- 使用以下 SQL SELECT 语句来指示要检索的数据:
此语句从 Payments 表中选择 PAYMENTDATE、CHECKNUMBER 和 AMOUNT 列。WHERE 子句对于值 CUSTOMERNUMBER 有一个参数标记。报告运行时,支付子报告将从客户报告中获取当前 CUSTOMERNUMBER 值。
- 选择“完成”以保存数据集。“编辑数据集”将显示在查询中指定的列,并提供用于编辑数据集的选项。
- 创建数据集参数提供 WHERE 子句的 CUSTOMERNUMBER 值:
- 选择“参数”。“编辑数据集”将显示参数信息。
- 在表的第一行中指定下列值:
- 名称:CustID
- 数据类型:整数
- 方向:输入
- 缺省值:103
- 选择“预览结果”以确认查询有效并且它返回正确的数据。如果正确地创建了 SELECT 语句和数据集参数,则您应该看到图 13-6 中显示的结果。这些是查询对客户编号 103 返回的数据行。
图 13-6 支付子报告的数据预览
- 选择“确定”以保存对数据集所作的更改。
任务 6:创建客户主报告
使用列表元素来创建主报告并组织该主报告中的订单子报告和支付子报告。列表迭代完所有客户数据行并对每条记录创建相关的订单子报告和支付子报告。为了简单起见,客户报告只显示客户名。当然,它可以显示其他数据,如客户地址、电话号码和贷记限额。
- 选择“选用板”。
- 将选用板中的列表元素拖放到报告中。该列表元素将出现在报告中,如图 13-7 所示。
图 13-7 列表元素
- 将列表与 Customers 数据集关联,或将它们绑定在一起:
- 在“属性编辑器”中,选择“绑定”选项卡。
- 对于“数据集”,请从下拉列表中选择 Customers。
- 选择“数据资源管理器”,展开“数据集”,然后展开 Customers。在查询中指定的列将出现在 Customers 下面。
- 将 CUSTOMERNAME 从“数据资源管理器”中拖放到列表的详细信息区域中。BIRT 报告设计器将创建一个绑定到数据集字段的指定列。“选择数据绑定”将显示此列绑定。
- 选择“确定”以接受缺省列绑定。在布局编辑器中,该列表将显示添加的字段,如图 13-8 所示。
图 13-8 列表元素中的数据集子段
- 选择“预览”以预览报告。报告看起来应如图 13-9 所示。该列表按查询返回客户名的顺序列示所有客户名。
图 13-9 主报告的数据预览
- 按升序对客户名进行排序:
- 选择“布局”以返回至布局编辑器。
- 在布局编辑器中,选择列表元素。将鼠标指针悬浮在左下角,直到显示“列表”选项卡为止,然后选择该选项卡。
- 在“属性编辑器”中,选择“排序”选项卡。
- 在“排序”页上,选择“添加”以创建排序表达式。在“排序依据”下面将出现一行。
- 单击“排序关键字”下面的区域,然后选择出现的方向按钮,并从下拉列表中选择 CUSTOMERNAME。
图 13-10 排序表达式
- 预览该报告。客户名将按升序出现。
任务 7:创建订单子报告
订单子报告以行和列的格式列示每个客户的订单。它显示每个订单的订单号和日期。要迭代完订单数据集行并以行和列的格式显示它们,可使用表元素。
- 选择“布局”以返回至布局编辑器。
- 将选用板中的表元素拖放到详细信息区域中 [CUSTOMERNAME] 数据元素的下面。“插入表”提示您指定要对此表创建的列数和详细信息行数。
- 指示您想要创建 2 列和 1 个详细信息行,然后选择“确定”。具有 2 列和 1 个详细信息行的表将出现在布局编辑器中。
- 将表与 Orders 数据集绑定在一起:
- 在“属性编辑器”中,选择“绑定”。
- 对于“数据集”,从下拉列表中选择 Orders。
- 选择“数据资源管理器”,展开“数据集”,然后展开 Orders。在查询中指定的列将出现在 Orders 下面。
- 将 ORDERNUMBER 从“数据资源管理器”中拖放到表详细信息行的第一个单元格中。BIRT 报告设计器将创建一个绑定到数据集字段的指定列。“选择数据绑定”将显示此列绑定。
- 选择“确定”以接受缺省列绑定。
在布局编辑器中,放置数据集字段的表单元格包含显示 [ORDERNUMBER] 的数据元素。此数据元素上方是布局编辑器自动添加至表头行的标签元素。此标签将字段名显示为静态文本并充当列标题。
- 将 ORDERDATE 从“数据资源管理器”拖放到详细信息行中的第二个单元格中。选择“确定”以接受缺省列绑定。报告页看起来应如图 13-11 所示。
图 13-11 包含订单子报告的报告设计
- 按订单号排序订单行
- 选择 Orders 表。
- 在“属性编辑器”中,选择“排序”。
- 在“排序”页上,选择“添加”以创建排序表达式。在“排序依据”下面将出现一行。
- 单击“排序关键字”下面的区域,然后选择出现的方向按钮,并从下拉列表中选择 ORDERNUMBER。
- 对“排序方向”使用缺省值“升序”。
- 预览该报告。
图 13-12 预览显示重复订单记录的报告
由于在创建数据集参数 CustID 时对 customerNumber 指定了缺省值 103,所以会对每个客户显示相同的订单记录。由于此缺省值,订单子报告始终显示客户 103 的订单记录。
解决方案是每次主报告中的客户行更改时就动态更新 CustID 参数的值。在以下任务中描述了此过程。
任务 8:将订单子报告链接至客户主报告
通过在客户报告中将 CustID 参数绑定至 CUSTOMERNUMBER 数据集字段,可将订单子报告链接至客户主报告。每当客户报告有新的客户行时,就使用新的 CUSTOMERNUMBER 值更新 CustID 参数。
在将 CustID 参数绑定至 CUSTOMERNUMBER 数据集字段之前,必须创建列绑定并将它与数据集字段绑定在一起。参数不能直接访问数据集字段。
- 选择“布局”以返回至布局编辑器。
- 创建一个绑定至 CUSTOMERNUMBER 数据集字段的列绑定:
- 选择列表。
- 在“属性编辑器”中,选择“绑定”。
- 在“绑定”页上,选择“添加”。
- 在表达式构建器中,选择“可用的数据集”,选择 Customers,然后双击 CUSTOMERNUMBER。表达式构建器将显示表达式 dataSetRow["CUSTOMERNUMBER"],如图 13-13 所示。
图 13-13 显示列绑定表达式的表达式构建器
- 选择“确定”。新的列绑定将出现在“属性编辑器”的“绑定”页中,并且突出显示了列名。
- 将名称“新的绑定”替换为以下名称:
- 选择 Orders 表。
- 在“属性编辑器”中,选择“绑定”。
- 在“绑定”页上,选择“数据集参数绑定”。“数据集参数绑定”将显示 CustID 参数,如图 13-14 所示。该参数的值设置为缺省值 103,这是在创建数据集参数时指定的。
图 13-14 Orders 表的“数据集参数绑定”
- 在客户报告中将参数值更改为 CUSTOMERNUMBER 字段:
- 单击“值”字段,然后选择右边出现的按钮。
将出现表达式构建器。
- 在表达式构建器中,选择“可用的列绑定”,选择“列表”,然后双击 CUSTOMER_NUMBER。表达式构建器将显示表达式 row["CUSTOMER_NUMBER"],如图 13-15 所示。
图 13-15 表达式构建器中的 CUSTOMERNUMBER 字段
- 选择“确定”以保存表达式。“数据集参数绑定”将对 CustID 参数显示 row["CUSTOMER_NUMBER"] 的新值。
- 选择“确定”以保存已更改的数据集参数绑定。
图 13-16 预览显示正确订单数据的报告
任务 9:创建支付子报告
支付子报告以行和列的格式显示每个客户的支付操作。它显示支付日期、支票号码和每个订单的金额。要迭代完支付数据集行并以行和列的格式显示它们,可使用表元素。
- 选择“布局”以返回至布局编辑器。
- 将选用板中的表元素拖放到详细信息区域中的订单子报告下面。“插入表”提示您指定要对此表创建的列数和详细信息行数。
- 指示您想要创建 3 列和 1 个详细信息行,然后选择“确定”。具有 3 列和 1 个详细信息行的表将出现在布局编辑器中。
- 将表与 Payments 数据集绑定在一起:
- 在“属性编辑器”中,选择“绑定”。
- 对于“数据集”,从下拉列表中选择 Payments。
- 选择“数据资源管理器”,展开“数据集”,然后展开 Payments。在查询中指定的列将出现在 Payments 下面。
- 将下列字段从“数据资源管理器”中分别拖放到表的详细信息行中的第一个单元格、第二个单元格和第三个单元格中。选择“确定”以接受所有字段的缺省列绑定。
- PAYMENTDATE
- CHECKNUMBER
- AMOUNT
图 13-17 包含支付子报告的报告设计
该表将显示添加的数据集字段。它还显示布局编辑器自动添加至表头行的标签。该标签将字段名显示为静态文本并充当列标题。
- 按支付日期排序支付行。
- 选择 Payments 表。
- 在“属性编辑器”中,选择“排序”。
- 在“排序”页上,选择“添加”以创建排序表达式。在“排序依据”下面将出现一行。
- 在“排序关键字”下面单击,选择出现的方向按钮,然后从下拉列表中选择 PAYMENTDATE。
- 对“排序方向”使用缺省值“升序”。
图 13-18 显示重复的支付记录的报告预览
正如第一次创建订单子报告时的订单子报告一样,由于在为 Payments 数据集创建参数 CustID 时对 customerNumber 指定了缺省值 103,所以会对每个客户重复相同的支付记录。由于此缺省值,支付子报告始终显示客户 103 的支付记录。
正如对订单子报告执行的操作一样,需要在主报告中对每个客户动态更新 CustID 参数的值。
任务 10:将支付子报告链接至客户主报告
通过在客户报告中将 CustID 参数绑定至 CUSTOMERNUMBER 字段,可将支付子报告链接至客户主报告。
- 选择“布局”以返回至布局编辑器。
- 选择 Payments 表。
- 在“属性编辑器”中,选择“绑定”选项卡。
- 在“绑定”页上,选择“数据集参数绑定”。“数据集参数绑定”将显示 CustID 参数。该参数的值设置为缺省值 103,这是在创建数据集参数时指定的。
- 在客户报告中将参数值更改为 CUSTOMERNUMBER 字段:
- 单击“值”字段,然后选择右边出现的按钮。
- 在表达式构建器中,选择“可用的列绑定”,选择“列表”,然后双击 CUSTOMER_NUMBER。表达式构建器将显示表达式 row["CUSTOMER_NUMBER"]。
- 选择“确定”以保存表达式。“数据集参数绑定”将对 CustID 参数显示 row["CUSTOMER_NUMBER"] 的新值。
- 选择“确定”以保存已更改的数据集参数绑定。
- 预览该报告。现在,报告对不同的客户显示不同的支付记录。并非所有客户都有支付记录。要仅显示具有支付或订单的客户,可更改客户报告的查询。
任务 11:仅显示具有订单或支付的客户
数据库包含没有订单或支付的客户。客户报告的查询将返回所有客户。运行报告时,有一些客户行仅显示 Orders 表和 Payments 表的列标题,如图 13-19 所示。
图 13-19 显示一个客户没有订单或支付数据的报告
可以通过更改客户报告的查询来排除没有订单或支付数据的客户。
- 选择“布局”以返回至布局编辑器。
- 在“数据资源管理器”中,展开“数据集”,右键单击 Customers,然后选择“编辑”。
- 在现有查询的末尾添加下列 SQL 行:
WHERE EXISTS 子句检查 Orders 表和 Payments 表以找出与 Customers 表中的 customerNumber 值匹配的 customerNumber 值。仅选择具有匹配的 customerNumber 值的行。完整的查询看起来应如
图 13-20 所示。
图 13-20 “编辑数据集”中的 WHERE EXISTS 子句
- 更改“预览结果”以验证查询是否返回行,然后选择“确定”。
- 预览该报告。向下滚动报告以检查输出。该报告不再显示没有订单或支付的客户。
任务 12:并排显示子报告
既然子报告显示正确的数据,您可侧重于将子报告并排放置。不能将两个表并排放置,因为 BIRT 报告设计器创建块级别元素,这表示每个元素都从新行开始。要并排显示表,将表插入到网格中。网格使您可以很容易地对齐元素。
- 选择“布局”以返回至布局编辑器。
- 将选用板中的网格元素拖放到 Orders 表上方的详细信息行中。“插入网格”提示您指定网格的列数和行数。
- 在“列数”中输入 2,并在“行数”中输入 1,然后选择“确定”。
具有 2 列和 1 行的网格将出现在布局编辑器中。
- 将 Orders 表移至第一个网格单元格。为此,选择左下角的“表”选项卡,然后将表拖放到网格单元格中。
- 将 Payments 表移至第二个网格单元格。报告布局看起来应如图 13-21 所示。
图 13-21 报告设计中的并排子报告
图 13-22 显示并排子报告的报告预览
任务 13:格式化报告
既然报告显示正确的数据和布局,您可注重于改进报告的外观。在本节您将执行下列任务:
突出显示客户名
- 选择“布局”以返回至布局编辑器。
- 在布局编辑器中,选择 [CUSTOMERNAME] 数据元素。
- 选择“属性编辑器”的“属性”选项卡。
- 从“属性”下面的列表中选择“常规”。“属性编辑器”将显示该数据元素的常规格式化属性。
- 对于“大小”,选择“大”以采用更大的大小显示元素的文本。文本的大小将增加。
- 选择 B 以将数据格式化为粗体文本。数据将以粗体显示。
编辑列标题
在表中插入数据集字段时,BIRT 报告设计器将自动在表头行中添加具有数据集字段名的标签。通常,数据集字段名的格式对报告来说不合适,需要更改它们。
- 双击 Orders 表中的第一个列标题。将突出显示文本。
- 将 ORDERNUMBER 替换为以下文本,然后按 Enter 键:
- 重复前面的步骤以将其余列标题更改为以下文本:
图 13-23 报告设计中已编辑的列标题
图 13-24 报告预览中已编辑的列标题
更改日期格式
插入日期数据类型的数据元素时,BIRT 报告设计器将根据系统的语言环境设置显示日期。BIRT 报告设计器提供了许多不同的日期格式,如果您不想使用缺省格式,则可以选择这些日期格式。在此过程中,创建一种将 ORDERDATE 和 PAYMENTDATE 值的格式从 Jun 3, 2005 12:00 AM 更改为 6/3/05 的样式。
- 选择“布局”以返回至布局编辑器。
- 选择显示 [ORDERDATE] 的数据元素。
- 从主菜单中选择“元素”->“新建样式”。“新建样式”将显示可以对样式设置的属性,如图 13-25 所示。
图 13-25 新建样式
- 对于“定制样式”,请输入:
- 从左边的样式属性列表中选择“格式化日期时间”。
- 从下拉列表中选择 m/d/yy 格式。该下拉列表中的值将自动使用当前日期进行更新。
- 选择“确定”。
对 [ORDERDATE] 数据元素应用 Date_data 样式,如
图 13-26 所示。
图 13-26 对数据元素应用了 Date_data 样式
- 对支付日期数据元素应用 Date_data 样式。
- 选择显示 [PAYMENTDATE] 的数据元素,如图 13-27 所示。
图 13-27 选择了 [PAYMENTDATE] 元素
- 右键单击所选元素,然后选择“样式”->“应用样式”->Date_data。
- 预览该报告。日期已从 Jun 3, 2005 12:00 AM 格式更改为 6/3/05。
更改数字格式
插入整数数据类型的数据元素时,BIRT 报告设计器将根据系统的语言环境设置显示数字。BIRT 报告设计器提供了许多不同的数字格式,如果您不想使用缺省格式,则可以选择这些数字格式。在此过程中,创建一种将金额值格式从 48425.69 更改为 $48,425.69 的样式。
- 选择“布局”以返回至布局编辑器。
- 在 Payments 表中选择显示 [AMOUNT] 的数据元素。
- 从主菜单中选择“元素”->“新建样式”。“新建样式”将在常规类别中显示属性。
- 对于“定制样式”,请输入:
- 从左边的样式属性列表中选择“格式化数字”。
- 选择“确定”。按照“属性编辑器”中元素的“样式”属性所指示的,对 [AMOUNT] 数据元素应用 Currency_data 样式。
图 13-29 报告预览中的货币格式
增大元素之间的垂直间距
在此过程中,将增大每个客户名与行之间的前后间距。可采用几种方法来调整元素之间的垂直间距:
对网格进行格式化更容易并且提供更多可预计的结果。边距和页边距属性值在不同的 Web 浏览器中可产生不同的结果。在此过程中,将使用第三种方法。
- 选择“布局”以返回至布局编辑器。
- 通过完成下列步骤将 [CUSTOMERNAME] 数据元素放置在包含两个表的网格中:
- 选择网格。将鼠标指针悬浮在左下角,直到显示“网格”选项卡为止,然后选择该选项卡。指导单元格将出现在所选网格的左上角。
布局编辑器显示各个数据元素、网格、表和单元格的边框,有时不容易看到元素的放置位置。如果需要更清楚地查看容器以及容器内的元素,可使用“大纲”视图来获取报告设计的树形视图。也可以使用“大纲”视图来选择太难选择的特定元素。例如,选择网格而非网格中的表就比较困难。要打开“大纲”视图,选择“窗口”->“显示视图”->“大纲”。
- 右键单击网格的第一行左边的指导单元格,然后选择“插入”->“行”->“上方”,如图 13-30 所示。
图 13-30 插入新的行
所选行的上方将出现一个新行。
- 将 [CUSTOMERNAME] 数据元素从其当前位置移至新网格行的第一个单元格,如图 13-31 所示。
图 13-31 移至新行的数据元素
- 使用前面描述的过程在包含 [CUSTOMERNAME] 数据元素的行上下各添加一个新网格行。
图 13-32 选择第一行
- 在“属性编辑器”的“常规”属性中,将行的高度设置为 0.2 in,如图 13-33 所示。
图 13-33 设置行高度属性
- 选择网格中的第三行并将其高度设置为 0.1 in。报告设计看起来应如图 13-34 所示。
图 13-34 报告设计中的新行高度
- 预览该报告。客户名上下有较多的间距。报告看起来应如图 13-35 所示。
图 13-35 显示间距已增大的报告预览
增大订单表与支付表之间的水平间距
在此过程中,将增大 Orders 表与 Payments 表之间的间距。与垂直间距一样,可采用几种方法来调整元素之间的水平间距:
对网格进行格式化更容易并且提供更多可预计的结果。边距和页边距属性值在不同的 Web 浏览器中可产生不同的结果。在此过程中,将使用第三种方法。
- 选择“布局”以返回至布局编辑器。
- 选择网格。将鼠标指针悬浮在左下角,直到显示“网格”选项卡为止,然后选择该选项卡。指导单元格将出现在所选网格的左上角。
- 右键单击第一列上方的指导单元格,然后选择“插入”->“右侧列”,如图 13-36
所示。
图 13-36 插入一列
第一列与第三列之间将出现一个新列。缺省情况下,BIRT 报告设计器创建宽度相同的列。
- 选择刚刚添加的列,并使用“属性编辑器”将该列的宽度设置为 0.4 in,如图 13-37 所示。
图 13-37 设置列宽
第二个列的宽度减小。
- 预览该报告。
Orders 表与 Payments 表之间有更多间距,如
图 13-38 所示。
图 13-38 报告预览,显示表之间增加的间距
在表周围添加边框
在此过程中,在 Orders 表和 Payments 表周围添加一个框,以清楚地将它们标识为两个单独的子报告。
- 选择“布局”以返回至布局编辑器。
- 选择 Orders 表。将鼠标指针悬浮在左下角,直到显示“表”选项卡为止,然后选择选项卡。指导单元格出现在所选表的左上角。
- 在“属性编辑器”中选择“边框”,然后设置边框属性:
- 将“样式”设置为实线。
图 13-39 对表添加边框
- 重复前面的步骤以在 Payments 表的周围绘制一个边框。
图 13-40 报告预览中表周围的边框
增大表边框与内容之间的间距
表的上边框和左边框太靠近表内容。在此过程中,将增大上边框和左边框与内容之间的间距。
- 选择“布局”以返回至布局编辑器。
- 选择 Orders 表的组头行中的第一个单元格。选择该单元格时要小心(如图 13-41 所示),不要选择该单元格中的数据元素。
图 13-41 选择单元格
“属性编辑器”中出现的标题显示所选元素的名称。验证它是否显示以下文本:
- 选择“属性编辑器”中的“边距”属性,然后将“左上边距”设置为 6 磅。
图 13-42 “属性编辑器”中的“单元格边距”属性
在布局编辑器中,单元格的顶部和左边都出现额外间距,如
图 13-43 所示。
图 13-43 报告设计中的单元格边距
- 选择刚刚格式化的单元格旁边的单元格,并将它的“左上边距”属性设置为 6 磅。
- 选择详细信息行中的两个单元格,并将“左边距”属性设置为 6 磅。
- 选择 Payments 表中位于相同位置处的单元格,并在 Orders 表中应用对单元格使用的相同属性。
图 13-44 显示表内的更多间距的报告预览
