现在的位置: 首页 > 综合 > 正文

Oracle Form開發–Form消息提示

2013年06月17日 ⁄ 综合 ⁄ 共 2354字 ⁄ 字号 评论关闭

      今天学到在系统中定义的消息不仅可以当作普通的消息来引用展示(如文章以下所有内容),还可以把它当作一个固定变量来使用  ,通过使用FND_MESSAGE.SET_NAME和FND_MESSAGE.GET。

     例如以下代码是把系统中定义的GME_TRANSACT的消息值当作button1的标签:

    FND_MESSAGE.SET_NAME('GME','GME_TRANSACT');
    SET_ITEM_PROPERTY('GME_BATCH_HEADER.button1',LABEL, FND_MESSAGE.GET);

      消息的使用,我经常看到有的同学喜欢在FORM中直接使用FND_MESSAGE.DEBUG('xxxxx');来显示错误或提示信息,实际上这是非常不正确的做法。
顾名思及DEBUG是用来调试的,并不是用来进行人机交互的友好的方式,也不符合Oracle的标准用法。
Oracle的标准用法是使用FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
一般情况下在FORM中显示出错信息使用以下代码:
FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
FND_MESSAGE.ERROR ;

在PACKAGE中显示出错信息一般使用以下代码:
FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
APP_EXCEPTION.RAISE_EXCEPTION ;
然后在EBS的应用开发者下定义中文和英文消息,然后提交请求"生成信息"来生成消息,使用这种方式可以适用于多语言和修改人机界面的提示信息,而不用去修改源程序。

下面給大家收集一下相關Oracle Form的消息提示

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.SET_NAME('GMA', 'SY_NOFUTUREDATE');
          IF NOT FND_MESSAGE.WARN THEN
                       RAISE FORM_TRIGGER_FAILURE;
          END IF;

 

5.FND_MESSAGE.QUESTION(BUTTON1 IN VARCHAR2,BUTTON2 IN VARCHAR2,BUTTON3 IN VARCHAR2,DEFAULT_BTN IN NUMBER,CANCEL_BTN IN NUMBER,ICON IN VARCHAR2)

用於自定義對話按鈕,比FND_MESSAGE.WARN要靈活多了。

例如:
FND_MESSAGE.SET_STRING(‘陳顯平測試Oracle Form的消息,’ || Chr(10) || ‘大家看一下是否成功?’);

Int_Choose:=FND_MESSAGE.QUESTION(‘確定’,null,’取消’,1,2,’NOTE’);

If Int_Choose=2 Then

            Null;

ElseIf Int_Choose=1 Then

            Null;

End If;

 

抱歉!评论已关闭.