You are on page 1of 3

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

*& Report ZALV_HIER


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZALV_HIER.
TYPE-POOLS : SLIS .
TYPES : BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
END OF TY_VBAK.
TYPES : BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
DATA : I_VBAK TYPE TABLE OF TY_VBAK .
DATA : I_VBAP TYPE TABLE OF TY_VBAP.
DATA : WA_VBAK TYPE TY_VBAK.
DATA : WA_VBAP TYPE TY_VBAP.
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
DATA : KEY TYPE SLIS_KEYINFO_ALV .
START-OF-SELECTION .
PERFORM GET_DATA_VBAK .
PERFORM GET_DATA_VBAP .
PERFORM CREATE_FCAT.
PERFORM CREATE_HIERARCHY.
PERFORM DISPLAY_ALV .
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA_VBAK .
SELECT * FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE I_VBAK
UP TO 100 ROWS .
ENDFORM.
" GET_DATA_VBAK
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*

* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA_VBAP .
IF I_VBAK IS NOT INITIAL .
SELECT * FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE I_VBAP
FOR ALL ENTRIES IN I_VBAK
WHERE VBELN = I_VBAK-VBELN .
ENDIF .
ENDFORM.
" GET_DATA_VBAP
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'1' .
= 'VBELN' .
'I_VBAK' .
= 'Doc.NO' .
I_FCAT .

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

'2' .
= 'VKORG' .
'I_VBAK' .
= 'SalesOrg' .
I_FCAT .

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

'3' .
= 'VTWEG' .
'I_VBAK' .
= 'D.CHANNEL' .
I_FCAT .

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

'4' .
= 'POSNR' .
'I_VBAP' .
= 'ITEM.NO' .
I_FCAT .

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

'5' .
= 'MATNR' .
'I_VBAP' .
= 'MAT.NO' .
I_FCAT .

WA_FCAT-COL_POS = '6' .

WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

= 'NETWR' .
'I_VBAP' .
= 'NET.PRICE' .
I_FCAT .

ENDFORM.
" CREATE_FCAT
*&---------------------------------------------------------------------*
*&
Form CREATE_HIERARCHY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_HIERARCHY .
KEY-HEADER01 = 'VBELN' .
KEY-ITEM01 = 'VBELN' .
ENDFORM.
" CREATE_HIERARCHY
*&---------------------------------------------------------------------*
*&
Form DISPLAY_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
I_TABNAME_HEADER = 'I_VBAK'
I_TABNAME_ITEM
= 'I_VBAP'
IS_KEYINFO
= KEY
TABLES
T_OUTTAB_HEADER
= I_VBAK
T_OUTTAB_ITEM
= I_VBAP.

ENDFORM.

" DISPLAY_ALV

You might also like