SSRS 一份报告中的两个数据集

SSRS two datasets in one report

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

我已经尝试在 table 中的字段上使用表达式来指向数据集 2 中的字段,但是我认为我需要的 2 个数据集之间没有 link。你能在报告的表达式中做一个 select 子句吗?

任何指导将不胜感激

我试过下面的表达式,但它不起作用:

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

你的问题是非常经典的SSRS案例

您有 2 种方法可以做到这一点

  1. SubReports(我个人喜欢)
  2. 查找函数(我有时觉得很难处理)

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

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

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

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

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

以下截图供大家参考(tablix是使用DataSet1):

参考文献:

  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