問題說明:
客製Form時,常常並不是一個Block裡面的Item都是Database Item,有些Item 我們是Non-DB column.
但對於這些Non-DB column 我們常常都要秀在Form Canvas上,讓User可以選擇他看得懂的值。
在設計上,Execute_qury 後我們會把這個Non-DB Value帶出(因為他不是Block DB column),
所以原則上Form是不會自動帶出的,我們必須自己code it.
而作法呢,很簡單,寫在Post-query trigger上。
然在Query all data in UI 是ok,但關閉Form時(沒有做任何變更),竟會出現”Do you want to save the changes you have made”的字樣,
該怎麼讓它不要出現呢?
下面就是..我的註記---
 
In Oracle Forms, you attach a List of Values (LOV) to a non-base table
text item (a control item). The LOV returns a value into a base table
item. When you close your form,
it will prompt "Do you want to save the changes you have made? " even no change in here.

 

<Solution> 

Add a statement below on your post-query trigger.

SET_RECORD_PROPERTY(TO_NUMBER(NAME_IN('SYSTEM.TRIGGER_RECORD')),'blockname', STATUS, QUERY_STATUS);

 

<Example> (on Post-Query Trigger)

begin
  SELECT segment1
    into :main.inventory_item
    FROM mtl_system_items_b
   WHERE organization_id = 100
     and inventory_item_id=:main.inventory_item_id;
  -- Tinalee -- Avoid "Save any change " Window Message

  SET_RECORD_PROPERTY(TO_NUMBER(NAME_IN('SYSTEM.TRIGGER_RECORD')),'MAIN', STATUS, QUERY_STATUS);

exception
    when no_data_found then
     null;
end ;

arrow
arrow
    全站熱搜

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