2011-04-06 82 views
13

我有些报告项目在有条件隐藏时更改其他项目职位的问题。在SSRS 2008中影响彼此职位的报告项目

我一直在使用Reporting Services 2000将项目价格标签打印为PDF,报告由一个表格和每个项目的单个单元格组成。数据字段和标签上的其他项目都放在一个矩形内。由于所需的非常具体的布局,一些报告项目在设计器中重叠,以便在渲染的PDF上正确定位。

这一直工作正常好几年,直到我们升级到SSRS 2008,我不得不将报告迁移到新版本。

现在,当报告中的某些项目被隐藏(通过隐藏属性中的表达式)时,突然,某些其他项目会改变其位置。在某些情况下,即使包含的矩形也被调整大小。

经过相当多的搜索后,我已经理解SSRS 2008试图维持报表项之间的相对间距,以便如果另一个项左侧的项大小发生变化,则该项到权利相应调整。

显然,隐藏一个项目相当于将其大小更改为零,因此它旁边的项目向左移动以填补缺口。

但是,我不想要这种行为,因为所有项目都应该保留在其预定义的位置,而不管其他人。

那么,有谁知道一种方法来“修复”报告项目的位置,以便他们不受隐藏其他项目的影响?

我已经尝试将项目放在单独的矩形内,以便对它们进行分组,希望只有同一矩形内的项目才能互相影响,但这似乎没有帮助。

任何想法将不胜感激。

回答

11

在并排示例中,您可以将可能隐藏的控件放置到足够大的矩形中以容纳两者;但是然后把另一个必须保持在矩形后面的控件(即该控件的父元素是报表而不是矩形)。

如果这还不够,并且隐藏和非隐藏的项目使用相同的数据集,您可以(颤抖)使用一个巨大的tablix控件,其中包含= 1的分组和控制布局的正确数量的行和列(因为你可以在里面插入矩形)。

其他一些技巧是将颜色/背景颜色属性设置为白色(尽管在某些渲染格式中,您可以单击并拖动以突出显示并仍然可以读取那里的内容)或者,您可以尽可能控制所有表达式的内容,以便在条件满足时不产生任何东西,因此它基本上是不可见的。

+1

噢,我的天啊,那真的有效!我曾尝试过所有这些,除了在受影响的字段前面设置包含矩形的z索引!巨大的感谢之人,你救了我的一天!我希望SSRS有一些属性来禁用这种“动态布局”功能,但现在,这可以解决我的问题,而不会有太多麻烦。 – Rolf 2011-04-14 06:53:02

+0

我在2012年有同样的问题。我在这里找到了更详细的解决方案:http://dinesql.blogspot.com/2010/05/reporting-services-textbox-changes.html – scar80 2014-09-26 08:38:50

0

另一种方法:创建包含要隐藏的字段的矩形,然后在矩形的整个底部(或顶部)放置一条白线。这使矩形保持相同的大小,即使其中的字段被隐藏。如果矩形内的字段缩小,矩形将缩小,但跨越整个矩形的线可防止发生这种情况。