【问题标题】:How can I fix the number of groups in each page of SSRS如何修复SSRS每页中的组数
【发布时间】:2019-06-27 21:23:30
【问题描述】:

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

简单解释如下图:

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

【问题讨论】:

  • 那个阴影区域是报表的参数部分吗?如果是这样,您能否将 Brand 和 Sub Branch 行移到年份和月份的右侧?
  • @AlanSchofield:不,它没有阴影,我也不能根据设计限制将它移到右侧。
  • 带有1.Page 的黑框是使用全局报告参数的静态文本字段吗?还是来自数据集?如果它来自数据集,则添加父组并按该字段添加组并在组之间添加分页符应该可以解决此问题。此外,您应该确保包含组的报表对象的 Can-grow 属性设置为 True
  • 防止过滤信息区域扩大。
  • 我想说的是,当您指定过滤条件时,显然这个金色(?)区域确实会扩大(变高)。这将向下移动该页面上的所有其他控件,并且最后一行(本应显示在该页面上)移动到下一页。因此,您应该尝试找到一种解决方案,以不移动布局的方式显示过滤器参数(如果有的话),也许通过将该区域的CanGrow 属性设置为 false.

标签: sql-server reporting-services ssrs-2012 ssrs-tablix ssrs-grouping


【解决方案1】:

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

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

我假设您正在显示报告参数(过滤器),如以下链接中所述:

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

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

有用的链接:

(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 cmets的更新

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

Row_Group >> Properties >> Keep together = True.

【讨论】:

  • 非常感谢,您的第二个建议奏效了。但我还发现了另一个可以帮助他人的解决方案。 Row_GroupPropertiesKeep together 设置为“真”。 Bydwy 非常感谢您宝贵的时间来解决问题。
  • @jap_jap 我会将其添加到答案中,以便提供更多信息
猜你喜欢
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多