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に移動します。