Lanzar Evento

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • kilofafeure
    Member
    • oct
    • 42

    #1

    Lanzar Evento

    Hola, estoy implementando un formulario mediante la transaccion se80. He creado unos campos a uno de los cuales le he puesto una ayuda de búsqueda. El problema que tengo es que cuando clico en la ayuda, es decir, en la opción escogida no puedo hacer que el evento salte. Esto lo quiero para que cuando el user seleccione una opcion se me rellenen automaticamente otros campos. También he provado kon field__on request, pero n o funciona ya que no es un listbox. Y la ayuda no salta ya que si no es un listbox no se puede introducir un evento...

    ¿Alguna idea de como solucionar esto sin tener que pulsar intro? de manera que sea utomático...muchas gracias!! un saludo!!
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, quieres que al seleccionar una opcion del MatchCode se llenen tbm otros campos de tu dynpro en base al valor que has escogido??
    David Carballido Córdova

    Comentario

    • kilofafeure
      Member
      • oct
      • 42

      #3
      Sí! eso es exactamente lo que quiero hacer.

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Holas, aqui tengo un codigo que puede ayudar:

        Tengo un matchcode el cual debe recuperar el codigo de una nacionalidad de una tabla Z, pero cuando el usuario le haga doble click debe llenar el campo del codigo de nacionalidad y tbm la descripcion de la misma (llenar 2 campos), ahi va el codigo

        En esta primera parte, hay una ayuda de busqueda para el campo zzt_mst_trab-nacio
        Código:
        PROCESS BEFORE OUTPUT.
          MODULE status.
        
        PROCESS AFTER INPUT.
          MODULE valida_cod_tr.
          MODULE user_command.
        
        PROCESS ON VALUE-REQUEST.
          FIELD zzt_mst_trab-nacio MODULE get_val_nacionalidad.
        Ahora veamos el MODULE get_val_nacionalidad
        Código:
        MODULE get_val_nacionalidad INPUT.
        
          DATA: gt_nacionalidad TYPE TABLE OF ty_nacion.
        [COLOR="Blue"]* Rescato todos los codigos de nacionalidades (paico) y sus descripciones (desna)[/COLOR]
          SELECT paico desna
          INTO TABLE gt_nacionalidad
          FROM zztnacion.
        
          CLEAR: ti_match, ti_match[].
        
        [COLOR="Blue"]* Ejecutamos la funcion que permite escoger el valor del codigo[/COLOR]
          CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
            EXPORTING
              retfield        = 'PAICO'
              dynpprog        = sy-repid
              dynpnr          = sy-dynnr
              dynprofield     = 'ZZT_MST_TRAB-NACIO'
              value_org       = 'S'
            TABLES
              value_tab       = gt_nacionalidad
              return_tab      = ti_match
            EXCEPTIONS
              PARAMETER_ERROR = 1
              NO_VALUES_FOUND = 2
              OTHERS          = 3.
        
          IF sy-subrc <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        
        [COLOR="Blue"]* Leemos el codigo escogido[/COLOR]
          READ TABLE ti_match INDEX 1 INTO g_wa_match.
        
        [COLOR="Blue"]* Buscamos la descripcion de la nacionalidad escogida[/COLOR]
            SELECT SINGLE desna
              INTO g_desnatio
                FROM zztnacion
                  WHERE paico EQ g_wa_match-fieldval.
        
        [COLOR="Blue"]* Llenamos una tabla interna con los valores a mandar a la pantalla[/COLOR] 
          CLEAR ti_dynfields.
          g_wa_dynfields-fieldname  = 'ZZT_MST_TRAB-NACIO'.  "Codigo de nacional.
          g_wa_dynfields-fieldvalue = g_wa_match-fieldval.
          g_wa_dynfields-stepl      = 0.
          APPEND g_wa_dynfields TO ti_dynfields.
        
          g_wa_dynfields-fieldname   = 'G_DESNATIO'.               "Campo descripcion
          g_wa_dynfields-fieldvalue = g_desnatio.
          g_wa_dynfields-stepl      = 0.
          APPEND g_wa_dynfields TO ti_dynfields.
        
        [COLOR="Blue"]* Actualizamos los campos del dynpro 210.[/COLOR]
          CALL FUNCTION 'DYNP_VALUES_UPDATE'
            EXPORTING
              DYNAME             = SY-CPROG
              DYNUMB             = SY-DYNNR
            TABLES
              DYNPFIELDS         = ti_dynfields[].
        
          IF SY-SUBRC <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        
        ENDMODULE.                 " get_val_nacionalidad  INPUT
        Con esa rutina se actualizan 2 valores en un dynpro a partir de un solo matchcode, pueden ser mas de 2, solo basta inscribirlos en la tabla interna, espero te pueda servir
        David Carballido Córdova

        Comentario

        • kilofafeure
          Member
          • oct
          • 42

          #5
          Muchas gracias!!! no he podido contestar antes porque he estado fuera...al final conseguí hacer el listbox con el matchcode, pero me falta que me cargue bien los datos...ahora me pongo a probarlo e informo en cuanto lo tenga...muchas gracias otra vez!!

          Comentario

          • kilofafeure
            Member
            • oct
            • 42

            #6
            Pues bueno, ya habia conseguido que me mostrase lo que queria, sin embargo no consigo cargar los campos que quiero...es problema de la funcion DYNP_VALUES_UPDATE. Además me he dado cuenta que me carga bien los cursos pero la tabla (TI_MATCH ) que devuelve la funcion F4IF_INT_TABLE_VALUE_REQUEST me viene vacia, no se que pasa...sigo investigando...un saludo!!

            Comentario

            • kilofafeure
              Member
              • oct
              • 42

              #7
              Pues los datos me los muestra bien pero no hay manera de conseguir que me cargue otros textbox cuando selecciono un curso...he provado poniendole un evento al campo pero no se porque no me lo coge...¿alguna idea? como me comentas DavidXD_XD la tabla me salte de la funcion vacia...desesperacion...

              Comentario

              Trabajando...