新建日期: 2006 年 7 月 17 日
子报表提供了在主报表中嵌入报表的途径。 钻取报表是在同一窗口中打开单独的报表,而子报表是以嵌入主报表中的报表项的形式出现。 虽然任何报表都可以是子报表,但通常需要对用作子报表的报表设置格式,以便改善其在主报表中的显示方式。
在本课中,您将添加 ContactInformation 报表作为 Resellers Worldwide 报表的子报表。 您将学习如何向表添加子报表并在主报表中设置其属性,包括将主报表参数绑定到子报表参数。
打开“高级参数教程”报表服务器项目
在 SQL Server Business Intelligence Development Studio 中,打开“高级参数教程”报表服务器项目(如果尚未打开)。
在解决方案资源管理器中,双击 Resellers Worldwide 报表。 系统将在“布局”视图中打开此报表。
在下一步中,您将向该主报表添加多值参数 ContactDisplayFields。 在子报表上设置参数属性时,您将把主报表多值参数 ContactDisplayFields 绑定到子报表多值参数 FieldsToDisplay。
添加多值参数 ContactDisplayFields
在“布局”视图中,单击设计图面。 此时将显示**“报表”和“格式”**菜单项。
从**“报表”菜单中选择“报表参数”。 此时将打开“报表参数”**对话框。
单击**“添加”**。 此时将创建包含默认值的新参数。
在**“属性”部分的“名称”**文本框中,键入 ContactDisplayFields。 请确保数据类型为 String。
在**“提示”**文本框中,输入要在子报表中显示的信息。
选中**“允许空白值”**选项。
选中**“多值”**选项。
在**“可用值”部分中,请确保选中了“无查询”**并使用下表设置可用值:
标签 值 Phone
Phone
电子邮件
EmailAddress
无
<空白>
在**“默认值”部分中,选择“无查询”并将以下表达式粘贴到“值”**文本框中:EmailAddress。
单击**“确定”**。
单击**“预览”**。
由于您提供了可用值列表,因此**“全选”**值将自动添加到 ContactDisplayFields 参数的下拉列表中。
在下一步中,您将添加名为 Colors 的多值参数。 在本教程中,您将为多值参数 Colors 设置两个值。 设置子报表的参数属性时,您将把该多值参数的一个值绑定到子报表参数 BackgroundColor 和 FontColor。
添加多值参数 Colors
在“布局”视图中,从**“报表”菜单中选择“报表参数”**。 此时将打开“报表参数”对话框。
单击**“添加”**。 此时将创建包含默认值的新参数。
在**“属性”部分的“名称”**文本框中,键入 Colors。 请确保数据类型为 String。
将现有提示替换为文本“选择背景和字体颜色:”。
选中**“多值”**选项。
清除**“允许空白值”**选项。
在**“可用值”部分中,请确保选中了“无查询”**。 请保留值表为空白。
在**“默认值”部分中,选择“无查询”并将以下两个值粘贴到“值”**文本框中:
#C9DEF6和SlateBlue。必须为该参数设置两个值。 数组中的第一个值将传递给子报表作为背景颜色。 第二个值将传递给子报表作为字体颜色。
在此示例中,背景颜色值为十六进制 RGB 颜色代码
#C9DEF6,字体颜色为 Web Color SlateBlue。单击**“确定”**。
单击**“预览”**。
由于没有为 Colors 参数设置任何可用值集,因此其下拉列表中未显示任何**“全选”**值。
在下一步中,您将在表中准备一个地方以添加子报表项。 您将向表组头添加第二行。 您将合并列,从而使该行中只有两个文本框,其中一个有足够的宽度来显示子报表。 然后,您将为该标题行设置可见性,以便获得参数值 ShowSalesDetails 的预期行为:当该参数为 true 时,使联系信息的详细信息行可见。
向表组头添加新行并合并其文本框
单击表。 此时将出现表控点。
右键单击组头行。 文本框的内容以
=Fields!Store.Value开头。 选择**“在下方插入行”**。 此时将显示第二个标题行。在仍选中该行的情况下,从报表工具栏“字号”下拉列表中选择 8。
若要使子报表周围的空白区域减到最小,请最小化将包含子报表的行。 子报表项将根据需要自行扩大,但不会缩小。
选择第 2、3、4 列中的文本框。右键单击并选择**“合并单元”**。 现在,新标题行中有两个文本框。
在选中了新表行的情况下,在“属性”窗口中,滚动到 Visibility,然后展开该节点。 将 Hidden 设置为
=Not Parameters!ShowSalesDetails.Value。
向主报表添加子报表
在解决方案资源管理器中,单击报表 ContactInformation.rdl,然后将其拖到标题行中的第二个文本框,放在“联系信息”文本框旁边。
右键单击子报表的灰色区域,然后选择**“属性”。 将打开“子报表属性”**对话框。
单击**“参数”选项卡,然后单击第一个“参数名称”**文本框。 将显示下拉列表,其中包含为 ContactInformation 定义的四个参数。 使用下表设置子报表参数。
参数名称 参数值 ContactID
=Fields!StoreContactID.ValueFieldsToDisplay
=Parameters!ContactDisplayFields.ValueBackgroundColor
=Parameters!Colors.Value(0)FontColors
=Parameters!Colors.Value(1)单击**“确定”**。
单击新组头行的行控点。 在“属性”窗口中,滚动到 Height,然后将值设置为 0.01 或为消除多余的空白区域所能对行高设置的最小值。
主报表中的子报表项的 Height 属性将设置最小高度。 子报表项将扩大以容纳其所绑定到的报表。
单击子报表的灰色区域。 在“属性”窗口中,滚动到 Width,然后将值设置为 3 或符合子报表定义宽度的任意宽度。
若要消除不需要的空白区域,子报表元素的宽度应小于或等于子报表定义中定义的宽度。 子报表将根据需要在主报表中增大,但不会缩小。
预览报表。 为 FieldsToDisplay 选择不同的值,并确保子报表显示您所选的值。
由于现在已经定义了八个参数,因此报表工具栏显得有点挤。 若要在预览模式下隐藏工具栏,请单击报表工具栏上的**“显示或隐藏参数区域”**按钮。
在下一步中,您将把 Colors 参数设置为 Internal。 内部参数可用作报表的内部变量;不能通过报表工具栏或其他任何途径设置它们的值。
将报表参数设置为内部参数
从**“报表”菜单中选择“报表参数”。 此时将打开“报表参数”**对话框。
从**“参数”**列表中选择 Colors。
在**“属性”部分中,选中“内部”**选项。
将参数值设为 Internal 意味着该参数仅显示在报表定义中。 将报表发布到服务器时,您将无法从报表服务器管理该参数。 报表工具栏将不显示该参数的提示,如果将该报表作为子报表,该参数将不显示在主报表中的子报表参数列表中。
单击**“确定”**。
(可选)单击**“预览”**。 工具栏上未显示 Colors 参数的任何提示。
在第 8 课中,当报表发布到报表服务器之后,您将隐藏 Resellers Worldwide 报表的许多参数以使外观显得更加简洁。
后续步骤
在本课中,您成功地向表组头添加了另一行,合并了单元,并向单元添加了包含参数的子报表。 您根据报表参数 ShowSalesDetails 值设置了该行的可见性。 在下一课中,您将向现有 AdventureWorks 示例报表“Territory Sales Drilldown”添加参数。 请参阅第 7 课:创建钻取报表。
请参阅
其他资源
在 Reporting Services 中使用参数
使用报表项