No me salta evento en ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • elena_mr
    Junior Member
    • dic
    • 17

    #1

    No me salta evento en ALV

    Alguien me sabría decir por qué no me entra en el código del form FOTR_XX_MARCAR_CAMBIOS utilizando los siguiente:

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_pf_status_set = 'ALV_STATUS'
    i_callback_user_command = 'USER_COMMAND'
    is_layout = sg_layout
    it_fieldcat = tg_fieldcat[]
    i_save = c_save
    i_grid_settings = sg_grid_settings
    it_events = I_EVENTS
    TABLES
    t_outtab = it_tabla3.

    Donde I_EVENTS sólo tiene 1 línea:
    I_EVENTS-NOMBRE = 'LIST MODIFY'
    I_EVENTS-FORM = 'FOTR_XX_MARCAR_CAMBIOS'

    Teniendo esto, entiendo que se tendría que ir al form indicado cuando modifique alguno de los campos del ALV editable que tengo... pues no lo hace.
    Muchas gracias a todos.
    Elena
  • Mauricio Hidalgo
    Senior Member
    • may
    • 481

    #2
    Lo que sucede es que eso eventos son los que se refieren a los Eventos del programa. TOP-OF-PAGE, END-OF_SELECTION, etc. Y no a eventos propios de la clase cl_gui_alv_grid, como por ejemplo data_changed o data_changed_finished que son los que se gatillan con modificar el dato en la celda del ALV.

    Saludos

    Comentario

    • elena_mr
      Junior Member
      • dic
      • 17

      #3
      Error se pasan demasiados parametros

      Gracias,
      he probado con el evento data_changed, pero ahora me sale un damp al modificar el campo del alv diciendome que le paso demasiados parámetros al método METHOD_DATA_CHANGED, ¿qué parámetro le estoy pasando? pongo el código que tengo:

      FORM F_FORMATEAR_EVENTOS_ALV USING P_EVENTS TYPE SLIS_T_EVENT.
      DATA: L_EVENTS TYPE SLIS_ALV_EVENT.

      CLEAR L_EVENTS.
      L_EVENTS-NAME = 'DATA_CHANGED'.
      L_EVENTS-FORM = 'FOTR_XX_MARCAR_CAMBIOS'.
      APPEND L_EVENTS TO P_EVENTS.
      L_EVENTS-NAME = 'USER_COMMAND'.
      L_EVENTS-FORM = 'USER_COMMAND'.
      APPEND L_EVENTS TO P_EVENTS.
      ENDFORM. " F_FORMATEAR_EVENTOS_ALV

      El call del alv:

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      i_callback_program = sy-repid
      i_callback_pf_status_set = 'ALV_STATUS'
      * i_callback_user_command = 'USER_COMMAND'
      is_layout = sg_layout
      it_fieldcat = tg_fieldcat[]
      i_save = c_save
      i_grid_settings = sg_grid_settings
      it_events = I_EVENTS
      TABLES
      t_outtab = it_tabla3.

      Sé que es complicado, pero gracias de antemano por vuestra ayuda
      Elena

      Comentario

      • Mauricio Hidalgo
        Senior Member
        • may
        • 481

        #4
        DATA_CHANGED es un método que puedes usar sólo con OO.

        Comentario

        Trabajando...