Oracle Forms 執行時,螢幕下方訊息列顯示英文系統提示,多條訊息佇列時更會彈出視窗干擾操作。如何將其替換為中文提示?筆者總結兩種解法。
Oracle Forms 定義六級訊息重要等級:
| 等級 | 含義 |
|---|---|
| 0 | 所有訊息 |
| 5 | 重申明顯條件 |
| 10 | 操作員產生程序錯誤 |
| 15 | 嘗試執行 Form 未設計的動作 |
| 20 | 觸發器或突出問題導致無法繼續 |
| 25 | 可能導致任務失敗的條件 |
| >25 | 開發人員無法壓縮的訊息 |
開發人員可壓縮的最大等級為 25,使用語法:
:SYSTEM.MESSAGE_LEVEL := '25'; -- 禁止顯示等級 ≤ 25 的系統訊息
:SYSTEM.SUPPRESS_WORKING := 'TRUE'; -- 禁止顯示處理動作時的工作訊息
限制:僅能屏蔽等級 ≤ 25 的訊息。
Oracle Forms 提供兩個觸發器:
ON-ERROR:顯示系統錯誤訊息時觸發ON-MESSAGE:顯示通知訊息(狀態/上下文資訊)時觸發在觸發器中撰寫 PL/SQL 替換英文提示。範例:
BEGIN
IF :SYSTEM.ERROR_CODE = 40202 AND :SYSTEM.ERROR_TYPE = 'FRM' THEN
MESSAGE('欄位值必須鍵入!');
BELL;
END IF;
END;
當發生 FRM-40202 錯誤,原英文 "field must be entered" 即被替換為中文 "欄位值必須鍵入!",用戶無需為陌生提示煩惱。