*&---------------------------------------------------------------------* *& Report zanma_alv_doble. *& *&---------------------------------------------------------------------* REPORT zanma_alv_doble. DATA: ok_code LIKE sy-ucomm, gt_sflight TYPE TABLE OF sflight, it_tabla TYPE TABLE OF scarr, g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1', gv_cont TYPE scrfname VALUE 'MARCO_ALV', grid1 TYPE REF TO cl_gui_alv_grid, gv_grid TYPE REF TO cl_gui_alv_grid, g_custom_container TYPE REF TO cl_gui_custom_container, gv_contenedor TYPE REF TO cl_gui_custom_container. *----------------------------------------------------------------------* * CLASS manejador DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS manejador DEFINITION. PUBLIC SECTION. CLASS-METHODS: manejador_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row. PRIVATE SECTION. ENDCLASS. "manejador DEFINITION *----------------------------------------------------------------------* * CLASS manejador DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS manejador IMPLEMENTATION. METHOD manejador_click. DATA: wa_tabla LIKE LINE OF it_tabla. READ TABLE it_tabla INDEX e_row INTO wa_tabla. SELECT * FROM sflight INTO TABLE gt_sflight WHERE carrid = wa_tabla-carrid. CALL METHOD grid1->refresh_table_display EXCEPTIONS finished = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDMETHOD. "manejador_click ENDCLASS. "manejador IMPLEMENTATION DATA: gv_manejador TYPE REF TO manejador. *---------------------------------------------------------------------* * MAIN * *---------------------------------------------------------------------* START-OF-SELECTION. SELECT * FROM scarr INTO TABLE it_tabla. CALL SCREEN 100. *---------------------------------------------------------------------* * MODULE PBO OUTPUT * *---------------------------------------------------------------------* MODULE pbo OUTPUT. SET PF-STATUS 'MAIN100'. IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING container_name = g_container. CREATE OBJECT grid1 EXPORTING i_parent = g_custom_container. CALL METHOD grid1->set_table_for_first_display EXPORTING i_structure_name = 'SFLIGHT' CHANGING it_outtab = gt_sflight. ENDIF. IF gv_contenedor IS INITIAL. CREATE OBJECT gv_contenedor EXPORTING container_name = gv_cont. CREATE OBJECT gv_grid EXPORTING i_parent = gv_contenedor. CALL METHOD gv_grid->set_table_for_first_display EXPORTING i_structure_name = 'SCARR' CHANGING it_outtab = it_tabla. CREATE OBJECT gv_manejador. SET HANDLER gv_manejador->manejador_click FOR gv_grid. ENDIF. ENDMODULE. "PBO OUTPUT *---------------------------------------------------------------------* * MODULE PAI INPUT * *---------------------------------------------------------------------* MODULE pai INPUT. * to react on oi_custom_events: CALL METHOD cl_gui_cfw=>dispatch. CASE ok_code. WHEN 'EXIT'. PERFORM exit_program. WHEN OTHERS. * do nothing ENDCASE. CLEAR ok_code. ENDMODULE. "PAI INPUT *---------------------------------------------------------------------* * FORM EXIT_PROGRAM * *---------------------------------------------------------------------* FORM exit_program. * CALL METHOD G_CUSTOM_CONTAINER->FREE. * CALL METHOD CL_GUI_CFW=>FLUSH. LEAVE PROGRAM. ENDFORM. "EXIT_PROGRAM