Professional Documents
Culture Documents
*& Include ZOOPS_INTERACTIVE_2ALVS_TOP
*&---------------------------------------------------------------------*
CLASS LCL_ABAP DEFINITION DEFERRED .
DATA : I_ZVBAK04 TYPE TABLE OF ZVBAK04.
DATA : WA_ZVBAK04 TYPE ZVBAK04 .
DATA : I_ZVBAP04 TYPE TABLE OF ZVBAP04 .
DATA : WA_ZVBAP04 TYPE ZVBAP04 .
DATA : ALV_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER. "FOR VBAK
DATA : ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA : ALV_CONT2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER. " FOR VBAP
DATA : ALV_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
DATA : OBJ TYPE REF TO LCL_ABAP .
***************************************************************************
" SELECT OPTIONS.
************************************************************************
*&---------------------------------------------------------------------*
*& Include ZOOPS_INTERACTIVE_2ALVS_SEL
*&---------------------------------------------------------------------*
TABLES: ZVBAK04,ZVBAP04.
SELECT-OPTIONS SO_VBELN FOR ZVBAK04-VBELN.
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_ABAP DEFINITION .
PUBLIC SECTION .
METHODS : ZVBAK04_METHOD
FOR EVENT DOUBLE_CLICK
OF CL_GUI_ALV_GRID
IMPORTING E_ROW .
ENDCLASS. "LCL_EVENT_HANDLER DEFINITION
START-OF-SELECTION.
CALL SCREEN 9001. " CREATE TWO CONTAINER
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS '9001'.
SET TITLEBAR 'Sales order'.
IF ALV_CONT IS INITIAL .
PERFORM CREATE_OBJ.
PERFORM GET_DATA.
PERFORM DISPLAY_ALV.
CREATE OBJECT OBJ.
SET HANDLER OBJ->ZVBAK04_METHOD FOR ALV_GRID .
ELSE.
PERFORM CREATE_OBJ2.
PERFORM DISPLAY_ALV2.
ENDIF .
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form create_obj
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CREATE_OBJ.
CREATE OBJECT ALV_CONT
EXPORTING
CONTAINER_NAME = 'ALV_CONT'.
CREATE OBJECT ALV_GRID
EXPORTING
I_PARENT = ALV_CONT. "GIVE CONTAINER INSTANCE
ENDFORM. " create_obj
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA.
SELECT * FROM ZVBAK04
INTO CORRESPONDING FIELDS OF TABLE I_ZVBAK04
WHERE VBELN IN SO_VBELN.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form display_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV .
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'ZVBAK04'
CHANGING
IT_OUTTAB = I_ZVBAK04.
ENDFORM. " display_alv
*&---------------------------------------------------------------------*
*& Form create_obj2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CREATE_OBJ2 .
IF ALV_CONT2 IS INITIAL . "CREATE ONLY FOR FIRST TIME
CREATE OBJECT ALV_CONT2
EXPORTING
CONTAINER_NAME = 'ALV_CONT2'.
CREATE OBJECT ALV_GRID2
EXPORTING
I_PARENT = ALV_CONT2. "GIVE CONTAINER INSTANCE
ENDIF .
ENDFORM. " create_obj2
*&---------------------------------------------------------------------*
*& Form display_alv2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV2 .
CALL METHOD ALV_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'ZVBAP04'
CHANGING
IT_OUTTAB = I_ZVBAP04.
*
ENDFORM. " display_alv2
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_HANDLER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_ABAP IMPLEMENTATION .
METHOD ZVBAK04_METHOD .
CLEAR WA_ZVBAK04.
READ TABLE I_ZVBAK04 INTO WA_ZVBAK04 INDEX E_ROW-INDEX .
SELECT * FROM ZVBAP04
INTO CORRESPONDING FIELDS OF TABLE I_ZVBAP04
WHERE VBELN = WA_ZVBAK04-VBELN .
CALL SCREEN 100.
ENDMETHOD . "HANDLE_DC_EVENT
ENDCLASS . "LCL_EVENT_HANDLER IMPLEMENTATION