После некоторых исследований я могу ответить на этот вопрос. Идея алгоритма состоит в том, чтобы установить номер страницы один раз, сохранить его в массив, а затем, когда мы вернем страницы назад, а не считать его с начала, но возьмем номер страницы из глобального массива страниц. Эта идея прекрасно работает и здесь некоторый код, как установить это решение до
Shared offset as Integer
Shared currentgroup as Object
Shared currentPage as Integer
Shared Dim pagesArray() As Integer
Public Function GetGroupPageNumber(group as Object, pagenumber as Integer, totalpages as Integer) as Object
If Not (group = currentgroup)
offset = pagenumber - 1
currentgroup = group
End If
If (pagesArray Is Nothing) Then
ReDim Preserve pagesArray(totalpages)
End If
If (CountNumberOfElementsInArray(pagesArray) < totalpages)
pagesArray(pagenumber - 1) = pagenumber - offset
End If
Return pagesArray(pagenumber - 1)
End Function
Public Function CountNumberOfElementsInArray(array() As Integer) as Integer
Dim counter as Integer
Dim i As Integer
counter = 0
For i = 0 To array.Length - 1
If (array(i) <> 0)
counter = counter + 1
End If
Next i
Return counter
End Function
Подробной информации вы можете найти в моем блоге
Reset page number in ms reporting services