首页 > 解决方案 > 如何修复SSRS每页中的组数

问题描述

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

下图给出了简单的解释:

在此处输入图像描述

任何人都可以提出任何建议来修复每页中的行数/组数吗?

标签: sql-serverreporting-servicesssrs-2012ssrs-tablixssrs-grouping

解决方案


我将提供两种方法来解决这个问题

(1)尽量防止文本框扩大

我将假设您正在显示以下链接中提到的报告参数(过滤器) :

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

在此处输入图像描述

还要确保未在“文本框属性”对话框Allow height to increase中选中该属性

在此处输入图像描述

有用的网址:

(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) )
    

结果将如下图所示:

在此处输入图像描述

参考资料和有用的链接

(3) 根据 OP 评论更新

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

Row_Group >> Properties >> Keep together = True.

推荐阅读