如果需要整行變色, 一個欄位寫 Set Item Property, 這樣太累了, 如果欄位又多, 更是不可能, 上網找了資料後, 整理了寫法如下

1. 先設定 Form 的 Visual Attribute, 屬性就設定 Background Color 為需要的顏色

2. 在所需要觸發的 EVEN Trigger (ex: BLOCK 的 POST_QUERY) 之下, 呼叫以下 Procedure

PROCEDURE ASSIGN_COLOR IS
CUR_ITM VARCHAR2(80);
  CUR_BLOCK VARCHAR2(80) := :SYSTEM.CURRENT_BLOCK;
  ITEMCANVAS VARCHAR2 (20);
BEGIN
CUR_ITM := GET_BLOCK_PROPERTY(CUR_BLOCK, FIRST_ITEM)
  WHILE ( CUR_ITM IS NOT NULL ) 
  LOOP 
    CUR_ITM := CUR_BLOCK || '.' || CUR_ITM;
    /* 因為沒有 Canvas 的欄位無法變更 Background Color, 所以必須要額外的判斷 */

    ITEMCANVAS := GET_ITEM_PROPERTY (CUR_ITM, ITEM_CANVAS);
    
    IF ITEMCANVAS IS NOT NULL THEN
      IF 條件1 THEN
        SET_ITEM_INSTANCE_PROPERTY(CUR_ITM, CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_RED');
      ELSIF 條件2 THEN
        SET_ITEM_INSTANCE_PROPERTY(CUR_ITM, CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_YELLOW');
      ELSE
        SET_ITEM_INSTANCE_PROPERTY(CUR_ITM, CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_NORMAL');
      END IF;
    END IF;
    
    CUR_ITM := GET_ITEM_PROPERTY(CUR_ITM, NEXTITEM)
  END LOOP;
END;

創作者介紹
創作者 Aloz 的頭像
Aloz

Aloz 的 Oracle ERP 天地

Aloz 發表在 痞客邦 留言(1) 人氣()


留言列表 (1)

發表留言
  • 牛角
  • 很有趣的function,這種視覺系的功能常常會讓
    user會覺得"你好厲害",反而其他複雜的join從沒
    人感受的出來,呵!
  • 哈哈, 沒錯, 這種功能只是讓 Use 覺得畫面很華麗, 可是實質用途並不大 :D

    Aloz 於 2010/04/07 13:27 回覆

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼