Oracle - Exit Form sin permiso

 
Vista:

Exit Form sin permiso

Publicado por Sergio (48 intervenciones) el 04/06/2007 12:25:10
Hola a todos, mi problemilla es el siguiente. Hago una llamada a una pantalla desde un procedimiento y cuando va invocar a la pantalla se sale de la aplicación. El código es sencillo, y sería el siguiente:

PROCEDURE pr_1 IS
pl_id ParamList;
i number;
j number;
BEGIN
select count(*)
into i from tabla where x = y;
if i > 0 then
set_alert_property('sino',alert_message_text,'Existen '||i||' ocurrencias.'||chr(10)||
'¿ Deseas ir a la pantalla ahora ahora ?');
j:=SHOW_ALERT('sino');
if j = ALERT_BUTTON1 then
pl_id := Create_Parameter_List('l');
Add_Parameter(pl_id, 'modo', TEXT_PARAMETER,'R');
Add_Parameter(pl_id, 'sel', TEXT_PARAMETER,'S');
call_form('pantalla', hide, do_replace, no_query_only, pl_id);
destroy_parameter_list('l');
end if;
end if;
END;

Con este procedimiento tal cual lo vemos, al pulsar el botón de Yes o Sí, se sale de la aplicación por completo. Lo curioso es que si escribo un mensaje en pantalla despues del set_alert_property entro en la pantalla sin problemas. Por ejemplo:

PROCEDURE pr_1 IS
pl_id ParamList;
i number;
j number;
BEGIN
select count(*)
into i from tabla where x = y;
if i > 0 then
set_alert_property('sino',alert_message_text,'Existen '||i||' ocurrencias.'||chr(10)||
'¿ Deseas ir a la pantalla ahora ahora ?');
MSP('HOLA');
j:=SHOW_ALERT('sino');
if j = ALERT_BUTTON1 then
pl_id := Create_Parameter_List('l');
Add_Parameter(pl_id, 'modo', TEXT_PARAMETER,'R');
Add_Parameter(pl_id, 'sel', TEXT_PARAMETER,'S');
call_form('pantalla', hide, do_replace, no_query_only, pl_id);
destroy_parameter_list('l');
end if;
end if;
END;

Con ese mensaje ya lo tengo todo solucionado. Alguna idea de porqué me está pasando esto????

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Exit Form sin permiso

Publicado por Snorre (2 intervenciones) el 13/06/2007 10:26:22
Podría ser un error de sincronismo. De ahi, que cuando le haces parar con un mensaje vaya perfectamente.

Cambia tu mensaje por la orden siguiente:

set_alert_property('sino',alert_message_text,'Existen '||i||' ocurrencias.'||chr(10)||
'¿ Deseas ir a la pantalla ahora ahora ?');
SYNCHRONIZE;
j:=SHOW_ALERT('sino');

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar