Sql server 如何确定SSR每页中的组数

Sql server 如何确定SSR每页中的组数,sql-server,reporting-services,ssrs-2012,ssrs-tablix,ssrs-grouping,Sql Server,Reporting Services,Ssrs 2012,Ssrs Tablix,Ssrs Grouping,我有一个报告,其中显示了6组(每组5行)的信息。该报告具有一些可由用户修改的筛选器。当第一次在没有任何过滤器的情况下加载报表时,它在报表查看器和打印页面中的页面呈现是完美的,但当在报表信息中添加过滤器时,它会变得异常 下图给出了简单的解释: 有人能提出一些建议来确定每页的行数/组数吗?我将提供两种方法来解决这个问题 (1) 尝试阻止文本框展开 我假设您正在显示以下链接中提到的报告参数(过滤器): 然后,您应该将文本框属性窗格中的CanGrow属性设置为False,如下文所述: 还

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

下图给出了简单的解释:

有人能提出一些建议来确定每页的行数/组数吗?

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

(1) 尝试阻止文本框展开 我假设您正在显示以下链接中提到的报告参数(过滤器):

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

还要确保未在中选中“允许高度增加”属性

帮助链接:

(2) 限制每页的行数 在搜索此问题时,我找到了以下解决方案,可以将其用作按页分发行的解决方案:

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

您应该遵循以下步骤:

  • 转到
    报告
    >
    报告属性
    >
    代码
    ,在
    自定义代码
    部分,输入以下内容:

    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
    
  • 现在使用分页符创建您的组,如下所示:

    = IIf ( CInt(Code.PageNumber()) = 1, Ceiling((RowNumber(Nothing)) / 10), Ceiling((RowNumber(Nothing)) / 15) )
    
  • 结果将如下图所示:

    参考资料和有用链接

    (3) 根据OP评论进行更新 另一种将组行保持在同一页面上的方法是将
    保持在一起
    属性设置为true:

    Row_Group >> Properties >> Keep together = True.
    

    带参数的阴影区域是报告的一部分吗?如果是这样,您能将品牌和分支行移到年度和月度的右侧吗?@AlanSchofield:不,它没有阴影,而且我也不能按照设计限制将其移到右侧。带有
    1.Page
    的黑框是否是使用全局报告参数的静态文本字段?还是来自数据集?如果它来自数据集,则添加父组并通过该字段添加一个组(组之间有分页符),应该可以解决这一问题。另外,您应该确保包含组的报表对象具有
    可以增长
    属性设置为
    True
    。防止过滤器信息区域扩展。我想说的是,显然,当您指定过滤器条件时,此金色(?)区域确实会扩展(变得更高)。这将向下移动该页上的所有其他控件,最后一行(将显示在该页上)将移动到下一页。因此,您应该尝试找到一种解决方案,以不移动布局的方式显示过滤器参数(如果有的话),方法是将该区域的
    CanGrow
    属性设置为
    false
    。非常感谢,您的第二个建议奏效了。但我也发现了另一个可以帮助他人的解决方案<代码>行组
    → <代码>属性
    → <代码>保持在一起设置为“真”。Bydwy非常感谢您宝贵的时间提供解决方案。@jap_-jap我会将此添加到答案中,以便提供更多信息