Я создал одно всплывающее окно в Oracle Forms (Custom 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;
но все же, если я закрою форму, элемент управления перейдет к Выбор кнопки 2, то есть ELSIF.