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 个标题行加上一个带有标题、详细信息和页脚行的组)。查看源代码显示在“分组”窗格中打开 Advanced Mode
。 (单击列组右侧的箭头并选择高级模式。)
在行组区域(不是列组)中,单击静态组,该组会突出显示 tablix 中的相应文本框。
单击每个静态组,直到它突出显示最左侧的列标题。这通常是列出的第一个静态组。
在属性网格中:
将KeepWithGroup
设置为After
将RepeatOnNewPage
设置为True
用于重复标题
将FixedData
设置为True
以保持标题可见
【讨论】:
以上是关于Tablix:在每个页面上重复标题行不起作用 - Report Builder 3.0的主要内容,如果未能解决你的问题,请参考以下文章