我有一个tabular form
,我希望以不同的颜色显示列delta的值。 Delta是column1和column2 之间的差异,我正在动态生成。
如果delta值为>0
,颜色没有变化,如果delta为<0
,则值应为红色,如果值为0
则为绿色。
我正在使用oracle APEX VERSION:4.2.1
答案 0 :(得分:1)
前段时间我遇到了类似的问题,我所做的是:
首先声明一个css类
.cellColored{background-color:#ff0000 !important}
/*notice the !important attribute, if not declared the browser will use the apex css definition*/
然后转到表格形式定义 - &gt;区域定义 - &gt;属性 在静态ID add和id中,如下所示:
tab_form_id
然后转到表格形式定义中的报告属性,并在字段&#39;元素属性&#39;中编辑要绘制的列。添加:class='classDelta'
然后运行一个javascript函数将cellColored类设置为符合条件的表格单元格,如下所示:
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';
}
}
}