我的.RDL文件包含: - 1.Dataset1 - > Tablix 1(ID,名称) 2.Dataset2 - >表格2(ID,时间)
Tablix1是Id Grouped for Id列,我想显示Tablix1的Totals行。该总行将包含Sum(Time-> Tablix2)。我使用查找来做这件事。在这种情况下,对Tablix1中的每一行执行Lookup,而我的要求是Lookup只适用于Tablix1的不同ID
如何为Lookup提供唯一值?
答案 0 :(得分:0)
我在使用自定义代码和LookupSet功能之前已经处理过这个问题。
我重新创建了你的场景并创建了两个类似于你在问题中描述的描述。
创建一个附加表来连接两个表并计算时间总和,如下所示:
在突出显示的单元格<<Expr>>
中使用以下代码:
=Code.SumLookup(
LookupSet(Fields!ID.Value,Fields!ID.Value,Fields!Time.Value,"DataSetName")
)
将
DataSetName
替换为您的数据集的实际名称(我想你 将其命名为DataSet2)
最后转到Report
菜单/ Report Properties...
并选择Code
标签。在文本区域中输入以下代码:
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
我将生成以下Tablix:
编辑:如果您需要时间总和。
在您需要的单元格中使用此表达式:
=Sum(Fields!Time.Value,"DataSet2")
如果有帮助,请告诉我。