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

Posted

技术标签:

【中文标题】Tablix:在每个页面上重复标题行不起作用 - Report Builder 3.0【英文标题】:Tablix: Repeat header rows on each page not working - Report Builder 3.0 【发布时间】:2012-07-02 09:50:15 【问题描述】:

我有一个 tablix,其中有很多行跨越多个页面。我已经在每一页上设置了 Tablix 属性重复标题行,但这不起作用。我在某处读到这是 Report Builder 3.0 中的一个已知错误。这是真的?如果没有,是否还有其他需要做的事情?

【问题讨论】:

【参考方案1】:

如果您仍然遇到此问题,另一种方法是执行以下操作:

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

谢谢, 苏菲安。

【讨论】:

【参考方案2】:

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

相反,您需要:

    在“分组”窗格中打开高级模式。 (单击列组右侧的箭头并选择高级模式。) 在“行组”区域(不是“列组”)中,单击静态组,这会突出显示 tablix 中的相应文本框。单击每个静态组,直到它突出显示最左侧的列标题。这通常是列出的第一个静态组。 在“属性”窗口中,将RepeatOnNewPage 属性设置为True。 确保KeepWithGroup 属性设置为After

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

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

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

【讨论】:

Stacia,当我选择 KeepWithGroup 并尝试保存时,我得到“tablix 'DetailTablix' 的 TablixMember 无效。TablixColumnHierarchy 中的所有 TablixMember 元素都必须将 RepeatOnNewPage 属性设置为 false。”。有什么想法吗? 我发现了我的问题。斯塔西亚你的答案是绝对正确的,要做到恰到好处只是一件棘手的事情。请注意,Stacia 说在设置 RepeatOnNewPage 属性时要更改 ROW Groups 区域。关于此解决方案的所有其他内容都处理列,但您需要选择行组(左侧),而不是列组(右侧),即使您从单击列中的下拉列表开始。谢谢斯塔西亚,太棒了。 +1 - 我刚刚在整个互联网上阅读了十几个关于此的演练,这是解决该问题的最佳最直接的解决方案 - 您还解释了为什么这些选项很重要,这太棒了。谢谢! 此视频展示了如何完全按照所描述的答案进行设置:youtube.com/watch?v=WAO819-gkKw KeepWithGroup=After 对我来说很关键。就像许多微软的东西一样,这是一个让功能正常工作所需的不明显的技巧。谢谢!【参考方案3】:

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

这已经完成并且新报告工作正常,我将比较 Visual Studio 中的 2 个 .rdl 文件。这些是 XML 格式,我希望快速 WindDiff 或其他东西能揭示问题所在。

初步查看显示两个文件之间有 700 行代码或更多的差异,两个文件中较大的一个是错误文件。粗略查看 TablixHeader 标记并没有发现任何明显的内容。

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

希望这会有所帮助。如果您有一份复杂的报告,这不是快速解决方法,但它确实有效。

也许将已知的良好 XML 文件与您的错误文件进行比较会成为一个很好的论坛帖子。我会在最后尝试一下。

【讨论】:

【参考方案4】:

我有 2.0 并发现上述内容有所帮助;但是,由于某种原因,静态元素的选择并没有突出显示单元格。 我按照以下步骤操作:

    在列组下选择高级,将显示静态数据 点击显示在行组中的静态元素 将 KeepWithGroup 设置为 After 并将 RepeatOnNewPage 设置为 true

现在您的列标题应该在每一页上重复。

【讨论】:

这工作得很好......比上面对我不起作用的答案要简单得多。 不幸的是,这导致我再次开始出现空白页。【参考方案5】:

我如何解决这个问题是我手动更改了后面的代码(从菜单查看/代码)。 下面的部分应该包含与 tablix 中行数一样多的对 <TablixMember> </TablixMember>。就我而言,<TablixMember> </TablixMember> 的对数比 tablix 中的行数还多。此外,如果您进入“高级模式”(“列组”右侧),“行组”后面的静态行数应该等于 tablix 中的行数。使其相等的方法是更改​​代码。

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

【讨论】:

令我惊讶的是,这样做解决了问题。我有一个带有 6 行的 tablix(3 个标题行加上一个带有标题、详细信息和页脚行的组)。查看源代码显示 中有 6 个 但有 7 个 。我对哪个是额外的(包裹该组的)做出了最好的猜测并将其删除。此版本无法呈现,但错误消息表明需要更改一行的 设置以匹配以前的设置;我在第三(静态)行中将它们更改为“true”和“After”,瞧!我希望我真的理解了;)! 谢谢。我已经使用 s-s-rS 超过 10 年了,刚刚遇到了这个问题 - 实际上,在组周围有一个额外的 TablixMember 包装器(毫无疑问来自添加和删除组的实验)。清理成员列表解决了神秘的不重复标题。 谢谢,我不得不删除两个多余的 TablixMember 行,它们已分组且没有数据。在我的报告中,这对我来说的迹象是有两个静态行组而不是一个。一旦我删除了多余的 XML 嵌套重复行开始工作。 谢谢。只有这个解决方案适用于我遇到类似问题的报告。 显然 Visual Studio 中缺少正确的设置。因此,引用 ReportBuilder 的“高级设置”提示没有帮助。手动编辑文件就像一个魅力。谢谢!【参考方案6】:

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

在行组区域(不是列组)中,单击静态组,该组会突出显示 tablix 中的相应文本框。

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

在属性网格中:

KeepWithGroup 设置为AfterRepeatOnNewPage 设置为True 用于重复标题 将FixedData 设置为True 以保持标题可见

【讨论】:

以上是关于Tablix:在每个页面上重复标题行不起作用 - Report Builder 3.0的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 嵌套 Tablix 动态增加/减少行高

报表生成器分页问题

在 Extjs 网格视图中隐藏行不起作用

引导表单组行不起作用

SSRS如何在每个页面的相同位置启动tablix

在html页面填入字符串,\n换行不起作用,怎么办?