我需要为 MS Reporting 服务中的每个组重置页码。我知道 MS Reporting Services 2008 R2 中存在这种可能性,但我无法升级它。
另外,我知道这个MSDN 帖子。然而,这里存在一个问题。当我向前切换页面时,一切似乎都很好,但是当后页编号工作错误时。我有这样的页码:
1, 0, -1
我需要为 MS Reporting 服务中的每个组重置页码。我知道 MS Reporting Services 2008 R2 中存在这种可能性,但我无法升级它。
另外,我知道这个MSDN 帖子。然而,这里存在一个问题。当我向前切换页面时,一切似乎都很好,但是当后页编号工作错误时。我有这样的页码:
1, 0, -1
经过一番研究,我可以回答这个问题。算法的思想是设置一次页码,保存到数组中,然后当我们翻页时,不是从头开始计数,而是从全局页数组中获取页码。这个想法很有效,这里有一些代码如何设置这个解决方案
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
您可以在我的博客中找到详细信息
在 ms 报告服务中重置页码