SSRS 2008 中的主子报表





5.00/5 (2投票s)
如何在 SSRS 2008 中创建主子报表或汇总子报表
问题
如何在 SSRS 2008 中创建主从或汇总明细报表?
解决方案
- 在报表解决方案中添加一个新报表,并将其命名为 “
MasterDetails
” 报表。 - 创建一个数据源。
- 创建 2 个数据集,分别命名为 “
dsMaster
” 和 “dsDetails
”。 - 要创建这两个数据集,请查找一些主从明细表,例如,
AccountType ? 主表 & Accounts ? 明细
表。 - 首先创建主表的查询,如下所示,
dsMaster
。SELECT ID, AccountType, Description FROM AccountType
- 然后创建
明细
的查询,dsDetails
。SELECT AccountID, DateCreated, Income, Expenditure FROM Accounts WHERE AccountType = @AccountType.
- 完成此操作后,
@AccountType
参数将添加到我们的参数列表中,如下图所示 - 右键单击 “
AccountTypeID
” 参数- 在此参数的“常规”选项卡上,转到“选择参数可见性”,然后从列表中选择“隐藏”。 (执行此步骤是为了在查看报表时,该参数不会在参数列表中显示。此参数的值在内部处理,这是下一步要完成的。)
- 现在转到“默认值”选项卡,然后选择“指定值”
- 单击“添加”按钮,将显示一个下拉列表。
- 现在单击 “
fx
” 按钮,并为该参数的默认值编写以下表达式。=-1
- 现在单击“确定”,这将设置我们的参数。(此步骤会将默认值分配给我们的参数。如果您未执行此步骤,则会引发错误,因为未为参数分配任何值。)
- 现在,在设计区域中,添加 2 个表,一个用于主表,另一个用于明细表。
- 选择第一个表的
dataset
为 “dsMaster
”,此表将显示我们的主
表。 - 选择第二个表的
dataset
为 “dsDetails
”,此表将显示我们的明细
表。 - 现在,在
主
表上,单击要进行钻取操作的列明细。 - 在我们的示例中,我选择了 “
Description
”。 - 右键单击“Description”文本框,转到“文本框属性”。
- 在“文本框属性”上,转到“操作”选项卡。
- 在“操作”选项卡上,选择“转到报表”超链接,然后转到“指定报表”部分,在此处选择我们正在处理的当前报表(在我们的示例中,它是 “
MasterDetails
”)。 - 现在,映射加载此报表所需的所有参数,使用“添加”按钮添加它。
- 在我们的例子中,我们只有一个参数 “
AccountTypeID
”,从下拉列表中选择它。 - 对于此参数的值,从下拉列表中选择 ID,这来自第 1个
dataset
,即 “dsMaster
”。 请参考下图进行设置 - 现在单击“确定”。
- 现在转到“字体”选项卡,然后在“效果”区域中选择“下划线”,这将有助于用户识别此单元格上存在链接。
- 完成此操作后,下一步是处理 “
Details
” 表的可见性。 - 这可以通过以下方式完成,首先将 “
Details
” 表映射到 “dsDetail
” 数据集。 - 现在右键单击并选择“Tablix 属性”。
- 转到“Tablix 属性”的“可见性”选项卡。
- 在此处转到“最初运行报表时”部分,然后选择“根据表达式显示或隐藏”。
- 选择此项后,将显示一个文本框。 现在单击 “
fx
” 按钮并编写以下表达式=IIF(Parameters!AccountTypeID.Value <> -1, False, True)
- 此表达式可帮助我们控制第 2个 表,即 “
Details
” 表的可见性。 - 请注意:在处理第 2个 表的可见性时,请确保您选择用于控制可见性的参数的值在我们的数据库中不存在。
- 现在单击“确定”按钮。
- 现在预览报表,它将首先仅显示 “
Master
” 表。 但是,当您单击 “Description
” 单元格时,“Details
” 表将变为可见。 - 通过这种方式,我们可以在 SSRS 2008 中实现“主从明细”报表。