這個用法分為兩部分
第一部分是消息的定義,可以利用FND_MESSAGE.SET_STRING和FND_MESSAGE.SET_NAME
以下資料摘自網絡,自身加入了部分整理
1. FND_MESSAGE.SET_STRING(‘<Message>’)。
此消息一定要結合FND_MESSAGE.SHOW或FND_MESSAGE.ERROR或FND_MESSAGE.HINT或FND_MESSAGE.WARN或FND_MESSAGE.QUESTION使用才能彈出對話窗口或顯示消息。
例如:
FND_MESSAGE.SET_STRING(‘陳顯平測試Oracle Form的消息,’ || Chr(10) ||
‘大家看一下是否成功?’);
FND_MESSAGE.SHOW;
2.FND_MESSAGE.SET_NAME(‘<APP_SHORT_NAME>’,’<Message_CODE>’)
此消息也要結合FND_MESSAGE.SHOW或FND_MESSAGE.ERROR或FND_MESSAGE.HINT或FND_MESSAGE.WARN或FND_MESSAGE.QUESTION使用才能彈出對話窗口或顯示消息。
參數說明:
<APP_SHORT_NAME>:用應產品簡稱.如下圖紅色圓框:
<Message_CODE>:消息代碼。若在系統表中找不對應消息說明,則消息說明自動默認為<Message_CODE>。還有,消息代碼使用前自動轉換大寫。
為何Oracle Form要內置此函數?它是為了系統定義多語言版本。
例如:
FND_MESSAGE.SET_NAME(‘FPT’,’ORACLE_001’);
FND_MESSAGE.ERROR;
第二部分是將上面的各種定義的信息或者預定義信息進行輸出
3.FND_MESSAGE.DUBEG(‘<Message>’);
它是用於調試的,效果等同於FND_MESSAGE.SET_NAME或FND_MESSAGE.SET_STRING結合FND_MESSAGE.SHOW使用。
例如:
FND_MESSAGE.DEBUG(‘陳顯平測試Oracle Form的消息,’ || Chr(10) ||
‘大家看一下是否成功?’);
4.FND_MESSAGE.SHOW、FND_MESSAGE.ERROR、FND_MESSAGE.HINT和FND_MESSAGE.WARN的區別
FND_MESSAGE.SHOW提示的是注意消息,如下圖
FND_MESSAGE.ERROR提示的是誤錯消息,如下圖
FND_MESSAGE.HINT是顯示在表單中的狀態欄,如下圖
FND_MESSAGE.WARN提示有“確認”和“取消”二個按鈕,選擇進
下一步操作,它與FND_MESSAGE.QUESTION類似。
關於FND_MESSAGE.WARN的應用,當利用這個函數時,一定要卸載程序中,因為他的設定為,點確定就返回ture,點取消返回false;這是固定用法,然后根據返回的值,給出不同的反應
示例:
If FND_MESSAGE.WARN
Then …..--------------這里是點確定也就是返回true時發生的情況
Else ……. --------------這里是點確定也就是返回flase時發生的情況
End if ;
因為返回的是邏輯值,所以可以用 not FND_MESSAGE.WARN的用法
5.FND_MESSAGE.QUESTION
其與FND_MESSAGE.WARN的用法差別在於可以自定義按鈕的顯示名稱,同時固定后面返回1,2,3 這3個數字,根據不同的數字返回不同的情況
用法FND_MESSAGE.QUESTION
(BUTTON1 IN VARCHAR2,----第一個位置
BUTTON2 IN VARCHAR2,----第三個位置
BUTTON3 IN VARCHAR2,----中間的位位置)
如果有不用的 ,可以寫成null
用於自定義對話按鈕,比FND_MESSAGE.WARN要靈活多了。
例如:
FND_MESSAGE.SET_STRING(‘陳顯平測試Oracle Form的消息,’ || Chr(10) || ‘大家看一下是否成功?’);
Int_Choose:=FND_MESSAGE.QUESTION(‘確定’,null,’取消’);
If Int_Choose=2 Then
Null;
ElseIf Int_Choose=1 Then
Null;
End If;