如何固定SSRS每页中的组数

How can I fix the number of groups in each page of SSRS

我有一个显示 6 组(每组 5 行)信息的报告。该报告有一些可以由用户修改的过滤器。当第一次报告在没有任何过滤器的情况下加载时,它在报告查看器中的页面呈现和打印页面是完美的,但是当在报告信息中添加过滤器时,它变得异常。

下图简单解释:

任何人都可以提出任何建议来修复每个页面中 rows/groups 的数量吗?

我会提供两种方法来解决问题

(1)尽量防止文本框展开

我假设您正在显示报告参数 (过滤器),如下面 link:

然后,您应该从文本框属性窗格中将 CanGrow 属性 设置为 False,如以下文章所述:

还要确保 Allow height to increase 属性 未在 Text Box Properties Dialog Box

中选中

有帮助links:

(2)限制每页行数

在搜索此问题时,我发现了以下解决方案,可用作按页分配行的解决方法:

您可以使用条件方法指定每页的行数限制。如果是第一页则以10 (2组)为例,其他页以15 (3组).

您应该按照以下步骤操作:

  1. 转到 Report >> Report Properties >> Code ,在 Custom Code 部分,输入以下内容:

    Public Function PageNumber() as String
        Dim str as String
        str = Me.Report.Globals!PageNumber.ToString()
        Return str
    End Function
    
    Public Function TotalPages() as String
        Dim str as String
        str = Me.Report.Globals!TotalPages.ToString()
        Return str
    End Function
    
  2. 现在使用分页符创建您的组,如下 SSRS 表达式:

    = IIf ( CInt(Code.PageNumber()) = 1, Ceiling((RowNumber(Nothing)) / 10), Ceiling((RowNumber(Nothing)) / 15) )
    

结果将如下图所示:

参考和帮助 links

(3) 根据OP评论更新

将组行保持在同一页上的另一种方法是将 Keep together 属性 设置为 true:

Row_Group >> Properties >> Keep together = True.