【问题标题】:Oracle Forms- 'FND_MESSAGE' issueOracle Forms - 'FND_MESSAGE' 问题
【发布时间】:2016-05-27 22:20:05
【问题描述】:

我在 Oracle Forms 中创建了一个 POPUP(自定义 PLL - Oracle EBS R12)

fnd_message.set_name ('XX', 'CASCADE_SHIPPING_METHOD');
         --    fnd_message.show;
         n_button_selection :=
            fnd_message.question ('Yes',
                                  'No',
                                  '',
                                  1,
                                  2,
                                  3);
 
 
IF n_button_selection = 1
         THEN
             Procedure1();
         ELSIF n_button_selection = 2
         THEN
             Procedure2();
         ELSE
            NULL;
         END IF;

此代码工作正常但是,如果用户关闭表单(通过单击“X”标记),则执行 ELSIF 条件并调用过程2。我希望控件转到 ELSE 并且什么也不做。 请帮忙。

我将代码修改为

 fnd_message.set_name ('XX', 'CASCADE_SHIPPING_METHOD');
      
         n_button_selection :=
            fnd_message.question ('Yes',
                                  'No',
                                  'Cancel',
                                  1,
                                  2,
                                  3);

         --If user select "Yes" option to cascade, then enter inside if and call the proc to cascade

         IF n_button_selection = 1
         THEN
          MESSAGE('Pressed Yes-For Lines Cascading');
          shipping_method (l_header_id,
                            ship_method,
                           'Lines');
         ELSIF n_button_selection = 2
         THEN
         MESSAGE('Pressed No-For Header Cascading');
            shipping_method (l_header_id,
                              ship_method,
                               'Header');
         ELSE
         	MESSAGE('Inside ELSE Condition');
            NULL;
         END IF;

但如果我关闭表单,控件仍会转到 Button Selection 2,即 ELSIF。

【问题讨论】:

    标签: oracle oracle11g oracleforms oracle-ebs


    【解决方案1】:

    试试这个:

    fnd_message.set_name ('XX', 'CASCADE_SHIPPING_METHOD');
             --    fnd_message.show;
             n_button_selection :=
                fnd_message.question ('Yes',
                                      'No',
                                      'Cancle',
                                      1,
                                      3);
    
    
    IF n_button_selection = 1
             THEN
                 Procedure1();
             ELSIF n_button_selection = 2
             THEN
                 Procedure2();
             ELSE
                NULL;
             END IF;
    

    【讨论】:

    • 您好 Vinish,感谢您的回复,将尝试此方法并让您知道它是否有效。再次感谢您的建议。
    • 请看我的更新 .. 实际上它又去了 ELSIF。我将 IF 条件更改为 CASE 。仍然,如果我们点击 X,它会转到 CASE 2
    • 嗨,我再次编辑了答案,试试那个。实际上在cancle参数之后,1是默认ok按钮,3是默认cancle按钮,不需要其他参数,因为它是图标。
    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2011-07-26
    • 2021-10-16
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多