Reporting services SSRS中查找函数的总数
对于SSRS国家、城市中的每个群体。。。我计算销售额除以汇率:Reporting services SSRS中查找函数的总数,reporting-services,Reporting Services,对于SSRS国家、城市中的每个群体。。。我计算销售额除以汇率: Sum(Fields!Net_Sales_Amount.Value)/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency") 如何为最后一组国家创建此总和的总和 我找到的每个解决方案都只展示了如何为单独的查找函数执行此操作。我需要用它来划分场 以下是我的报告布局: 结构: 要计算国家的销售额,我只需要将销售额相加,然后除以查
Sum(Fields!Net_Sales_Amount.Value)/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency")
如何为最后一组国家创建此总和的总和
我找到的每个解决方案都只展示了如何为单独的查找函数执行此操作。我需要用它来划分场
以下是我的报告布局:
结构:
要计算国家的销售额,我只需要将销售额相加,然后除以查找函数,但我不能计算总数。我需要一些下面的值。我认为您只需要更改将哪些数据相加,因为看起来您只是在查找汇率 如果是这种情况,您应该能够使用
=Sum(Fields!Net_Sales_Amount.Value/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
在total文本框中,该文本框必须位于用于显示单个值的组之外
但是,如果您想查找许多值,然后将它们相加,这就有点复杂了
您需要使用lookupset,而不是使用lookupset,它使用相同的语法,但可以返回多个值。但是,没有内置函数可以将这些返回值相加,因为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
然后可以在文本框中将其用作表达式:
=Code.SumLookup(LookupSet(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
您可以将其与其他数值一起用于聚合或计算。我认为您只需要更改将哪些数据相加,因为看起来您只是在查找汇率 如果是这种情况,您应该能够使用
=Sum(Fields!Net_Sales_Amount.Value/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
在total文本框中,该文本框必须位于用于显示单个值的组之外
但是,如果您想查找许多值,然后将它们相加,这就有点复杂了
您需要使用lookupset,而不是使用lookupset,它使用相同的语法,但可以返回多个值。但是,没有内置函数可以将这些返回值相加,因为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
然后可以在文本框中将其用作表达式:
=Code.SumLookup(LookupSet(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
您可以将其与其他数值一起用于聚合或计算。是要将每个sumsales/lookupvalue相加,还是要将sumsales相加除以所有lookupvalue相加?我需要先将每个sales相加,然后再求和,不同国家/地区的不同值请添加您报告的实际屏幕截图,而不是在excel中重新创建…您是要将每个sumsales/lookupvalue相加,还是要将sumsales总计除以所有lookupvalue总计?我需要先将每个销售额除以,然后再求和,不同国家的不同价值请添加您报告的实际屏幕截图,而不是在excel中重新创建…是的,我只是查找每个销售的汇率。第一种方法返回NAN值,即使我使用自定义函数将NULL值转换为0。@Test11您的数据集中有NULL值吗?另外,为什么不在销售数据集中包含汇率,并在数据进入报表之前进行计算呢?我可以为组获取正确的值。我只有NaN的总数。这是预算规划中使用的不同汇率国家/货币的一种汇率。我从OLAP多维数据集中获取数据并进行查找,因为我没有找到更好的解决方案。@test11您需要在问题中添加一些报告设计的屏幕截图,以便获得更详细和具体的帮助。是的,我只是查找每项销售的汇率。第一种方法返回NAN值,即使我使用自定义函数将NULL值转换为0。@Test11您的数据集中有NULL值吗?另外,为什么不在销售数据集中包含汇率,并在数据进入报表之前进行计算呢?我可以为组获取正确的值。我只有NaN的总数。这是预算规划中使用的不同汇率国家/货币的一种汇率。我从OLAP多维数据集中获取数据并进行查找,因为我没有找到更好的解决方案。@test11您需要在问题中添加一些报告设计的屏幕截图,以便获得更详细和具体的帮助。