Master-Details 报表实现指南

SSRS2008中实现主从表(Master-Details)报表是一种常见的需求,它允许用户从主表中选择一个条目,然后显示与之相关的详细信息。以下是实现这种报表的详细步骤。

创建数据源和数据集

首先,需要创建一个数据源和两个数据集。以“AccountType”作为主表,“Accounts”作为从表为例,首先创建主表的数据查询。

SELECT ID, AccountType, Description FROM AccountType

接下来,创建从表的数据查询,并设置一个参数@AccountType,该参数将用于过滤从表的数据。

SELECT AccountID, DateCreated, Income, Expenditure FROM Accounts WHERE AccountType = @AccountType

在参数列表中,将“AccountTypeID”参数设置为隐藏,并为其指定默认值-1。这样,在查看报表时,该参数不会出现在参数列表中,其值将由内部处理。

=-1

在设计区域中,添加两个表格,一个用于显示主表数据,另一个用于显示从表数据。

设置主表的钻取功能

在主表中,选择想要进行钻取的列,例如“Description”。然后,右键点击该文本框,进入“文本框属性”,在“动作”标签页中,选择“转到报表”超链接,并指定当前正在工作的报表(例如“MasterDetails”)。

接下来,映射所有需要加载此报表的参数。在例子中,只有一个参数“AccountTypeID”,从下拉列表中选择它。对于这个参数的值,从下拉列表中选择ID,这是来自第一个数据集“dsMaster”的值。

完成这些设置后,点击“确定”。然后,在“字体”标签页中,选择“下划线”效果,以帮助用户识别这是一个链接。

处理从表的可见性

接下来,需要处理从表的可见性。首先,将从表映射到“dsDetail”数据集。然后,右键点击并选择“Tablix属性”。

在“Tablix属性”的“可见性”标签页中,选择“根据表达式显示或隐藏”。然后,点击“fx”按钮,并编写以下表达式:

=IIF(Parameters!AccountTypeID.Value <> -1, False, True)

这个表达式帮助控制第二个表格,即从表的可见性。请注意,在选择用于控制可见性的参数时,确保该参数的值在数据库中不存在。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485