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

时间:2017-03-27 17:24:40

标签: reporting-services axapta ssrs-2012 dynamics-365-operations

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

费用(带圆圈)= IIf(右(Fields!ProjCategoryId.Value,3)<>“EXP”,Fields!Value.Value,0) enter image description here 第三方(带圆圈)= IIf(右(Fields!ProjCategoryId.Value,3)=“EXP”,Fields!Value.Value,0)

我知道您可以在没有问题的情况下对来自其他数据集的数据集求和,但是如何使用IIF等?

2 个答案:

答案 0 :(得分:1)

您可以使用自定义代码和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
  • 要添加此项,请右键单击报告的蓝色背景,然后选择报告属性
  • 点击代码选项。 Report Properties 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"))

答案 1 :(得分:1)

这其实很简单。找到包含表达式的文本框名称。 enter image description here

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

enter image description here