You are on page 1of 5

*&---------------------------------------------------------------------*

*& Report ZOOALV_INT_2_GRIDS


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZOOALV_INT_2_GRIDS.
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED .
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
DATA : I_MARA TYPE TABLE OF TY_MARA .
DATA : WA_MARA TYPE TY_MARA .
DATA : I_MAKT TYPE TABLE OF MAKT .
DATA : WA_MAKT TYPE MAKT .
********BASIC ALV
DATA : ALV_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA : ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA : I_FCAT TYPE LVC_T_FCAT .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
********SEC ALV
DATA : ALV_CONT2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA : ALV_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
DATA : I_FCAT2 TYPE LVC_T_FCAT .
DATA : WA_FCAT2 LIKE LINE OF I_FCAT .
DATA : OBJ TYPE REF TO LCL_EVENT_HANDLER .
*----------------------------------------------------------------------*
*
CLASS LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS : HANDLE_DC_EVENT
FOR EVENT DOUBLE_CLICK
OF CL_GUI_ALV_GRID
IMPORTING E_ROW .
ENDCLASS .
"LCL_EVENT_HANDLER DEFINITION
START-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
IF ALV_CONT IS INITIAL .
perform create_obj .

perform get_data.
PERFORM CREATE_FCAT .
perform display_alv .
CREATE OBJECT OBJ .
SET HANDLER OBJ->HANDLE_DC_EVENT FOR ALV_GRID .
ELSE.
perform create_obj2 .
*** perform get_data.
PERFORM CREATE_FCAT2 .
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 MARA
INTO CORRESPONDING FIELDS OF TABLE I_MARA
UP TO 100 ROWS .
ENDFORM.
" get_data
*&---------------------------------------------------------------------*
*&
Form display_alv
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_alv .
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
CHANGING
IT_OUTTAB
= I_MARA
IT_FIELDCATALOG = I_FCAT.
ENDFORM.
" display_alv
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text

*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'1' .
= 'MATNR' .
'I_MARA' .
= 'MATERIALNO' .
I_FCAT .

WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'2' .
= 'MTART' .
'I_MARA' .
= 'MATERIALTYPE' .
I_FCAT .

WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'3' .
= 'MBRSH' .
'I_MARA' .
= 'IND.SCET' .
I_FCAT .

WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'4' .
= 'MEINS' .
'I_MARA' .
= 'UNITS' .
I_FCAT .

ENDFORM.

" CREATE_FCAT

*&---------------------------------------------------------------------*
*&
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 CREATE_FCAT2
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM CREATE_FCAT2 .
ENDFORM.
" CREATE_FCAT2
*&---------------------------------------------------------------------*
*&
Form display_alv2
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_alv2 .
CALL METHOD ALV_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
*
I_BUFFER_ACTIVE
=
*
I_BYPASSING_BUFFER
=
*
I_CONSISTENCY_CHECK
=
I_STRUCTURE_NAME
= 'MAKT'
*
IS_VARIANT
=
*
I_SAVE
=
*
I_DEFAULT
= 'X'
*
IS_LAYOUT
=
*
IS_PRINT
=
*
IT_SPECIAL_GROUPS
=
*
IT_TOOLBAR_EXCLUDING
=
*
IT_HYPERLINK
=
*
IT_ALV_GRAPHICS
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_ADAPTER
=
CHANGING
IT_OUTTAB
= I_MAKT
*
IT_FIELDCATALOG
=
*
IT_SORT
=
*
IT_FILTER
=
* EXCEPTIONS
*
INVALID_PARAMETER_COMBINATION = 1
*
PROGRAM_ERROR
= 2
*
TOO_MANY_LINES
= 3
*
others
= 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.

" display_alv2

*----------------------------------------------------------------------*
*
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
METHOD HANDLE_DC_EVENT .
READ TABLE I_MARA INTO WA_MARA INDEX E_ROW-INDEX .
SELECT * FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE I_MAKT
WHERE MATNR = WA_MARA-MATNR .
CALL SCREEN 100.
ENDMETHOD .
"HANDLE_DC_EVENT
ENDCLASS .
"LCL_EVENT_HANDLER IMPLEMENTATION

You might also like