更新 当我第一次提出这个问题时,我并不完全明白问题所在。你最好的选择是浏览下面的问题,然后阅读我的答案。
我有一个矩阵报告,数据如下所示:
Name Id Activity 1 Activity 2 …Acitivity N
Smith 1 77 100 nn
Johnson 2 88 99 nn
名称和 ID 属于某个群组。
当活动数量大于11时,我需要在报告以PDF格式呈现时重复名称和 ID 列。
以下是最近运行的报告示例:
第1页(注意:红色框表示 个人数据过滤掉了):
第2页:
我一直在摆弄 RepeatRowHeaders 和 RepeartColumnHeaders 这些属性,但我没有成功。
如何重复此列?
虐待狂可以查看rdl文件here。
答案 0 :(得分:0)
简答(和我的请求):
请投票on this Page以有条件地隐藏非群组矩阵列。
长篇:
我找到了问题的解决方案,但首先要弄清楚确切的问题。当 RepeatRowHeaders 和 RepeatColumnHeaders 设置为True时,SSRS矩阵能够在后续页面上重复列,因为其宽度会增加。所以我的报告设置部分很好。
我的问题是我的网格设置如下:
您在上面看到的是包含Matrix的Tablix。蓝色表示具有四列的正常Tablix。绿色表示第4列中具有 N 列数的矩阵。
因此即使将属性 RepeatRowHeaders 和 RepeatColumnHeaders 设置为true,第1-3列也不会重复,因为Matrix中的数据扩展到多个页面。这是因为外Tablix(例如蓝色部分)仅看到柱4向外生长而不是内矩阵中的各个柱。
为了使列重复,我不得不像这样改变网格:
这个网格只有一个矩阵; Tablix中的Matrix不是描绘的第一个图像。我拉出矩阵并在左边添加了“静态列”。随着Matrix的发展,这使得第1 - 3列在多个页面上重复。
所有看起来都很好,但是这里有一个问题:静态列无法隐藏,或者更恰当地说,您可以隐藏列中的数据,但列本身不会缩小。
所以,当我隐藏静态列3时,我的报告看起来像这样:
注意白色空间差距。这个解决方案根本行不通。当我发现我陷入任何一种情况时(或者有能力有条理地隐藏列或在后续页面上重复列),我使用了一个Microsoft支持事件来分析报告并提出解决方案。 / p>
微软很好,知识渊博,甚至pointed to a article在他们的论坛上说他们正在考虑允许SSRS能够隐藏静态列。然而,最后,他们说我们陷入了这两种情况。 (顺便说一句,请注意论坛帖子在2006年得到了解答。)
因此,经过与微软的漫长过程,我们仍陷入困境。幸运的是,我们的其中一位程序员提出了一种解决方法:将您想要的列切换到Matrix本身的可见性。
这就是我所做的。它花了一些时间来报告SQL(并创建一个我并不特别自豪的声明),但它确实有效。
所以现在工作报告看起来像这样:
这是一个矩阵,两个静态列总是需要在每个页面上重复,而第3列现在是用于Matrix的数据集的一部分。
再一次,我恳请社群投票on this Page有条件地隐藏非群组矩阵列。这将使构建这样的未来报告变得更加容易:)