Leer Parametros de Dynpro.
Esto me funciona para recopilar los parámetros de la dynpro para luego poder usarlos en código donde aun por cuestiones de eventos no son accesibles.
Como ejemplo de uso tenemos, cuando queremos usar lo que escribió el usuario como fuente para ayudas de Busquedas.
Este es el Código.
Supongamos que tengamos estos parámetro de entrada en nuestro Reporte.
INITIALIZATION.
repid = sy-repid. “ importante para saber de que pantalla y dynpro debo tomar los parámetros.
dynpro = sy-dynnr.
PARAMETERS: p_ani TYPE p1771-ayear OBLIGATORY VALUE CHECK,
p_per TYPE p1771-perid OBLIGATORY VALUE CHECK,
p_mod TYPE objid,
p_sec TYPE objid ,
p_eve TYPE objid .
Y tenemos que desarrollar una ayuda de búsqueda para uno de ellos pero necesitamos los datos introducidos con anterioridad por el usuario
Entonces hacemos el llamado
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_mod.
PERFORM ayuda_modulos.
Y entonces dentro de el PERFORM ayuda_modulos. Hacemos el llamado a la subrutina FORM leer_campos_de_pantalla .
Y listo tenemos el problema resuelto.
*&---------------------------------------------------------------------*
*& Form LEER_CAMPOS_DE_PANTALLA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM leer_campos_de_pantalla .
DATA BEGIN OF dynpfields OCCURS 1.
INCLUDE STRUCTURE dynpread.
DATA END OF dynpfields.
dynpfields-fieldname = 'P_MOD'.
APPEND dynpfields.
dynpfields-fieldname = 'P_ANI'.
APPEND dynpfields.
dynpfields-fieldname = 'P_PER'.
APPEND dynpfields.
dynpfields-fieldname = 'P_SEC'.
APPEND dynpfields.
dynpfields-fieldname = 'P_EVE'.
APPEND dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = repid
dynumb = dynpro
TABLES
dynpfields = dynpfields
EXCEPTIONS
OTHERS.
READ TABLE dynpfields WITH KEY fieldname = 'P_PER'.
p_per = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_ANI'.
p_ani = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_MOD'.
p_mod = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_SEC'.
p_sec = dynpfields-fieldvalue.
READ TABLE dynpfields WITH KEY fieldname = 'P_EVE'.
p_eve = dynpfields-fieldvalue.
ENDFORM. " LEER_CAMPOS_DE_PANTALLA
Éxito amigos…
Comentarios