Autor Tema: Recuperar valor de una dynpro  (Leído 9607 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Recuperar valor de una dynpro
« en: 07 de Mayo de 2008, 09:28:11 am »
Y otra pregunta mas.  ;D ;D

Tengo un module pool y necesito recuperar un valor de un campo de una dynpro.

¿Alguna sugerencia?

Muchisimas gracias por vuestra ayuda.



Desconectado Nuria

  • Usuario Completo
  • ***
  • Mensajes: 90
    • Ver Perfil
Re: Recuperar valor de una dynpro
« Respuesta #1 en: 07 de Mayo de 2008, 11:35:03 am »
Hola, para recuperar valores de dynpros puedes utilizar este FORM.

Código: [Seleccionar]
* Recuperamos el valor de la pantalla.
  PERFORM selscn_leer_valor_de_pantalla
                              USING sy-repid
                                    sy-dynnr
                                   'CAMPO-DYNPRO'
                           CHANGING lf_valor.


Código: [Seleccionar]

*---------------------------------------------------------------------*
*       FORM SELSCN_leer_valor_de_pantalla                            *
*---------------------------------------------------------------------*
*       Recupera de la pantalla de selección un valor antes de que se *
*       actualice.                                                    *
*---------------------------------------------------------------------*
*  -->  F_REPID -> Nombre del programa, normalmente SY-REPID          *
*  -->  F_DYNNR -> Número de dynpro, normalmente SY-DYNNR             *
*  -->  F_FIELDNAME_IN -> Nombre del campo que pretendemos recuperar  *
*  -->  F_FIELDVALUE -> Valor recuperado                              *
*---------------------------------------------------------------------*
FORM selscn_leer_valor_de_pantalla
                            USING f_repid
                                  f_dynnr
                            value(f_fieldname_in)
                         CHANGING f_fieldvalue.

  DATA: ltab_fields TYPE TABLE OF dynpread.
  DATA: ltab_fields_wa LIKE LINE OF ltab_fields.
  DATA: lc_dyname LIKE sy-repid.
  DATA: lc_dynumb LIKE sy-dynnr.

  ltab_fields_wa-fieldname = f_fieldname_in.
  APPEND ltab_fields_wa TO ltab_fields.

  lc_dyname = f_repid.

  lc_dynumb = f_dynnr.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname     = lc_dyname
      dynumb     = lc_dynumb
    TABLES
      dynpfields = ltab_fields
    EXCEPTIONS
      OTHERS     = 01.

  IF sy-subrc IS INITIAL.
    READ TABLE ltab_fields INDEX 1 INTO ltab_fields_wa.
*-- Return the value from the screen
    IF sy-subrc EQ 0.
      f_fieldvalue = ltab_fields_wa-fieldvalue.
    ENDIF.
  ENDIF.
ENDFORM.                    "SELSCN_leer_valor_de_pantalla


Un saludo.

Desconectado metalgod

  • Usuario Jr
  • **
  • Mensajes: 22
    • Ver Perfil
Re:Recuperar valor de una dynpro
« Respuesta #2 en: 24 de Septiembre de 2013, 02:57:54 pm »
que bueno, muchas gracias por compartir tu codigo, me anduvo a la perfeccion, era lo que justo andaba necesitando ahora, muchas gracias