C# 按组重置RDLC报告中的页码

C# 按组重置RDLC报告中的页码,c#,rdlc,C#,Rdlc,这似乎应该足够简单。我有一份包含Tablix的报告,其中包含按客户分组的报告,该报告强制在分组之间分页符。我希望页码为每个客户,因此页面应如下所示: Customer1 Page 1/2 Customer1 Page 2/2 Customer2 Page 1/1 Customer3 Page 1/4 etc, etc 我似乎找不到重置页码或使总页数成为组的总页数的方法。至少在VS 2012中,这似乎是不可能做到的。我能够让它在SSRS的RDL中工作,然后打开该RDL并找到相关部分 <Gr

这似乎应该足够简单。我有一份包含Tablix的报告,其中包含按客户分组的报告,该报告强制在分组之间分页符。我希望页码为每个客户,因此页面应如下所示:

Customer1 Page 1/2
Customer1 Page 2/2
Customer2 Page 1/1
Customer3 Page 1/4
etc, etc

我似乎找不到重置页码或使总页数成为组的总页数的方法。

至少在VS 2012中,这似乎是不可能做到的。我能够让它在SSRS的RDL中工作,然后打开该RDL并找到相关部分

<Group Name="MemberId">
  <GroupExpressions>
    <GroupExpression>=Fields!MemberId.Value</GroupExpression>
  </GroupExpressions>
  <PageBreak>
    <BreakLocation>StartAndEnd</BreakLocation>
    <ResetPageNumber>true</ResetPageNumber>
  </PageBreak>
</Group>

最终结果,我将报告转移到Reporting Services

实际上可以这样做,但必须向报告中添加一些自定义代码:

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)

如果我没记错的话,你可以将组名(字符串)作为第二个参数传递给what?@Henry谢谢你指出我的错误。我更新了我的答案。@InitK但这只会写实际的页面,你如何才能得到该组的总页面数?@popiandro我认为,它需要作为数据集的一部分进行计算和呈现,但需要用它进行实验才能确定。@InitK我刚才读过,但对于具有动态高度的行,计算它可能非常复杂
= Code.ResetPageNumber(ReportItems!TextBoxWithYourGroupNameOrID.Value)