1

我在 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;

但如果我关闭表单,控件仍会转到ELSIF按钮选择 2

4

1 回答 1

0

尝试这个:

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;
于 2016-02-18T04:16:53.070 回答