引用SSRS中不同数据集的字段

时间:2016-06-16 11:09:54

标签: reporting-services

我需要一些帮助在名为“ReportData”的数据集中创建一个表达式,该数据集引用来自名为“Contracts”的不同数据集中的字段。

我已经尝试过表达式构建器,并创建了以下表达式:

=IIf((First(Fields!Product.Value, "Contracts")="Loan"),
 cdbl(Sum(Fields!Provision.Value, "Contracts")),
 cdbl(0))

这返回0,这是正确的,因为First(Fields!Product.Value,“Contracts”)=“Loan”确实是假的,但我想评估“整个”产品字段,而不仅仅是第一个值

3 个答案:

答案 0 :(得分:1)

这些表达式假设当前数据集范围为DatasetA

这是来自DatasetB的基本总和,用于显示DatasetA中的值是否为"某些文字"。不确定这是否能满足您的需求。

=IIf(Fields!Field1.Value = "some text", Sum(Fields!Field2.Value, "DatasetB"), 0)

这会查看DatasetB中的第一个值,并根据该值进行求和。这似乎与你提出的伪代码最接近。

=IIf(First(Fields!Field1.Value, "DatasetB") = "some text", Sum(Fields!Field2.Value, "DatasetB"), 0)

这是查找版本,它根据Field2(当前范围)中与值({{匹配的值DatasetB返回Field1中的DatasetA值1}})Field1。我添加了这个,以防您在进行故障排除时出于某种原因需要它。

DatasetB

可能比你需要的多一点,但希望其中一个适合你。

编辑:

=Lookup(Fields!Field1.Value, Fields!Field1.Value, Fields!Field2.Value, "DatasetB")

答案 1 :(得分:0)

如果有疑问,请使用表达式构建器!

在您要修改的元素的属性中:

  1. 点击
  2. 您将在类别列表中看到数据集。
  3. 从那里,您可以从任何数据集中选择任何字段。
  4. 在此窗口中构建表达式!

答案 2 :(得分:0)

试试这个:

=IIF(
SUM(IIF(Fields!Product.Value="Loan",1,0),"Contracts")>0,
CDbl(Sum(Fields!Provision.Value, "Contracts")),
Cdbl(0)
)

<强>更新

=SUM(IIF(Fields!Product.Value="Loan",Fields!Provision.Value,0),"Contracts")

如果有帮助,请告诉我。