Gracias a todos por la ayuda,, al final lo he solucionado poniendo el siguiente codigo:
INITIALIZATION.
AT SELECTION-SCREEN ON EXIT-COMMAND.
ok_code = sy-ucomm.
START-OF-SELECTION.
IF p_dcnt IS NOT INITIAL. " Si seleccionamos la primera opcion.
* Cargo la segunda pantalla de seleccion
PERFORM pantalla_select_sin_bono.
* Lanzo la ALV sin bonos.
PERFORM detalles_sin_bono.
ELSEIF p_rescnt IS NOT INITIAL. " Si seleccionamos la segundas opcion.
* Cargo los datos para mostrar en el resumen.
PERFORM cargar_resumen_estadisticas.
* Lanzo el resumen
PERFORM lanzar_resumen.
ELSEIF p_dcntb IS NOT INITIAL.
* Cargo la segunda pantalla de seleccion
PERFORM pantalla_select_con_bono.
* Se lanza la ALV de contratos sin bonos
* Llamamos al PBO de la pantanlla para que lance la carga y mostrar la alv.
PERFORM detalles_con_bono.
ELSEIF p_rcntb IS NOT INITIAL.
* Cargo los datos para mostrar en el resumen.
PERFORM cargar_res_bono.
* Lanzo la ALV con los resumenes de los bonos.
PERFORM lanzar_resumen_bonos.
ENDIF.
Parece que la clave para manejar las ventanas estaba en poner el sy-ucomm despues del AT SELECTION-SCREEN ON EXIT-COMMAND y ahi lo guardo en ok_code y entre el STAR-OF-SELECTION.
Gracias a todos. Un saludo
|