2017-07-27 64 views
0

我试图显示组合在一起的记录的总数。 我使用下面的代码下Report Properties -> Code按组分组的SSRS显示总数

Dim public totalBalance as Integer 
Dim public Cnt as Integer 
Public Function AddTotal(ByVal balance AS Integer) AS Integer 
       totalBalance = totalBalance + balance 
Cnt=Cnt+1 
       return balance 

End Function 

Public Function GetTotal() 
       return totalBalance 
End Function 


[Expression A is =Code.AddTotal(sum(DateDiff(dateinterval.Second, Lookup(Fields!dg_InteractionId.Value, Fields!Id.Value, Fields!StartDate.Value, "DataSet1"), Lookup(Fields!dg_InteractionId.Value, Fields!Id.Value, Fields!EndDate.Value, "DataSet1")))/CountRows()) 

While Expression B is =Code.GetTotal() 

,你可以看到总1651的顶级组是正确的,但总的为第二组2597是不正确的,它包括总第一组在一起。所需的正确结果是第二组总数946。

请注意。

screenshot of table rows

screenshot of table numbers

+4

直接显示它们没有的功能。所有你需要做的是键入= SUM(field_you_want_to_sum.value) – bushell

+0

该字段不在我的表中,它是根据两个日期字段的时间差计算的总和。那么我需要再次在总和中的总和。 –

+0

在您的代码中,在返回totalBalance之前,请创建一个等于totalBalance的新变量。然后设置totalBlance = 0并返回新的变量。 – bushell

回答

0

你可以改变你GetTotal()重置totalBalance变量称为可显示该组总

Public Function GetTotal() 
Dim bal AS integer 
    bal = totalBalance 
    totalBalance = 0 
    return bal 
End Function 

因为这个改变的时候,你还应该创建将在AddTotal()函数中更新的总计的单独变量,并创建将返回其值的GetGrandTotal()函数。

此外,由于您已声明的变量为public,你可以你为什么要使用代码来计算总计,而不是使用总场的表现就像=Code.totalBalance