如果某些报表项在有条件隐藏时会更改其他项目的位置,我会遇到问题。
我一直在使用Reporting Services 2000将商品价格标签打印为PDF,报告由一个表组成,每个项目包含一个单元格。标签上的数据字段和其他项都放在一个矩形内。由于需要非常特定的布局,设计器中的某些报表项会重叠,以便在呈现的PDF上正确定位。
这已经好几年了,直到我们升级到SSRS 2008并且我不得不将报告迁移到新版本。
现在,突然,当隐藏报告中的某些项目时(通过隐藏属性中的表达式),某些其他项目会改变其位置。在某些情况下,甚至包含的矩形也会调整大小。
经过大量的谷歌搜索,我发现SSRS 2008试图保持报告项之间的相对间距,以便如果另一个项左侧的项目大小发生变化,则右侧的项目相应调整。
显然,隐藏项目等同于将其大小更改为零,因此它旁边的项目向左移动以填补空白。
但是,我不希望出现这种情况,因为所有项目都应该保留在预定位置而不管其他项目。
那么,有没有人知道一种“修复”报告项目位置的方法,这样他们就不会受到隐藏其他项目的影响?
我尝试将这些项目放在单独的矩形中以便对它们进行分组,希望只有同一个矩形内的项目可以相互影响,但这似乎没有帮助。
非常感谢任何想法。
答案 0 :(得分:13)
在并排示例中,您可以将可能隐藏的控件放置在足够大的矩形中以容纳两者;但是然后将另一个必须保持在固定位置的控件放在矩形后面(即该控件的父级是报表而不是矩形)。
如果这还不够,并且隐藏和非隐藏项目使用相同的数据集,您可以(颤抖)使用一个巨大的Tablix控件,其分组为= 1,并且正确的行数和列数来控制布局(因为你可以在里面插入矩形。
其他一些技巧是将颜色/背景颜色属性设置为白色(尽管在某些渲染格式中,您可以单击并拖动以突出显示并仍然可以读取其中的内容)...或者,您可以进行内容制作。控制所有基于表达式,以便在满足条件时不产生任何东西,因此它基本上是不可见的。
答案 1 :(得分:0)
另一种方法:创建包含要隐藏的字段的矩形,然后在矩形的整个底部(或顶部)放置一条WHITE线。这使矩形保持相同的大小,即使其中的字段被隐藏。如果矩形内的字段缩小,则矩形将缩小,但跨越整个矩形的线条会阻止这种情况发生。
答案 2 :(得分:0)
不确定这是否对其他人有帮助,因为这是一个相当具体的要求,但是它解决了我的OPs问题变体,因此可以解决。我正在设计一个SSRS报告以打印标签(在我的情况下为Avery 5164),并且用户希望选择要打印的标签,因为他们可能已经在页面中使用了一个或两个标签。因为打印标签的位置很重要,所以即使隐藏了纸上它们上方的标签,我也需要将它们保持在原位。我的解决方案是创建与标签大小相同的空矩形,并将其直接放置在现有矩形的顶部。即使我隐藏了两个,三个,四个等标签,其余的标签也会保持原样。
答案 3 :(得分:0)
只需绘制一个Rectangle,然后将带有条件隐藏表达式的对象与新的空Rectangle的位置稍微重叠即可。右边的对象将由Rectangle固定在适当的位置。没有背景色或其他任何东西,只有矩形。垂直工作,就像您有一个地址块,并且希望地址线下面的对象保持放置状态一样。像这样 enter image description here