2017-07-27 108 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