我在Birt中使用动态文本。我想在一行上显示一个句子但是如果它的宽度太宽则会显示在两行或更多行上。有句法在句子宽度过大时动态减小字体大小,以便它保持在一行吗?
感谢您的帮助。
答案 0 :(得分:2)
首先选择您的单元格,然后单击脚本选项卡,从下拉列表中选择onRender并输入此代码
this.getStyle()。fontSize 这使您可以在渲染页面时动态更改fontsize ...
干杯..
答案 1 :(得分:1)
这是我的解决方案 - 以@Sundar所说的为基础。
在我的情况下,我在一个单元格中有两个字段。这不是完美的,但是我必须知道文本何时是“太大”的唯一方式。是测量组合字符串的长度,然后相应地调整字体大小。
单击单元格,然后单击脚本选项卡,并在onRender脚本中输入如下代码
// Decide if we need to change font size.
totalLength = 0;
if (row["Field Name 1"]) {
totalLength += row["Field Name 1"].length;
}
if (row["Field Name 2"]) {
totalLength += row["Field Name 2"].length;
}
// Make the font smaller with larger amounts of text.
switch (true) {
case (totalLength > 200):
this.getStyle().fontSize = "6pt";
break;
case (totalLength > 100 && totalLength < 200):
this.getStyle().fontSize = "8pt";
break;
default:
this.getStyle().fontSize = "10pt";
break;
}