2016-09-26 26 views
0

這是我的第一個問題,所以請耐心等待。 :-)BIRT:使用樣式或腳本的報告中的幾個對象的高光

我正在使用BIRT(ECLIPSE)創建一個包含多個表的報告。我希望這些表格中的許多單元格基於相同的規則(例如,值等於減5)具有相同的高亮規則(彩色背景,喜歡格式化等)。理想情況下,我想在其他報告中也使用這些突出顯示規則,但這並不重要。

如果可能的話,我想創建一個STYLE,其中包含突出顯示規則(因爲我可以簡單地將它應用到我需要的任何地方),但我無法弄清楚如何填寫條件框,因爲名稱的適用對象會有所不同。

如果一個STYLE是不可能的或不推薦,我也很樂意循環使用腳本表,但我不知道如何做到這一點。

在此先感謝!

約翰內斯

回答

0

是的,你可以使用CSS來寫一個樣式,然後使用有條件的情況適用jQuery的

// jQuery 
    if($('selector').val() == -5){ 
     $('selector').addclass('cssClass1'); 
    }else{ 
     $('selector').addclass('cssClass2'); 
    } 


/* CSS */ 
    .cssClass1{color: red;} 
    .cssClass2{color: blue;} 

這應該工作

+0

非常感謝您的快速響應!不幸的是我在導入時遇到這個錯誤信息: [4:11]遇到「$」。期待以下之一:「}」「;」 此外,它應用於數據字段時似乎沒有做任何事情。 – Johannes

+0

你需要將它應用於一個事件函數,例如 $(「.target」).change(function(){{0}}之前被粘貼的*/ }並且你需要添加jquery庫。不是太用於Eclipse(java),所以我不能告訴你比我說的更多,我認爲,對不起。嘗試谷歌如何插入一個Java文件中的jquery函數 – JoelBonetR

0

如果有人遇到這個問題在未來,這是我如何解決它:

首先,我創建了一個稱爲highlight_1的函數:

function highlight_1(Feld) { 
    if (Feld.getValue() <= -0.75) { 
     Feld.getStyle().backgroundColor = "#FF8040" 
     Feld.getStyle().color = "Black"; 
    } else if (Feld.getValue() <= -0.25) { 
     Feld.getStyle().backgroundColor = "#FFFF80" 
     Feld.getStyle().color = "Black"; 
    } else if (Feld.getValue() >= 0.03) { 
     Feld.getStyle().backgroundColor = "#97D9A2" 
     Feld.getStyle().color = "Black"; 
    } else { 
     Feld.getStyle().backgroundColor = "#00874E" 
     Feld.getStyle().color = "White"; 
    } 
} 

我再調用這個函數像這樣的的OnRender事件的每個元素:

highlight_1(this) 

這不正是我腦子裏想的,但它的作品,而不需要爲每個新元素太多精力。