2013-04-30 2 views
0

Мне нужно сбросить номер страницы для каждой группы в службах MS Reporting. Я знаю о такой возможности в MS Reporting Services 2008 R2, но у меня нет возможности ее усовершенствовать.Сбросить номер страницы для группы

Кроме того, я знаю об этом MSDN post. Однако проблема здесь существует. Когда я переключаю страницы вперед, все выглядит нормально, но когда нумерация нужной страницы работает неправильно. У меня есть номера страниц, как это:

1, 0, -1

ответ

0

После некоторых исследований я могу ответить на этот вопрос. Идея алгоритма состоит в том, чтобы установить номер страницы один раз, сохранить его в массив, а затем, когда мы вернем страницы назад, а не считать его с начала, но возьмем номер страницы из глобального массива страниц. Эта идея прекрасно работает и здесь некоторый код, как установить это решение до

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

Смежные вопросы