2

2 つのテーブルの JOIN を示す APEX のレポートがあります。両方のテーブルには、電話番号などの値があります。2 つの電話番号が一致しない場合は、その行を強調表示します。

Actions>Format>Highlight の強調表示オプションを見ましたが、列の値を特定の値とのみ比較でき、別の列は比較できないようです。

私は APEX に非常に慣れていないので、明らかな何かが欠けている可能性があります! 他の質問と回答を読みましたが、より複雑なことを扱っているようです。彼らは、目に見えない列を作成し、その値を変更することについて話しましたが、どうすればよいかわかりません。

助けてくれてありがとう!

4

3 に答える 3

3

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のスタイルが可能になります。

于 2012-08-06T12:13:41.250 に答える
0

私は検索からこの解決策に出くわしました、そしてまず第一にあなたがこの答えに入れてくれてありがとう。私はあなたをずっとフォローしました:

「どちらの場合も、クラスで作業したので、それも提供する必要があります。(確かに、jsでは.css()を使用できますが、機能から分離したスタイルが好きです)例:頭のスタイルタグ:

<style type="text/css">
.highlight{
 background-color: yellow;
 color: purple;
 }
 </style>"

これをApexのどこに「提供」しますか?再度、感謝します、

于 2013-01-08T18:22:02.390 に答える