Tablix:在每个页面上重复标题行不起作用-Report Builder 3.0


Answers:


426

这取决于您使用的tablix结构。例如,在一个表中,您没有列组,因此Reporting Services无法识别哪些文本框是列标题,并且将RepeatColumnHeaders属性设置为True无效。

相反,您需要:

  1. 在“分组”窗格中打开“高级模式”。(单击列组右边的箭头,然后选择高级模式。)
    • 屏幕截图
  2. 在“行组”区域(而不是“列组”)中,单击“静态”组,这将在Tablix中突出显示相应的文本框。单击每个“静态”组,直到其突出显示最左侧的列标题。通常,这是列出的第一个静态组。
  3. 在“属性”窗口中,将RepeatOnNewPage属性设置为True。
    • 屏幕截图
  4. 确保该KeepWithGroup属性设置为After

KeepWithGroup属性指定静态成员需要坚持的组。如果将其设置为After静态成员,则该静态成员将在其之后或下面与该组保持一致,充当组头。如果设置为Before,则静态成员将在其之前或上方与组保持一致,充当组页脚。如果设置为None,Reporting Services会决定将静态成员放在何处。

现在,当您查看报告时,列标题将在tablix的每一页上重复。

视频显示了如何将其完全按照所描述的答案进行设置。


1
Stacia,当我选择KeepWithGroup并尝试保存时,我得到“ tablix'DetailTablix'具有无效的TablixMember。TablixColumnHierarchy中的所有TablixMember元素必须将RepeatOnNewPage属性设置为false。”。有任何想法吗?
moodboom 2012年

24
我发现了我的问题。Stacia您的答案是绝对正确的,这是一件棘手的事情。请注意,Stacia说在设置RepeatOnNewPage属性时更改ROW Groups区域。关于此解决方案的其他所有内容都与列有关,但是即使您从“列”中单击下拉列表,也需要选择“行”组(在左侧),而不是“列”组(在右侧)。感谢Stacia,太棒了。
moodboom 2012年

5
+1-我刚刚在互联网上阅读了大约十二个演练,这是解决该问题的最佳方法-您还解释了为什么选项很重要,这太棒了。谢谢!
JNK

3
该视频演示了如何按照所描述的答案进行设置:youtube.com/watch?v=WAO819
虾米饭

8
KeepWithGroup =之后对我来说很关键。像许多Microsoft事物一样,这是使功能正常工作所需的非显而易见的技巧。谢谢!
leqid 2014年

17

我有2.0并找到了上面的帮助;但是,出于某些原因,选择静态对象不会突出显示该单元格。我遵循以下步骤:

  1. 在列组下,选择高级,然后将显示静态信息
  2. 单击显示在行组中的静态
  3. 将KeepWithGroup设置为After,并将RepeatOnNewPage设置为true

现在,您的列标题应该在每个页面上重复。


这很完美。。。。。。。。。。。。。。。。。
R_Avery_17年

不幸的是,这导致我再次开始获取空白页。
迈克(Mike)

10

我如何解决此问题是我手动更改了背后的代码(从菜单“视图/代码”中)。下面的部分应该具有<TablixMember> </TablixMember>与tablix中的行数一样多的对数。就我而言,对<TablixMember> </TablixMember>的数量超过了Tablix中的行数。同样,如果转到“高级模式”(在“列组”的右侧),“行组”后面的静态行数应等于tablix中的行数。使其相等的方法是更改​​代码。

<TablixRowHierarchy>
      <TablixMembers>
        <TablixMember>
          <KeepWithGroup>After</KeepWithGroup>
          <RepeatOnNewPage>true</RepeatOnNewPage>
        </TablixMember>
        <TablixMember>
          <Group Name="Detail" />
        </TablixMember>
      </TablixMembers>
    </TablixRowHierarchy>

令我惊讶的是,这样做解决了问题。我有一个带有6行的Tablix(3个表头行加上一个带表头,明细和页脚行的组)。查看源代码,在<TablixRowHierarchy>中显示6个<TablixRow>,但显示7个<TablixMember>。我最大的猜想是哪个是多余的(包裹了该组)并删除了它。此版本无法渲染,但是错误消息表明需要更改其行的<Repeat ...>和<KeepWith ...>设置以匹配先前的设置;我在第三行(静态)中将其更改为“ true”和“ After”,瞧!我希望我能真正理解;)!
GISmatters 2013年

谢谢你 我使用SSRS已有10多年了,但遇到了这个问题-的确,该组周围有TablixMember的额外包装(无疑来自添加和删除组的实验)。清理成员列表解决了神秘的非重复标题。
卡尔丹尼尔

谢谢,我不得不删除两个多余的TablixMember行,这些行已分组并且没有数据。在我的报告中,对我来说,这是两个静态行组,而不是一个。一旦我删除了多余的XML嵌套,重复行就开始起作用。
Noppadet

1
谢谢。在遇到类似问题的报告中,只有此解决方案有效。
Syed

显然,Visual Studio中缺少正确的设置。因此,引用ReportBuilder的“高级设置”提示无济于事。手动编辑文件就像一个魅力。谢谢!
MovGP0

9

Advanced Mode在“分组”窗格中打开。(单击列组右侧的箭头,然后选择高级模式。)

在“行组”区域(而不是“列组”)中,单击“静态”组,这将在Tablix中突出显示相应的文本框。

单击每个“静态”组,直到其突出显示最左侧的列标题。通常,这是列出的第一个静态组。

在属性网格中:

  • 设置KeepWithGroupAfter
  • 设置RepeatOnNewPageTrue用于重复报头
  • 设置FixedDataTrue保持可见标题

5

如果仍然存在该问题,则另一种方法是执行以下操作:

  • 清除所有表格标题文本,使其为空。
  • 在“报告”的“标题”部分,在矩形内添加文本框,每个文本框将代表表格的列标题。
  • 由于此矩形位于“报告标题”部分,因此它将显示在所有报告页面上。

谢谢苏菲安


2

对我有用的是从头开始创建新报告。

这样就完成了,新的报表也开始工作了,我将在Visual Studio中比较2个.rdl文件。这些都是XML格式,我希望快速使用WindDiff或其他方法可以揭示问题所在。

初步显示,这两个文件之间有700行代码或更多的区别,其中2个文件中较大的是错误文件。粗略地查看TablixHeader标记并没有发现任何明显的东西。

但就我而言,这是一个损坏的.rdl文件。这最初是从工作报告中复制的,因此在删除未重复使用的内容的过程中,可能会损坏它。但是,在其他报告中执行相同过程的情况下,如果在“属性”中进行了正确的设置,则标题可能会重复。

希望这可以帮助。如果您有一份复杂的报告,这不是快速的解决方法,但是可以解决。

也许将已知的好的XML文件与有问题的XML文件进行比较将是一个不错的论坛帖子。我会尽力而为。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.