这个用法分为两部分
第一部分是消息的定义,可以利用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;