Tes*_*t11 1 reporting-services
对于 SSRS 中的每个组(国家、城市...),我计算销售额除以汇率:
Sum(Fields!Net_Sales_Amount.Value)/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency")
Run Code Online (Sandbox Code Playgroud)
我如何创建这个总和(最后一组的总和 - 国家)?
我找到的每个解决方案都展示了如何仅针对单独的 LOOKUP 功能执行此操作。我需要用它来划分字段。
这是我的报告的布局:
和结构:
要计算国家/地区的销售额,我只需要对销售额求和并将其除以 LOOKUP 函数,但我无法计算 Total。我需要一些以下值。
我认为您只需要更改要汇总的数据,因为看起来您只是在寻找汇率?
如果是这种情况,您应该可以使用
=Sum(Fields!Net_Sales_Amount.Value/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
Run Code Online (Sandbox Code Playgroud)
在您的总文本框中,它需要在您用来显示各个值的组之外。
但是,如果您想查找很多值,然后将sum它们一起查找,这会稍微复杂一些。
lookup您需要使用lookupset,而不是使用,它使用相同的语法,但可以返回多个值。但是,没有内置函数可以将sum这些返回值向上,因为函数中返回的值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
Run Code Online (Sandbox Code Playgroud)
然后可以在文本框中将其用作表达式:
=Code.SumLookup(LookupSet(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
Run Code Online (Sandbox Code Playgroud)
您可以将其与其他数值一起用于聚合或计算。
| 归档时间: |
|
| 查看次数: |
5829 次 |
| 最近记录: |