2012-08-30 31 views
1

我在Birt中使用動態文本。我想在一行顯示一個句子,但如果它太寬,它會顯示兩個或更多。當句子寬度過寬時,是否有動態減小字體大小的方法?動態更改Birt中的字體大小

謝謝你的幫助。

回答

2

首先選擇你的單元格,然後單擊腳本選項卡上,有從下拉菜單中選擇的OnRender並把這個代碼
this.getStyle()。fontSize的這使您能夠動態改變字體大小而呈現頁...
乾杯..

+1

'this.getStyle()。fontSize'讓我設置字體大小。但是如何檢測我的句子是否顯示在多行上? –

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; 
}