1

Oracle Forms で 1 つの 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