Reporting services 行组中的SSRS Lookup()应针对不同的ID执行
My.RDL文件包含:- 1.Dataset1->Tablix 1(ID、名称) 2.Dataset2->Tablix 2(ID,时间) Tablix1是为Id列分组的行,我想显示Tablix1的总计行。此总计行将包含Sum(时间->表格2)。我使用查找来完成此操作。在这个场景中,对Tablix1中的每一行都执行查找,而我的要求是查找应该只对Tablix1中不同的ID有效Reporting services 行组中的SSRS Lookup()应针对不同的ID执行,reporting-services,ssrs-2008-r2,Reporting Services,Ssrs 2008 R2,My.RDL文件包含:- 1.Dataset1->Tablix 1(ID、名称) 2.Dataset2->Tablix 2(ID,时间) Tablix1是为Id列分组的行,我想显示Tablix1的总计行。此总计行将包含Sum(时间->表格2)。我使用查找来完成此操作。在这个场景中,对Tablix1中的每一行都执行查找,而我的要求是查找应该只对Tablix1中不同的ID有效 我怎样才能提供唯一的值来查找呢?在这之前,我已经使用自定义代码和函数处理了这个问题 我重新创建了您的场景,并创建了两个表,与
我怎样才能提供唯一的值来查找呢?在这之前,我已经使用自定义代码和函数处理了这个问题 我重新创建了您的场景,并创建了两个表,与您在问题中的描述类似 将创建一个附加表来联接两个表并计算时间总和,如下所示: 在突出显示的单元格中,使用以下代码:
=Code.SumLookup(
LookupSet(Fields!ID.Value,Fields!ID.Value,Fields!Time.Value,"DataSetName")
)
用数据集的实际名称替换DataSetName
(我想您
将其命名为数据集2)
最后进入报告
菜单/报告属性…
并选择代码
选项卡。在文本区域中输入以下代码:
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
我将制作以下表格:
编辑:如果需要时间总和
在需要的单元格中使用此表达式:
=Sum(Fields!Time.Value,"DataSet2")
如果有帮助,请告诉我。时间是int、datetime还是string字段?。共享tablix和预期结果的示例数据。时间是一个整数字段(秒数)