sábado, 22 de noviembre de 2014

ALV Orientado a Objetos (OO) On Value Request (Ayuda de búsqueda)

En este post vamos a ver como podemos añadir una ayuda de búsqueda sobre cualquier columna de nuestro ALV OO.

La clase que voy a utilizar para generar el ALV es CL_GUI_ALV_GRID y el evento que vamos a utilizar es ONF4( On Value Request ).
El primer paso es definir el método que va a gestionar este evento dentro de la clase controladora que nos hayamos definido para controlar los diferente eventos dentro del ALV.

CLASS lcl_event_handler DEFINITION.

  PUBLIC SECTION .

    METHODS:

* Ayuda de busqueda
    handle_user_onf4 FOR EVENT onf4 OF cl_gui_alv_grid
      IMPORTING e_fieldname 

                e_fieldvalue 
                es_row_no 
                er_event_data 
                et_bad_cells 
                e_display,

Seguimos definiendo la Implementación del método dentro de la clase.

CLASS lcl_event_handler IMPLEMENTATION .

* Ayuda de búsqueda
  METHOD handle_user_onf4.
    PERFORM handle_user_onf4 USING e_fieldname
                                        e_fieldvalue
                                        es_row_no
                                        er_event_data
                                        et_bad_cells
                                        e_display.
  ENDMETHOD.                    "handle_user_onf4


Una vez tenemos definido e implementado el método que va a cotrolar el evento debemos asociarselo al objeto de la clase cl_gui_alv_grid que hayamos definido para crear el ALV.

*--Registering handler methods to handle ALV Grid events
    SET HANDLER gr_event_handler->handle_user_onf4    FOR gref_alvgrid.


Como último paso debemos indicar al ALV sobre que columnas se va a aplicar el evento. Podemos incluirlo en todas las columnas que necesitemos.

*   Registramos los campos que van a disponer de ayuda de búsqueda personalizada
    REFRESH it_f4.
    l_f4-fieldname  'CHARG'.
    l_f4-register   'X'.
    l_f4-getbefore  space.
    l_f4-chngeafter space.
    APPEND l_f4 TO it_f4.

    CALL METHOD gref_alvgrid->register_f4_for_fields
      EXPORTING
        it_f4 it_f4.


Para generar la ayuda de búsqueda tenemos diferente módulos de funciones como puede ser F4IF_INT_TABLE_VALUE_REQUEST ó HELP_VALUES_GET_WITH_TABLE.

No hay comentarios:

Publicar un comentario