1

Birt で動的テキストを使用しています。1行で文章を表示したいのですが、幅が広すぎると2行以上で表示されてしまいます。文が幅が広すぎて 1 行に収まらない場合に、フォント サイズを動的に小さくする方法はありますか?

ご協力ありがとうございました。

4

2 に答える 2

2

最初にセルを選択し、スクリプトタブをクリックして、ドロップダウンから onRender を選択し、このコード
this.getStyle().fontSizeを配置します。 これにより、ページのレンダリング中にフォントサイズを動的に変更できます...
乾杯..

于 2012-08-31T09:58:21.823 に答える
1

これが私の解決策です-@Sundarが言ったことに基づいています。

私の場合、1 つのセルに 2 つのフィールドがあります。完璧ではありませんが、テキストが「大きすぎる」場合を知る必要がある唯一の方法は、結合された文字列の長さを測定し、それに応じてフォントサイズを調整することです.

セルをクリックしてからスクリプトタブをクリックし、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;
}
于 2014-07-07T08:25:22.007 に答える