我有一个 tablix,其中有很多行跨越多个页面。我已经在每一页上设置了 Tablix 属性重复标题行,但这不起作用。我在某处读到这是 Report Builder 3.0 中的一个已知错误。这是真的?如果没有,是否还有其他需要做的事情?
6 回答
这取决于您使用的 tablix 结构。例如,在表中,您没有列组,因此 Reporting Services 无法识别哪些文本框是列标题,并且将 RepeatColumnHeaders 属性设置为 True 不起作用。
相反,您需要:
- 在“分组”窗格中打开高级模式。(单击列组右侧的箭头并选择高级模式。)
- 在行组区域(不是列组)中,单击一个静态组,该组将突出显示 tablix 中的相应文本框。单击每个静态组,直到它突出显示最左侧的列标题。这通常是列出的第一个静态组。
- 在“属性”窗口中,将
RepeatOnNewPage
属性设置为 True。 - 确保该
KeepWithGroup
属性设置为After
。
该KeepWithGroup
属性指定静态成员需要粘贴到哪个组。如果设置为,After
则静态成员将与组保持在其之后或下方,充当组头。如果设置为Before
,则静态成员会在组之前或上方粘在组中,充当组页脚。如果设置为None
,Reporting Services 将决定将静态成员放置在何处。
现在,当您查看报告时,列标题会在 tablix 的每一页上重复。
该视频显示了如何完全按照所描述的答案进行设置。
我有 2.0 并发现上述内容有所帮助;但是,由于某种原因,静态元素的选择并没有突出显示单元格。我按照以下步骤操作:
- 在列组下选择高级,静态将显示
- 单击显示在行组中的静态
- 将 KeepWithGroup 设置为 After 并将 RepeatOnNewPage 设置为 true
现在您的列标题应该在每一页上重复。
我如何解决这个问题是我手动更改了后面的代码(从菜单查看/代码)。下面的部分应该有<TablixMember> </TablixMember>
与 tablix 中的行数一样多的对数。就我而言,我<TablixMember> </TablixMember>
的配对比 tablix 中的行数多。此外,如果您进入“高级模式”(“列组”右侧),“行组”后面的静态行数应该等于 tablix 中的行数。使其相等的方法是更改代码。
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
<RepeatOnNewPage>true</RepeatOnNewPage>
</TablixMember>
<TablixMember>
<Group Name="Detail" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
在“分组”窗格中打开Advanced Mode
。(单击列组右侧的箭头并选择高级模式。)
在行组区域(不是列组)中,单击一个静态组,该组将突出显示 tablix 中的相应文本框。
单击每个静态组,直到它突出显示最左侧的列标题。这通常是列出的第一个静态组。
在属性网格中:
- 设置
KeepWithGroup
为After
- 设置
RepeatOnNewPage
为True
重复标题 - 设置
FixedData
为True
保持标题可见
如果您仍然遇到该问题,另一种方法是执行以下操作:
- 清除所有表格标题文本将其留空。
- 在报告“标题”部分中,在矩形内添加文本框,每个文本框将代表表格的列标题。
- 由于此矩形位于报告标题部分,它将显示在所有报告页面上。
谢谢,苏菲安。
对我有用的是从头开始创建一个新报告。
完成后新报告工作,我将比较 Visual Studio 中的 2 个 .rdl 文件。这些是 XML 格式,我希望快速的 WindDiff 或其他东西可以揭示问题所在。
最初的外观显示两个文件之间有 700 行代码或更多差异,两个文件中较大的一个是错误文件。粗略地看一下 TablixHeader 标签并没有发现任何明显的东西。
但在我的情况下,它是一个损坏的 .rdl 文件。这最初是从工作报告中复制的,因此在删除未重复使用的内容的过程中,这可能会损坏它。但是,在执行相同过程的其他报告中,当在“属性”中进行正确设置时,标题可能会重复。
希望这可以帮助。如果您有一份复杂的报告,这不是快速解决方案,但它确实有效。
也许将已知的良好 XML 文件与您的错误文件进行比较会成为一个很好的论坛帖子。我会在我的最后尝试。