2009-11-06 51 views
2

我想問如何在BIRT中添加一個計算列來計算它的單詞表示的數字? (例如:100「一百」) 因此,在我的數據集,我可以有保存作爲計算列的BIRT數詞

我是新的字符串在BIRT 希望有一個或兩個指針我

回答

2

我列我知道這是一個相當古老的帖子,但如果你仍然感興趣,這是我該怎麼做:

添加一個腳本或罐子,其中包含一個函數/方法,將數字轉換爲文本表示。爲此,例如,創建一個server-side-utilities.js文件,並在「資源管理器」選項卡中添加資源。然後,在報表本身的「屬性編輯器」中,單擊「資源」選項卡並添加該JS文件。

然後編輯JS文件以包含將數字轉換爲文本並保存的功能。然後在數據集對話框中添加一個計算列,對其進行命名,將數據類型設置爲字符串,並將表達式設置爲調用已定義的函數,並將相關列的值傳遞給函數。 convertNumberToText(row["NUMERIC_COL"])

部分實現的convertNumberToText()可能是:

function convertNumberToText(number) 
{ 
    var text; 

    switch (number) 
    { 
    case 1: 
    { 
     text = "One"; 
     break; 
    } 
    default: text = "Unsupported number"; 
    } 

    return text; 
} 
0

其實,我要提供另一種解決方案,儘管這個問題有一個公認的答案。

在數據庫本身的線沿線的創建中的轉換表

number as_one  as_first 
------ ----------- ------------ 
    1 one   first 
    2 two   second 
    99 ninety-nine ninety-ninth 

,只需使用一個查詢(或子查詢或隱式/顯式連接)來獲取你的號碼」的文本值重新感興趣。

這極大地簡化了代碼在客戶端上,代價是最小的存儲空間和一些表設置。