【发布时间】:2015-10-14 05:27:56
【问题描述】:
我已经开发了一个横向的 BIRT 报告,现在需要让它纵向。当我将母版页方向更改为纵向时,页面尺寸会发生变化,但元素仍采用旧宽度(跨越页面边框)并且我无法手动调整它们的宽度。有没有办法重新调整所有元素以适应新的页面尺寸?
【问题讨论】:
-
你能扩展一下不能“调整它们的宽度”吗?调整列宽相当简单,选择表格,选择列>属性>常规,清除或输入新的列宽值。
我已经开发了一个横向的 BIRT 报告,现在需要让它纵向。当我将母版页方向更改为纵向时,页面尺寸会发生变化,但元素仍采用旧宽度(跨越页面边框)并且我无法手动调整它们的宽度。有没有办法重新调整所有元素以适应新的页面尺寸?
【问题讨论】:
我认为您的意思是您在 UI 中看不到列,因此无法更改它们的宽度。
但是您可以切换到 XML 源窗口并从那里修改宽度:
首先,如果您还没有这样做,请给您的表起一个有意义的名称。 然后在 XML 中找到表元素(提示:搜索名称)。 在元素内部有元素,在那里你会找到宽度并可以编辑它们。此外,表格还具有您应该编辑的宽度。 根据您的布局结构的复杂性,这可能会变得乏味。
请注意,您还可以清除宽度(表格和部分或全部列)。没有显式宽度的列然后共享没有被具有显式宽度的列占用的空间)。这是 BIRT 的一个非常方便的特性。
【讨论】:
将页面布局首选项设置为自动布局
<property name="layoutPreference">auto layout</property>
然后检查您正在使用的元素以验证它们是否能够调整大小。例如,网格可以将其宽度设置为 100%(而不是固定大小)并具有“可以缩小”选项。您还可以将列设置为百分比大小。
如果是图表,请将其缩小,然后添加一些脚本以调整其大小以在渲染时填充容器(添加到 onContentUpdate 事件)。例如,您可以添加:
var reportWidth = this.getViewer().getWidth();
var reportHeight = this.getViewer().getHeight();
var chart = this.getViewer().getChart();
chart.getClientChart().setSize(reportWidth, reportHeight);
【讨论】: