向原始报表添加子报表
首先,您要向原始报表添加子报表。
添加子报表
打开在前一教程“教程:读取和设置离散参数”中创建的项目。
从“解决方案资源管理器”中,双击“CustomersByCity”报表打开它。
右击“详细资料”灰色栏并选择“在下方插入节”。
在创建的新“详细资料 b”节中右击,指向“插入”,然后单击“子报表”。
在鼠标光标周围会出现灰色的方块。
将灰色的矩形拖入新的“详细资料 b”节中,然后单击释放它。
在“插入子报表”对话框中,选择“子报表”选项卡中的“使用报表向导创建子报表”。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>“插入子报表”对话框包含其他选项,允许选择现有报表和按需显示子报表。有关这些功能的更多信息,请参见<a href="ms227973(v=vs.90).md">““子报表”选项卡(“插入子报表”对话框)”</a>。</p></td>
</tr>
</tbody>
</table>
在“新建报表名称”字段中,键入“CustomerOrders”。
单击“报表向导...”
在“标准报表创建向导”窗口的“可用数据源”面板中,展开“创建新连接”文件夹。
从打开的子文件夹中,展开“ODBC (RDO)”文件夹。
在“ODBC (RDO)”窗口中,按 “Xtreme 示例数据库的 ODBC DSN 条目”的说明,选择与 Crystal Reports 版本对应的正确 ODBC DSN 条目,然后单击“完成”。
ODBC (RDO) 文件夹将展开并显示 Xtreme 示例数据库。
选择“订单”表并单击“>”符号把“订单”表移动到“选择表”面板中,然后单击“下一步”。
从“可用字段”面板中,选择“订单 ID”、“订单日期”、“发货日期”和“承运商”。
单击“>”符号,将这些字段移至“要显示的字段”面板,然后单击“完成”。
在“插入子报表”对话框中,选择“链接”选项卡。
在“容器报表字段链接到”面板的“可用字段”列表中,展开“客户”表,选择“客户 ID”,然后单击“>”符号。
在出现的“客户.客户 ID 字段链接”面板中,保留默认选择不变。
这些参数和数据选择会在主报表和子报表之间自动产生关联。
- 单击“确定”。
新的子报表 CustomerOrders 会显示在主报表的“详细资料 b”节中。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>向“详细资料”节添加子报表时,对每一行都会显示该子报表,这会增加报表的性能成本。如果不需要此详细程度的子报表信息,请将子报表放在“组”节而不是“详细资料”节中。</p></td>
</tr>
</tbody>
</table>
验证子报表中的设置
在报表“详细资料”节中,双击“CustomerOrders”子报表查看它。
在设计器视图的底部,会同时出现主报表和 CustomerOrders 子报表的导航按钮。
如果“字段资源管理器”不可见,请在 Crystal Reports 工具栏上单击“切换字段视图”。
注意 显示“字段资源管理器”的另一种方法是转到“Crystal Reports”菜单,然后单击“字段资源管理器”。
在“字段资源管理器”中,展开“参数字段”。
验证当链接子报表时,是否会自动生成参数字段“Pm-客户.客户 ID”。
在 Crystal Reports 工具栏上,单击“选择专家”。
在“选择专家”对话框中,验证是否设置了条件“订单.客户 ID 等于 {Pm-客户.客户 ID}”,然后单击“确定”。
从“文件”菜单中选择“全部保存”。
您已成功地将 CustomerOrders 子报表添加到 CustomersByCity 报表。
向子报表添加 OrderDateRange 参数
在“字段资源管理器”中,右击“参数字段”,然后选择“新建”。
在“创建参数字段”对话框中:
1. 将“名称”设置为“OrderDateRange”。
2. 将“提示文本”设置为“指定要显示的订单的日期范围”。
3. 将“值类型”设置为“日期”。
4. 将“选项”设置为仅选定一个“区域值”。
单击“确定”。
在 Crystal Reports 工具栏上,单击“选择专家”。
单击“新建”选项卡。
在“选择字段”对话框中,展开“订单”表,选择“订单日期”,然后单击“确定”。
在新的“Orders.OrderDate”选项卡上,从下拉条件列表中选择“公式”并键入以下公式:{订单.订单日期} in {?OrderDateRange}}
单击“确定”。
从“文件”菜单中选择“全部保存”。
已成功地将 OrderDateRange 参数添加到子报表,并将其链接到 Orders.OrderDate 列。在下一节中,将添加用于处理子报表中的 OrderDateRange 参数的代码。