• 消息字典


    1.在需要消息字典的应用框架下新建一个文件夹(也许已经存在)/d01/oracle/VIS/apps/apps_st/appl/cux/12.0.0/mesg(一般命名为mesg)

    2.

    定义消息Application Developer 职责下  Application -> Messages相关参数

    Current Message Text   (可以是带token【与参数有点类似】 的文本内容)

    3.创建消息文件  (suchas US.msb)  ApplicationDeveloper 职责下  Other -> Request  -> Run   在Submit a New Request 对话框中 点击OK 

    显示 SubmitRequest 窗口

    4.设置和显示消息

    三步

    ---将要使用的消息MYDIRECTOR放入消息栈中

    FND_MESSAGE.SET_NAME ('CUX', 'MYDIRECTORY')

    --如果消息文本【Current MessageText】中有tokenPROCEDURE】时,使用下面一句,使用文本值在把token替换掉

    FND_MESSAGE.SET_TOKEN ('PROCEDURE', 'Compiling thisflexfield');

    --显示给客户

    FND_MESSAGE.SHOW

    Ps:Form 客户端维护了一个消息栈的东西

       前两句的作用是从服务器端把显示消息传递到客户端,放在消息栈后一句的作用就是提取消息

    效果:

    其他知识

     1. FND_MESSAGE.warn

    以选择信息的方式显示给用户。

    可以选择Ok或者Cancel,返回值分别是TRUE和FALSE
    例:

    if FND_MESSAGE.warn then
    fnd_message.debug('True');
    else
    fnd_message.debug('False');
    end if;
    


    执行效果如下:
    点击OK会弹出 True
    点击Cancel会弹出 False

    IF (NOT FND_MESSAGE.WARN) THEN
    Raise FORM_TRIGGER_FAILURE;
    END IF;
    

    2. FND_MESSAGE.question
    function QUESTION(BUTTON1  in varchar2 default 'YES',
                         BUTTON2  in varchar2 default 'NO',
                         BUTTON3  in varchar2 default 'CANCEL',
                         DEFAULT_BTN   in number default 1,
                         CANCEL_BTN    in number default 3,
                         ICON            in varchar2 default 'question') 
    return number
    

     调用:

    declare
    v_result   number;
    begin
    APPS.XXFORM_ADIO_TEST_PKG.RETURN_MESSAGE;
    FND_MESSAGE.retrieve;
    v_result:=FND_MESSAGE.QUESTION('Yes','No','Cancel',null,null,'Question');
    fnd_message.debug(v_result);
    
    Example:
    FND_MESSAGE.SET_NAME(’FND’,’ATCHMT-COMMIT BEFORE INVOKING’);
    IF FND_MESSAGE.QUESTION
    (’YES’,’CANCEL’,NULL,1,2,NULL) = 2 THEN
    RAISE FORM_TRIGGER_FAILURE;
    END IF;
    

    3. FND_MESSAGE.SET_NAME设置信息:

    -- 语法:
    procedure   FND_MESSAGE.SET_NAME
    	                    (application_shortname  IN varchar2,
    	                       message_name         IN varchar2);
    


    作用:Message Dictionary获取一条信息 一般情况下在FORM中显示出错信息使用以下代码:

    FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,
    MESSAGE_NAME) ; 
            FND_MESSAGE.ERROR ;
             FND_MESSAGE.SET_NAME(’SQLAP’,’AP_PAY_MULTI_PAY_VOID’);
    


    4.fnd_message.retrieve

    作用:  取得一条数据库中的等待信息


    5.Fnd_message.set_string(value  IN  Varchar2)
         作用:将字符串放到消息栈中,


    6.FND_MESSAGE.SET_TOKEN
         作用:用值替换message的信息中的变量
         语法: 

    procedure FND_MESSAGE.SET_TOKEN
    	(token_name    IN VARCHAR2,	                                value              IN VARCHAR2
    	translate        IN boolean   default   FALSE);   
    	               REC_COUNT:= <NUMBER OF PAYMENTS>;
                   FND_MESSAGE.SET_TOKEN(’NUM_OF_RECS’,REC_COUNT);
    

     7.FND_MESSAGE.SHOW
    作用:显示信息,与 FND_MESSAGE.debug效果相同


    8.FND_MESSAGE.GET
    作用:取得在message中设置好的message信息

     

    9. FND_MESSAGE.hint
    这种方式不会弹出对话框给用户,而是显示在左下脚的状态栏上面


    10.FND_MESSAGE.error

    以Error信息的方式显示给用户

     

    示例一:弹出消息窗口,等待用户选择后进行下一步的处理;

    fnd_message.set_string('该物料多发和欠发的物料总成本,占物料需求总成本的比重,' ||
    chr(10) || '已经超过预设允差!' ||
    chr(10) || 
    chr(10) ||' 是否继续?');
    v_choose := fnd_message.question('确定', NULL, '取消', 1, 3,'NOTE');
    IF v_choose = 3 THEN
    RETURN;
    ELSIF v_choose = 1 THEN
    Your Code;
    End if;
    

    要点:
    1
    chr(10)代表分行;
    2
    fnd_message.question默认为Yes,No,Cancel,如果不要其中一项就用Null替代;

     

    示例二:弹出错误提示窗口

    Fnd_Message.Set_Name('FND','日期不能为空!');
    Fnd_Message.Error;
    Raise Form_Trigger_Failure;
    


     

     



     

     


     

  • 相关阅读:
    如何编写高质量的VB代码(转自雪中漫步的专栏)
    写好软件的75条(转)
    .NET在SQL Server中的图片存取技术(转)
    股票基础知识
    ActiveX组件及其注册
    面试之中企动力
    海量数据库的查询优化及分页算法方案(转)
    什么是Ajax(转)
    VB.Net2005使用windows media player 初探
    done sonatus 无人车startup阴区区烙印
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299444.html
Copyright © 2020-2023  润新知