AX SSRS 总共使用来自另一个数据集的表达式

AX SSRS use expression from another dataset in total

我有一个显示总计等的 header 部分。我在另一个数据集(数据集估计值)中有两个字段,我想将其放入 header 数据集。

费用(圆圈)= IIf(Right(Fields!ProjCategoryId.Value, 3) <> "EXP", Fields!Value.Value, 0) 第 3 方(圆圈)= IIf(Right(Fields!ProjCategoryId.Value, 3) = "EXP", Fields!Value.Value, 0)

我知道您可以毫无问题地对另一个数据集的数据集求和,但是如何使用 IIF 等?

您可以使用自定义代码和 lookupset()

代码:

Function SumLookup(ByVal items As Object()) As Decimal
    If items Is Nothing Then
        Return Nothing
    End If

    Dim suma As Decimal = New Decimal()
    Dim ct as Integer = New Integer()

    suma = 0
    ct = 0

    For Each item As Object In items
        suma += Convert.ToDecimal(item)
        ct += 1
    Next

    If (ct = 0) Then return 0 else return suma 
End Function
  • 要添加它,请右键单击报表的蓝色背景并 select 报表属性
  • 点击代码选项。
  • 将其粘贴到此 window
  • 在你希望数字出现的地方用=Code.SumLookup(lookupset("EXP", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName"))调用它

这将累加 ProjCategoryId 以 "EXP" 开头的所有值。

对于 <> "EXP",您可能需要对其进行多次调用,以将它们全部添加到它可以开始的每一件事上。例如..

Code.SumLookup(lookupset("ONE", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName")) + Code.SumLookup(lookupset("TWO", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName"))

这个其实很简单。查找包含表达式的文本框名称。

(当我们说文本框时,这不一定是工具箱中的文本框,它可以是 tablix 中的字段)。在您想要引用该值的地方,只需添加表达式即可引用结果。