这似乎应该很简单。我有一个包含Tablix的报告,其中有一组由客户强制在组之间进行分页。我希望页码是按客户的,所以页面就是这样:
Customer1 Page 1/2
Customer1 Page 2/2
Customer2 Page 1/1
Customer3 Page 1/4
etc, etc
我似乎无法找到重置页码的方法或导致总页数为该组的总页数。
答案 0 :(得分:4)
看起来似乎无法做到这一点,至少在VS 2012中。我能够在SSL的RDL中使用它,然后我打开了RDL并找到了相关的部分
<Group Name="MemberId">
<GroupExpressions>
<GroupExpression>=Fields!MemberId.Value</GroupExpression>
</GroupExpressions>
<PageBreak>
<BreakLocation>StartAndEnd</BreakLocation>
<ResetPageNumber>true</ResetPageNumber>
</PageBreak>
</Group>
然后我把它带回我的RDLC并将<ResetPageNumber>true</ResetPageNumber>
插入我的组。当我在VS中再次打开文件时显示以下错误。
Deserialization failed: The element 'PageBreak' in namespace
'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'
has invalid child element 'ResetPageNumber' in namespace
'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'.
List of possible elements expected: 'BreakLocation' in namespace
'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'
as well as any element in namespace '##other'. Line 1812, position 20.
最终结果,我正在将报告移至Reporting Services。
答案 1 :(得分:1)
可以实际完成,但不能在报告中添加一些自定义代码:
Shared reportGroup as String
Shared newPage as Integer
Public Function ResetPageNumber(newGroup as String)
If Not (reportGroup = newGroup)
reportGroup = newGroup
newPage = 1
Else
newPage = newPage + 1
End If
Return newPage
End Function
然后在页脚中添加页码的文本框并将其设为值:
= Code.ResetPageNumber(ReportItems!TextBoxWithYourGroupNameOrID.Value)