irハイライトの行ごとに別の列を比較することはできません。したがって、フォーマットする列のクエリを介してhtmlを出力するか、javascript/dynamicアクションを使用します。
SQL:
SELECT CASE WHEN a.phone = b.phone THEN htf.escape_sc(a.phone)
ELSE '<div class="highlight">'||htf.escape_sc(a.phone)||'</div>'
END AS phone_highlight
FROM a, b
WHERE a.id = b.id
(htmlを出力するときに特殊文字をエスケープします!)さらに、列を「標準レポート列」として表示するように設定します。これにより、htmlがレンダリングされ、エスケープされなくなります。
個人的には、javascriptを使用します:
動的アクション、更新後、javascriptを実行し、「ページの読み込み時に起動」をチェックします。
$("td[headers='TELEPHONE1']").each(function(){
var lTest = $(this).siblings("[headers='TELEPHONE2']").text();
if($(this).text()!= lTest){
$(this).addClass("highlight");
};
});
これにより、同じ行のtelephone2とは異なるtelephone1のセルにハイライトクラスが追加されます。
どちらの場合も、私はクラスで作業したので、それも提供する必要があります。(確かに、jsで.css()を使用することもできますが、機能から分離するスタイリングが好きです)たとえば、頭のスタイルタグ:
<style type="text/css">
.highlight{
background-color: yellow;
color: purple;
}
</style>
これにより、汚染されていないsql、スタイリングなしのjavascript、およびcssのスタイルが可能になります。