【问题标题】:How to add SSRS page break after 65536 rows, counting group header/footer如何在 65536 行后添加 SSRS 分页符,计算组页眉/页脚
【发布时间】:2013-09-25 11:02:06
【问题描述】:

当行数大于 Excel 2003 的 65536 限制时,我的 SSRS 报告无法导出到 Excel

报表已经有一个带有组脚注的分组级别。

我尝试在表达式上添加一个带有分页符的额外分组级别

=ceiling(rownumber(nothing)/65536)

但是,这会计算详细信息行,但不考虑组页脚。因此,行数计算为 53000,而实际行数已超过 65536。

下面的表达式

=ceiling(RunningValue(Fields!myfirstgroup.Value, CountDistinct, Nothing) + rownumber(nothing) / 65536 )

会给我包括组页脚在内的实际行数,但 SSRS 不允许在运行值表达式上进行组。

如何在 65536 行之后强制分页以允许导出到 Excel?我曾希望在报表定义中实现这一点,并避免在查询中添加计算的页码。

非常感谢任何帮助

* 更新 - 示例数据 *

ItemDescription , Location , Quantity

Red lorry , M25 , 5

Red lorry , M6 , 2

Yellow lorry , M1 , 3

报告在 ItemDescription 上有一个分组,其中包含该项目的总数,因此它会显示

ItemDescription , Location , Quantity

    Red lorry , M25 , 5

    Red lorry , M6 , 2

      Total for Red Lorry,7

    Yellow lorry , M1 , 3

      Total for Yellow Lorry,3

这意味着从我的 3 行数据中,我有 5 个报表行,包括详细信息行和页脚行。 SSRS 可以知道我的数据集中有多少详细信息行,但我需要将页脚考虑到分页符。

【问题讨论】:

  • 我认为您可以使用共享变量来计算行数并将其放在组页脚中。添加一个表达式以对共享变量进行分页。
  • 您能告诉我们更多关于您为什么要创建一个包含超过 65,000 行并导出到 Excel 并包含组页脚分组的报告吗?有人会查看这些页脚中的总数吗?您可以将这些行导出为 CSV 吗?
  • 客户要求在 Excel 中拥有如此多的数据,并带有分组行,这就是我的目标。与其质疑这个请求的智慧,或者提出替代解决方案,我更感兴趣的是找到技术问题的解决方案
  • 组页眉/页脚中的行数是否固定?这些是如何计算的?您能否提供几行示例数据,仅半打来显示页脚与详细信息行的关系?

标签: sql-server-2008 reporting-services reportingservices-2005 ssrs-grouping


【解决方案1】:

您好,此链接可能对您有所帮助。几年前我也遇到过类似的问题。

SSRS Page break on Tablix with Rownumber ,just one row group and no group expression given by default

=Floor((RowNumber(Nothing)-1)/2000)

是建议的答案

【讨论】:

  • 谢谢。这将防止错误,但它有点简单,可能会导致 2 或 3 倍于实际需要的 Excel 工作表。
  • 不是我追求的优雅,而是防止Excel导出错误,所以+50。作为记录,我发现的唯一优雅的方法是在 SQL 中计算我的分页符,并在其上添加一个报告分组。很惊讶 SSRS 没有办法处理这个问题
  • 对不起@JamieA 我无法详细帮助您。对于一个简单的数据集,SSRS 总是可以完美运行,但是当报告变得复杂时,所有这些小事情都会让我们烦恼,需要我们花时间来整理(SSRS 项目需要 10 个月):(
【解决方案2】:

使用以下表达式创建一个组: =CInt(Ceiling(RowNumber(nothing)/65000))

65000 为任何页眉或页脚提供了一点额外空间。接下来,对该组“在组的每个实例之间”和“也在组的末尾”进行分页,您将成功解决 excel 文件限制问题。

这是我们通常使用的,没有任何问题。如果您不专门使用所有 65,536 行,我认为没有人会注意到。

【讨论】:

  • 感谢您的回答,很抱歉花了这么长时间重新访问!但是,问题表明我已经尝试过使用带有分页符的类似分组表达式。 65000 没有为页眉和页脚提供足够的空间,因为我的第一个分组级别包括一个组页脚,我将有数千个这样的页脚需要考虑,这些页脚不在 RowNumber() 函数中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多