START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
FORM get_data .
SELECT
LIFNR
NAME1
INTO TABLE ti_lfa1
FROM LFA1.
ENDFORM.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
*&---------------------------------------------------------
------------*
*& Form get_data
*&---------------------------------------------------------
------------*
* Metodo para obtner la data que sera llenado en al A
LV.
*----------------------------------------------------------
------------*
FORM get_data .
2. Creación de la dynpro 100 y 200: Crearemos la dynpro 100 donde se mostrara el AVL y
al hacer doble clic en la columna “Código”, enlazara a la dynpro 200, razón por la cual
se crea la dynpro 200.
MODULE CREAR_0100.
PERFORM crear_alvgrid.
ENDMODULE.
3. Crear el ALV.
Método crear_alvgrid.
FORM crear_alvgrid .
IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'CONTENEDOR'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.
IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid
EXPORTING
i_parent = go_container.
container_name = 'CONTENEDOR'(‘CONTENEDOR’ es el
nombre del contenedor creado en la dynpro 100).
lwa_fieldcat-tabname = pi_log.
lwa_fieldcat-fieldname = pi_field.
lwa_fieldcat-edit = pi_edit.
lwa_fieldcat-checkbox = pi_checkbox.
lwa_fieldcat-coltext = pi_texto.
lwa_fieldcat-seltext = pi_texto.
lwa_fieldcat-reptext = pi_texto.
lwa_fieldcat-outputlen = pi_long.
* Implementacion de Metodos.
CLASS gcl_event IMPLEMENTATION.
* Implementacion del metodo doble click
METHOD handle_double_click.
DATA: ltd_read TYPE STANDARD TABLE OF ty_lfa1.
IF e_column EQ 'LIFNR'.
CALL SCREEN '0200'.
ENDIF.
ENDMETHOD.
ENDCLASS.
FORM crear_alvgrid .
IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'CONTENEDOR'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.
IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid
EXPORTING
i_parent = go_container.
START-OF-SELECTION.
PERFORM get_data.
CALL SCREEN '0100'.
END-OF-SELECTION.
5. Programa completo.
*&-----------------------------------------------------------
----------*
*& Report ZALV_GRID_RIVA
*&
*&-----------------------------------------------------------
----------*
*&
*&
*&-----------------------------------------------------------
----------*
REPORT ZALV_GRID_RIVA.
*************************************************************
***
* Declarar la Clase
*************************************************************
***
CLASS gcl_event DEFINITION.
PUBLIC SECTION.
* Metodo double click
METHODS:
handle_double_click
FOR event double_click OF CL_GUI_ALV_GRID
IMPORTING e_row e_column.
ENDCLASS.
* Implementacion de Metodos.
CLASS gcl_event IMPLEMENTATION.
* Implementacion del metodo doble click
METHOD handle_double_click.
DATA: ltd_read TYPE STANDARD TABLE OF ty_lfa1.
DATA: lwa_read TYPE ty_lfa1.
IF e_column EQ 'LIFNR'.
CALL SCREEN '0200'.
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
PERFORM get_data.
CALL SCREEN '0100'.
END-OF-SELECTION.
*&-----------------------------------------------------------
----------*
*& Form get_data
*&-----------------------------------------------------------
----------*
* Metodo para obtner la data que sera llenado en al ALV
.
*------------------------------------------------------------
----------*
FORM get_data .
SELECT
LIFNR
PERFORM crear_alvgrid.
*&-----------------------------------------------------------
----------*
*& Form crear_alvgrid
*&-----------------------------------------------------------
----------*
* text
*------------------------------------------------------------
----------*
* --> p1 text
* <-- p2 text
*------------------------------------------------------------
----------*
FORM crear_alvgrid .
IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'CONTENEDOR'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.
IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid
EXPORTING
i_parent = go_container.
*
*PERFORM set_cat USING 'TABLITA'
* 'CHECK'
* 'Eliminar'
* 10
* 'X'
* 'X'
* CHANGING po_fieldcat.
lwa_fieldcat-tabname = pi_log.
lwa_fieldcat-fieldname = pi_field.
lwa_fieldcat-edit = pi_edit.
lwa_fieldcat-checkbox = pi_checkbox.
lwa_fieldcat-coltext = pi_texto.
lwa_fieldcat-seltext = pi_texto.
lwa_fieldcat-reptext = pi_texto.
lwa_fieldcat-outputlen = pi_long.
6. Resultado