close
在很多時候, Oracle 標準 Form 很難滿足我們的需要, 最常遇到的就是權限控制, 好比說 Receipt, 在同一個畫面可以收 PO, 也可以收 RMA, 如果對公司而言, 這兩種收料是分屬於不同的單位, 那一定要對標準 Receipt 畫面做客製.

當然, 你也可以客製 Oracle Form, 但是客製標準畫面還是最後的選擇, 這時候 Personalize 就是我們的好朋友

- 如何進入 Personalize 的編輯畫面
1. 開啟需要寫 Personalize 的 Form
2. 點選視窗上方的 Help > Diagnostics > Custom Code > Personalize
3. 輸入 Apps 的密碼

- 畫面解釋
*最上方
1. Function Name
2. Form Name
3. Debug Mode :
    Off : 關閉 Debug Mode
    Step-by-Step : 當所寫的 Custom Code 有問題, 可使用此模式偵錯
    Show Debug Messages : 沒用過........

* 中間
1. Seq : 序號, 執行順序
2. Description : 寫給自己看的
3. Level :
    Function : 只有在此 Function Name 生效
    Form : 只是要這個 Form, 就算掛成不同的 Function 也會生效
4. Enabled : 生效與否

* 下方
1. Condition & Actions : 重點, 後面再說明
2. Context : 可設定要在什麼情況下生效
    Industry / Site / Responsibility  / User

- Condition
1. Trigger Event : 觸發的事件, 當什麼情況發生時, 會啟動該 Custom Code, 需配合下方的 Trigger Object
    WHEN-NEW-FORM-INSTANCE : 當 Form 開啟時, 無需指定 Trigger Object
    WHEN-NEW-BLOCK-INSTANCE : 當進入 Trigger Object 指定的 Block 時觸發
    WHEN-NEW-RECORD-INSTANCE : 當進入 Trigger Object 指定的 Record 時觸發
    WHEN-NEW-ITEM-INSTANCE : 當進入 Trigger Object 指定的 Item 時觸發
    WHEN-VALIDATE-RECORD : 當 Trigger Object 指定的 Block 存檔時觸發
    MENU1~15 : 進階應用
    SPECIAL1~45 : 進階應用

    * 雖然在畫面上 Oracle 有註明 : You can enter additional event name. 但是也不是說加就加, 目前只有試出 WHEN-BUTTON-PRESSED, 而且限制很多, 所以, 可能看看就好......

2. Trigger Object : 觸發的物件, 可直接用 LOV 挑選

3. Condition : 當 Event 與 Object 觸發到時, 還可以在 Condition 多做判斷, 內容只需填寫 SQL 語法 WHERE 之後的部份. 如果需要用到畫面的欄位, 可使用下方的 Insert Item Value (只能選 Value) 或 Insert 'Get' Expression (可選擇多種的屬性). Condition 裡也可套用 SQL Function, 例如 :

Z_OM_PKG.ZOMR001_OQC_PASS(:DLVY.NAME)=1 AND Z_OM_PKG.ZOMR001_TRACKINGINFO_PASS(:DLVY.NAME)=1

4. Processing Mode : Not in Enter-Query Mode / Only in Enter-Query Mode / Both

5. Context : 設定只在哪些 Level 下生效. Level 有 : Industry / Site / Responsibility / User

- Actions
精華就在此, 開另外一篇寫好了
arrow
arrow
    全站熱搜

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