2012-08-06 44 views
2

我在APEX中有一個報告,其中顯示了兩個表的JOIN。兩個表都有一個值,例如電話號碼。如果這兩個電話號碼不匹配,我希望該行被高優先處理。根據列比較APEX hightlight行

我看着Actions> Format> Highlight中的突出顯示選項,但似乎我只能將列值與特定值進行比較而不是另一列。

我對APEX很新,所以我可能會錯過一些明顯的東西!我已閱讀其他問題和答案,但他們似乎正在處理更復雜的事情。他們談到製作一個看不見的專欄並改變這個專欄的價值,但我不確定我會如何做到這一點。

感謝您的幫助!

+0

正如我所提到的旅館第二段我不知道如何:造型從功能在頭隔開)如風格標籤?比較2行,只有1行到一個設定值 – Chro 2012-08-06 11:53:52

回答

2

在查詢中創建一個僞列來標記感興趣的記錄。然後與該標誌比較:

SELECT a.phone, b.phone 
     ,CASE WHEN a.phone = b.phone THEN 1 ELSE 0 END AS match 
    FROM a, b 
    WHERE a.id = b.id 
3

您無法在ir突出顯示的每行中比較另一列。所以要麼輸出HTML通過您想要格式化的列的查詢,要麼使用JavaScript /動態操作。

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"); 
    }; 
}); 

這將亮點類添加到細胞telephone1它們與同一行中的telephone2不同。

在這兩種情況下,我曾與一個班,所以你必須提供。 (當然,你可以在JS使用的CSS(),但我喜歡的造型從功能分隔) 如風格標籤頭:

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

這使得無公害SQL,JavaScript的無造型,和CSS中的樣式。

+0

謝謝你的優秀帖子,它對我來說肯定會對我有用,但是暫時格倫的回答對我來說是最簡單的。 。 – Chro 2012-08-06 13:03:33

0

我偶爾從搜索中找到了這個解決方案,首先感謝您投入這個開發者的時間。我把你一路追到:

「在這兩種情況下,我都與一個班級一起工作,所以你也必須提供這個功能(當然,你可以在js中使用.css(),但是我喜歡

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

在哪裏,你會在頂點「提供」此再次感謝,