SSRS在一个报告中包含两个数据集

时间:2019-08-28 09:30:37

标签: sql-server reporting-services dataset ssrs-2012

我有一个包含两个数据集的SSRS报告。我的报告有一张表,其中包含数据集1的所有字段。如果数据集1的id字段=数据集2的id字段,是否可以显示数据集2的字段?

我尝试在表中的字段上使用表达式指向数据集2中的字段,但我认为我需要的2个数据集之间没有链接。您能够在报表的表达式中执行select子句吗?

任何指导将不胜感激

我尝试使用以下表达式作为表达式,但是它不起作用:

=iif Sum(Fields!ID.Value, "DataSet2")=Sum(Fields!ID.Value, "DataSet3") then First(Fields!total.Value, "DataSet3")

1 个答案:

答案 0 :(得分:2)

您的问题是SSRS的经典案例。

您有2种方法可以实现这一目标

  1. SubReports(我个人比较喜欢)
  2. 查找功能(有时会遇到困难)

方法1:使用子报表在另一个报表中显示一个报表

  • 。创建另一个报告作为子报告,并插入子行数据。
  • 在子报表中创建一个名为ID的参数。
  • 在主报表中,右键单击以在子行中插入一个子报表。
  • 右键单击子项以打开“子报表属性”,然后在下拉列表中选择子报表名称。
  • 在“子报表属性”对话框的左侧面板中,单击“参数”。
  • 在ID的下拉列表中选择Name,然后在Value的下拉列表中选择[ID]。

方法2:在SSRS中使用lookupset函数

在“表达式”对话框中,将表达式修改为如下所示:

=join(Lookupset(Fields!ID.Value,Fields!ID.Value,Fields!Subject.Value,"DataSet2"),",")

以下屏幕截图仅供参考(tablix将使用DataSet1):

enter image description here

推荐:

  1. https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f30ff0d2-ba37-4bb8-b0a0-a6e06b3273fd/two-datasets-inside-a-same-tablix?forum=sqlreportingservices
  2. https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2e6dfb5a-2de2-4d2f-96e5-4cb94543c6ec/asigning-two-data-sets-to-one-table-in-ssrs