Como sabemos, en los dynpros no existen controles para crear los tan necesarios Selection-Screen...Felizmente, podemos crearlos desde un programa ABAP.
REPORT ZPRUEBA_ATG.
TABLES: SPFLI.
SELECTION-SCREEN BEGIN OF SCREEN 0101 AS SUBSCREEN.
SELECT-OPTIONS:
CARRID FOR SPFLI-CARRID.
SELECTION-SCREEN END OF SCREEN 0101.
START-OF-SELECTION.
CALL SCREEN 100.
Simplemente, creamos un SELECTION-SCREEN de tipo SubScreen.
Y en la transacción SE51, creamos un control SubScreen...
En el flujo lógico debemos colocar lo siguiente:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
CALL SUBSCREEN: SUBSCREEN_TEST INCLUDING SY-REPID '0101'.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
CALL SUBSCREEN: SUBSCREEN_TEST.
Finalmente, el programa quedaría así...
Saludos,
Blag.
6 comments:
Muy bueno!
Te he robado el código, gracias por compartirlo!
Saludos desde Argentina.
Alejandro
Me alegra mucho que te haya sido útil -:)
Saludos,
Blag.
Gracias por el Codigo, muy util.
Una pregunta,
cuando usaba parametros en mi Dynpro, capturaba los datos que se ponian en ellos con el codigo:
---------------------------
PROCESS AFTER INPUT.
MODULE exit_cero.
FIELD: scarr-carrid,
scarr-carrname.
---------------------------
Como hago ahora para poder capturarlos los datos de los parametros y select-options incluidos en la SUBSCREEN??
Los parametros y select-options los llamas igual como si estuvieran en tu ventana principal, el hecho de que esten en la SubScreen no afecta mucho...
Saludos,
Blag.
He hecho la subscreen tal y como se indica en esta guía. Intenté colorac varios select-options en la subscreen. Funciona pero no para más de un rango en cada select-option. Este seria el código donde declaro la subscreen:
"TOP del reporte
SELECTION-SCREEN BEGIN OF SCREEN 220 AS SUBSCREEN .
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS so_usr FOR zrhtt_reg_usrima-id_usuario.
SELECT-OPTIONS so_dni FOR zrhtt_reg_usrima-dni.
SELECT-OPTIONS so_cargo FOR zrhtt_reg_usrima-cargo.
SELECT-OPTIONS so_proy FOR zrhtt_tar_usrima-proyecto.
SELECT-OPTIONS so_nreq FOR zrhtt_tar_usrima-nro_req.
SELECT-OPTIONS so_sred FOR zrhtt_tar_usrima-status_redmine.
SELECT-OPTIONS so_pora FOR zrhtt_tar_usrima-porc_avance.
SELECT-OPTIONS so_fech FOR zrhtt_tar_usrima-fecha.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 220.
La subscreen se genera automáticamente. Le cree un espacio en la 200:
"SCREEN 200
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SC220 INCLUDING sy-repid '220'.
MODULE STATUS_0200.
PROCESS AFTER INPUT.
CALL SUBSCREEN SC220.
MODULE USER_COMMAND_0200.
El SUBSCREEN AREA que cree en la 200 se llama SC220.
Imanol:
Este post es de hace 7 años...y no hago nada de ABAP desde hace casi 4 años...así que la verdad no creo que pueda ayudarte -:(
Asumo que como dices en tu comentario...Funciona pero no para más de un rango en cada select-option
Esto debe ser una limitación del mismo subscreen...
Saludos,
Blag.
Development Culture.
Post a Comment