Пример с hiredate на emp: я собираюсь покрасить ячейки, которые> 11000. (sysdate-hiredate колеблется от 10k до 12k). Вы можете использовать поле, которое вы вычисляете в запросе, или поле, которое вы заполнили с помощью какой-либо процедуры, не имеет значения:)
select empno, ename, job, mgr, hiredate, sal, comm, deptno,
trunc((trunc(sysdate)-hiredate)) to_colour_or_not
from emp
Вам понадобятся 2 динамических действия для раскраски строк в отчетах: действие при загрузке и после обновления. Если вы пропустите после обновления, строки не будут окрашены, например, после нумерации страниц, из-за частичного обновления страницы.
Динамическое действие одно: после обновления для региона:
Истинное действие:
$("td[headers='TO_COLOUR_OR_NOT']").each(function(){
alert($(this).text());
if(parseInt($(this).text()) > 11000){
$(this).css({"background-color":"red"});
};
});
Пример использования одного столбца в качестве условия для окрашивания другого столбца. Всегда будьте осторожны с тем, что вы тестируете и для чего вы это тестируете! Например, столбец hiredate является датой, при необходимости обязательно обращайтесь с ней! Также обратите внимание: если ваш формат даты установлен как ДД-МЕС-ГГГГ, то вам придется сопоставлять число с месяцем (JAN = 1, DEC = 12)! Может быть, это вариант, чтобы изменить формат даты для этого столбца даже ...
$("td[headers='HIREDATE']").each(function(){
var i_date = $(this).text();
//date format = MM/DD/YYYY
//be carefull with date formats.
//in my case, i know my date format and know it won't change
//my code is far from a complete parse of possible date values!
var dMonth = i_date.substring(0, 2),
dDay = i_date.substring(3, 5),
dYear = i_date.substring(6);
var d = new Date(dYear, dMonth, dDay, 0, 0, 0, 0);
if(d.getFullYear() <= 1981){
//we are looping over TD elements. I want to colour the
//column ENAME in red when the condition is true for this row.
//so, $(this) = TD element we loop with. parent = TR element,
//then back to the children of the row
$(this).parent().children("td[headers='ENAME']").css({"background-color":"red"});
};
});
Второе динамическое действие: под нагрузкой
В качестве истинного действия используйте тот же код, что и в действительном действии для обновления.
С помощью JS вы можете делать все, что захотите: вам просто нужно знать, какие клетки вы хотите нарисовать. Используйте [headers='']
, чтобы выбрать нужные ячейки ( jquery selectors ).
Вместо css () вы можете использовать, например, addClass, если это больше, чем вы хотели бы.
Имейте в виду: ИК идут со встроенными действиями при наведении мыши. Это приводит к тому, что окрашенные ячейки не отображаются в своем цвете при наведении мыши. Если вы не хотите этого, вам понадобится другое динамическое действие для событий mouseover / mouseleave и нацеливание на эти необходимые ячейки.
Что касается запланированных заданий: проверьте DBMS_JOBS .