在Oracle的FORM中對不同的狀態採取不同的顏色顯示

來源:互聯網
上載者:User
例如:有一張工資單,當某個員工的工資超過5000時,使用者需要系統能用紅色來指示員工的姓名和工資.
實現方法:
我們新做一張form,按常規建好block和item並建一個visual attributes v1(background color=red).在相應的block level上建立一個post-query trigger並編寫代碼如下:
--如果工資(block.item1)大於5000
if :block.item1 > 5000 then
--指示出相應的員工姓名(block.item2)
set_item_instance_property('block.item2',To_Number(:SYSTEM.TRIGGER_RECORD),VISUAL_ATTRIBUTE,'v1');
--指示出相應的工資(block.item3)
set_item_instance_property('block.item3',To_Number(:SYSTEM.TRIGGER_RECORD),VISUAL_ATTRIBUTE,'v1');
end if;

 

 

 

-----總結如下:

set_item_instance_property,display_item兩個子程式

1、set_item_instance_property,display_item 

  兩個內建子程式都可以用來設定項中某行的

    相關屬性(同項中的其餘行屬性會保持原來的

    屬性不變),如顏色。

      only changes the instance of that item that belongs

       to the block's current record.

      If you want to change all instances of an item in

       a multi-record block, use SET_ITEM_PROPERTY .

2、二者區別:

  a、display_item是較早版本中出現的,而   

             set_item_instance_property是較晚版本中才

       有的(6i以後的應都有)。

  b、display_item有一個特性,就是當通過其改變

       後的屬性,會延伸到與其同步的項上.即與

       其同步的項也跟著變了.

       但set_item_instance_property已取消了此特性.

            DISPLAY_ITEM has the side-effect of also

             changing the appearance of any items that

             mirror the changed instance.

             SET_ITEM_INSTANCE_PROPERTY does

               not change mirror items.

             (哦,原來mirror items 有同步項的意思)

   c、如硬是還要找個區別的話,就是調用時所需

     參數有所不同,一個需要提供記錄號,一個不

     用。

   其實根據這點可以猜測到

            set_item_instance_property比display_item可能可

     以使用的地方要多要廣!

          至於到底哪些地方set_item_instance_property可

      用而display_item不可用。這個留給自己或大家

      有時間的時候再去研究下

3、另提一下set_item_property這個內建子程式。

  通過這個內建子程式設定的是整個項(即某項的

    所有記錄)的屬性。

      另發現當利用此內建子程式改變顏色時,顏色值

   應是r(紅)、g(綠)、b(藍)三原色的組合,而不是在屬

   性面版裡直接選擇顏色,

      然後返回到顏色屬性那欄裡的值(即使看起來也

   是rgb組合)。否則將發現設定不成功(但不報錯)。

     如:紅色為:R255G0B0 (而不是RED)   酸橙色

   為:R153G204B0。

    具體要找某個顏色的rgb組合代碼可藉助於WORD

    中的顏色自訂功能得出

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.