2016-01-18 61 views
2

我有一個tabular form,我想在其中顯示不同顏色的列增量值。 Delta是我動態生成的column1和column2之間的區別。Oracle APEX:以表格形式列中的值顏色

如果差值爲>0顏色沒有變化,如果增量是<0值應爲紅色其他綠色,如果值是0

我使用Oracle APEX版本:4.2.1

+0

我可以給你在CSS JavaScript的一個例子,你可以發佈列名? – Typo

+0

列名是'delta',我需要顏色變化。 –

+0

是輸入類型嗎? – Typo

回答

1

類似的問題hapened我前一段時間,我所做的就是:

首先聲明一個CSS類

.cellColored{background-color:#ff0000 !important} 

/*notice the !important attribute, if not declared the browser will use the apex css definition*/ 

然後去你的表格形式定義 - >區域定義 - >屬性 在靜態ID中添加和標識是這樣的:

tab_form_id 

然後去你的表格形式定義報告Atributes和編輯您要畫柱,在該領域「元素屬性」補充一點:class='classDelta'

然後運行一個JavaScript函數的cellColored類ASIGN表適合的標準,這樣的細胞:

function paintCells(){ 
    var tabForm = document.getElementById('tab_form_id'); 
    var cells = tabForm.getElementsByTagName('td'); 
    for(var i = 0; i < cells.length; i++){ 
     if((cells[i].headers === 'DELTA') && (Number(cells[i].getElementsByClassName('classDelta')[0].value) < 0)){ 
          cells[i].className = cells[i].className + ' cellColored'; 
     } 
    } 
} 

通知的cells[i].headers === 'DELTA'線,這應該是在報表中定義的列的名稱。

編輯

以上是輸入型的元素,只讀列,您需要使用此功能:

function paintCells(){ 
    var tabForm = document.getElementById('tab_form_id'); 
    var cells = tabForm.getElementsByTagName('td'); 
    for(var i = 0; i < cells.length; i++){ 
     if((cells[i].headers === 'DELTA') && (Number(cells[i].innerHTML) < 0)){ 
          cells[i].className = cells[i].className + ' cellColored'; 
     } 
    } 
} 
+0

當值爲'<0'時試過但沒有改變數值的顏色 –

+0

這對我很有用,因爲你在計算增量值後應該運行這個值。 – Typo

+0

我把這個函數放在'Javascript'頁面組件和CSS類中,但是仍然保持顏色不變。 我在哪裏做錯了? –

相關問題