10-18-2007 12:56 PM
Hi ,,,
I want to use top-of -page in ALV for Hierarchical Lists.plz give me the right solution or coding for that.plz tell how we can use top-of -page in the ALV of hierarchical list.
10-18-2007 12:59 PM
REPORT YMS_HIERSEQLISTDISPLAY .
----
TYPE-POOLS: slis. " ALV Global types
----
CONSTANTS :
c_x VALUE 'X',
c_gt_vbap TYPE SLIS_TABNAME VALUE 'GT_VBAP',
c_gt_vbak TYPE SLIS_TABNAME VALUE 'GT_VBAK'.
----
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
SELECTION-SCREEN END OF LINE.
----
TYPES :
1st Table
BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln, " Sales document
kunnr TYPE vbak-kunnr, " Sold-to party
netwr TYPE vbak-netwr, " Net Value of the Sales Order
erdat TYPE vbak-erdat, " Creation date
waerk TYPE vbak-waerk, " SD document currency
expand TYPE xfeld,
END OF ty_vbak,
2nd Table
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document
matnr TYPE vbap-matnr, " Material number
netwr TYPE vbap-netwr, " Net Value of the Sales Order
waerk TYPE vbap-waerk, " SD document currency
END OF ty_vbap.
----
DATA :
1st Table
gt_vbak TYPE TABLE OF ty_vbak,
2nd Table
gt_vbap TYPE TABLE OF ty_vbap.
----
INITIALIZATION.
v_1 = 'Maximum of records to read'.
v_2 = 'With ''EXPAND'' field'.
----
START-OF-SELECTION.
Read Sales Document: Header Data
SELECT vbeln kunnr netwr waerk erdat
FROM vbak
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
IF NOT gt_vbak[] IS INITIAL.
Read Sales Document: Item Data
SELECT vbeln posnr matnr netwr waerk
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln.
ENDIF.
PERFORM f_display.
----
Form F_DISPLAY
----
FORM f_display.
Macro definition
DEFINE m_fieldcat.
ls_fieldcat-tabname = &1.
ls_fieldcat-fieldname = &2.
ls_fieldcat-ref_tabname = &3.
ls_fieldcat-cfieldname = &4. " Field with currency unit
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
ls_sort-tabname = &1.
ls_sort-fieldname = &2.
ls_sort-up = c_x.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_layout TYPE slis_layout_alv,
ls_keyinfo TYPE slis_keyinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv," Sort table
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog
ls_layout-group_change_edit = c_x.
ls_layout-colwidth_optimize = c_x.
ls_layout-zebra = c_x.
ls_layout-detail_popup = c_x.
ls_layout-get_selinfos = c_x.
IF p_expand = c_x.
ls_layout-expand_fieldname = 'EXPAND'.
ENDIF.
Build field catalog and sort table
m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.
m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.
m_sort c_gt_vbak 'KUNNR'.
m_sort c_gt_vbap 'NETWR'.
ls_keyinfo-header01 = 'VBELN'.
ls_keyinfo-item01 = 'VBELN'.
ls_keyinfo-item02 = 'POSNR'.
Dipslay Hierarchical list
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
i_tabname_header = c_gt_vbak
i_tabname_item = c_gt_vbap
is_keyinfo = ls_keyinfo
TABLES
t_outtab_header = gt_vbak
t_outtab_item = gt_vbap
EXCEPTIONS
program_error = 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.
ENDFORM. " F_LIST_DISPLAY
----
Form USER_COMMAND *
----
FORM user_command USING i_ucomm TYPE sy-ucomm
is_selfield TYPE slis_selfield. "#EC CALLED
DATA ls_vbak TYPE ty_vbak.
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-tabname.
WHEN c_gt_vbap.
WHEN c_gt_vbak.
READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
IF sy-subrc EQ 0.
Sales order number
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
Display Sales Order
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM.
10-18-2007 1:18 PM
hi..thanx 4 ur rplybt i want 2 9 that how can we display the top-of-page in the hierarchical list of ALV
10-18-2007 1:23 PM
Try this code ,
&----
*& Report Z8AS_PROGRAM_ALV
*&
&----
*&
*&
&----
REPORT Z8AS_PROGRAM_ALV.
TABLES : STKO,STPO,MAKT,MAST.
TYPE-POOLS : SLIS.
DATA : BEGIN OF ISTKO OCCURS 0,
STLNR LIKE STKO-STLNR,
DATUV LIKE STKO-DATUV,
MATNR LIKE MAST-MATNR,
BMENG LIKE STKO-BMENG,
BMEIN LIKE STKO-BMEIN,
END OF ISTKO.
DATA : BEGIN OF ISTPO OCCURS 0,
STLNR LIKE STPO-STLNR,
IDNRK LIKE STPO-IDNRK,
MENGE LIKE STPO-MENGE,
MEINS LIKE STPO-MEINS,
MAKTX LIKE MAKT-MAKTX,
END OF ISTPO.
DATA : BEGIN OF IMAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF IMAKT.
DATA : BEGIN OF IMAST OCCURS 0,
MATNR LIKE MAST-MATNR,
STLNR LIKE MAST-STLNR,
END OF IMAST.
DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WFIELDCAT TYPE SLIS_FIELDCAT_ALV,
ILAYOUT TYPE SLIS_LAYOUT_ALV,
IKEYINFO TYPE SLIS_KEYINFO_ALV,
IEVENT TYPE SLIS_T_EVENT,
WEVENT TYPE SLIS_ALV_EVENT.
PARAMETERS : P_NUM TYPE I .
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM GETHEADERMAT.
PERFORM GET_MAT_DESC.
PERFORM BUILD_FCAT_HEAD.
PERFORM BUILD_FCAT_ITEM.
PERFORM BUILD_KEYINFO.
PERFORM BUILD_EVENT_TAB.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_DATA.
&----
*& Form GETDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETDATA .
SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO
FROM STKO UP TO P_NUM ROWS.
IF NOT ISTKO[] IS INITIAL.
SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO
WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.
ENDIF.
ENDFORM. " GETDATA
&----
*& Form BUILD_FCAT_HEAD
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FCAT_HEAD .
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'STLNR'.
WFIELDCAT-SELTEXT_L = 'BOM no'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'DATUV'.
WFIELDCAT-SELTEXT_L = 'BOM date'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'MATNR'.
WFIELDCAT-SELTEXT_L = 'Header mat no'.
WFIELDCAT-OUTPUTLEN = 18.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'BMENG'.
WFIELDCAT-SELTEXT_L = 'Base qty'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'BMEIN'.
WFIELDCAT-SELTEXT_L = 'UOM'.
WFIELDCAT-OUTPUTLEN = 3.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
ENDFORM. " BUILD_FCAT_HEAD
&----
*& Form BUILD_FCAT_ITEM
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FCAT_ITEM .
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'IDNRK'.
WFIELDCAT-SELTEXT_L = 'Material no'.
*WFIELDCAT-HOTSPOT = 'X'.
WFIELDCAT-OUTPUTLEN = 18.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MAKTX'.
WFIELDCAT-SELTEXT_L = 'Material desc'.
WFIELDCAT-JUST = 'C'.
WFIELDCAT-OUTPUTLEN = 30.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MENGE'.
WFIELDCAT-SELTEXT_L = 'Item qty'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MEINS'.
WFIELDCAT-SELTEXT_L = 'UOM'.
WFIELDCAT-OUTPUTLEN = 3.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
ENDFORM. " BUILD_FCAT_ITEM
&----
*& Form BUILD_KEYINFO
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_KEYINFO .
IKEYINFO-HEADER01 = 'STLNR'.
IKEYINFO-ITEM01 = 'STLNR'.
ENDFORM. " BUILD_KEYINFO
&----
*& Form DISPLAY_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COM'
IS_LAYOUT = ILAYOUT
IT_FIELDCAT = IFIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = IEVENT[]
IT_EVENT_EXIT =
I_TABNAME_HEADER = 'ISTKO'
I_TABNAME_ITEM = 'ISTPO'
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = IKEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = ISTKO
T_OUTTAB_ITEM = ISTPO
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM. " DISPLAY_DATA
&----
*& Form GET_MAT_DESC
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_MAT_DESC .
IF NOT ISTPO[] IS INITIAL.
SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO
WHERE MATNR = ISTPO-IDNRK.
ENDIF.
LOOP AT ISTPO.
READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.
IF SY-SUBRC = 0.
ISTPO-MAKTX = IMAKT-MAKTX.
ENDIF.
MODIFY ISTPO.
ENDLOOP.
ENDFORM. " GET_MAT_DESC
&----
*& Form BUILD_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_LAYOUT .
ILAYOUT-ZEBRA = 'X'.
ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.
*
*CASE PUCOM.
*WHEN '&IC1'.
SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
*ENDCASE.
*
*ENDFORM.
&----
*& Form BUILD_EVENT_TAB
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_EVENT_TAB .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IEVENT
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WEVENT-FORM = 'TOPOFPAGE'.
MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " BUILD_EVENT_TAB
&----
*& Form TOPOFPAGE
&----
text
----
FORM TOPOFPAGE.
DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,
WLISTHEAD TYPE SLIS_LISTHEADER.
WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.
WLISTHEAD-TYP = 'H'.
APPEND WLISTHEAD TO ILISTHEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = ILISTHEAD
I_LOGO = ''
I_END_OF_LIST_GRID =
.
ENDFORM.
&----
*& Form GETHEADERMAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETHEADERMAT .
IF NOT ISTKO[] IS INITIAL.
SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO
WHERE STLNR = ISTKO-STLNR.
ENDIF.
LOOP AT ISTKO.
READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.
IF SY-SUBRC = 0.
ISTKO-MATNR = IMAST-MATNR.
ENDIF.
MODIFY ISTKO.
ENDLOOP.
ENDFORM. " GETHEADERMAT
10-18-2007 1:32 PM
REPORT ZALV2 NO STANDARD PAGE HEADING
MESSAGE-ID ZMSG.
**********************TABLES DECLARATION******************************
TABLES : VBAK, " sales document header data
VBAP. " sales document item data
**********************TYPE POOL DECLARATION***************************
TYPE-POOLS : SLIS.
**********************TYPES DECLARATION*******************************
*TYPES : BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
END OF TY_VBAK.
*
*TYPES : BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
MEINS TYPE VBAP-MEINS,
ZMENG TYPE VBAP-ZMENG,
END OF TY_VBAP.
***********************INTERNAL TABLES********************************
*DATA : IT_VBAK TYPE STANDARD TABLE OF TY_VBAK,
IT_VBAP TYPE STANDARD TABLE OF TY_VBAP,
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
" field catalog internal table
DATA : BEGIN OF IT_VBAK OCCURS 0,
" internal table for sales document header data
VBELN TYPE VBAK-VBELN, " sales document
ERDAT TYPE VBAK-ERDAT,
" date on which document was created
ERNAM TYPE VBAK-ERNAM,
" name of the person who created it
AUART TYPE VBAK-AUART, " sales document type
NETWR TYPE VBAK-NETWR,
" net value of the sales order in document currency
END OF IT_VBAK.
DATA : BEGIN OF IT_VBAP OCCURS 0,
" internal table for sales document item data
VBELN TYPE VBAP-VBELN, " sales document
POSNR TYPE VBAP-POSNR, " sales document item
MATNR TYPE VBAP-MATNR, " material number
MEINS TYPE VBAP-MEINS, " base unit of measure
ZMENG TYPE VBAP-ZMENG, " target quantity in sales units
END OF IT_VBAP.
DATA : TY_FIELDCAT TYPE SLIS_FIELDCAT_ALV, " field catalog type
TY_KEYINFO TYPE SLIS_KEYINFO_ALV. " key information type
***********************VARIABLE DECLARATIONS**************************
DATA : REPID TYPE SY-REPID, " program name
IT_HEADER TYPE SLIS_TABNAME,
" table to store header data
IT_ITEM TYPE SLIS_TABNAME. " table to store item data
***********************SELECTION PARAMETERS***************************
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN.
" mulitple selection inputs for sales document
SELECTION-SCREEN : END OF BLOCK B1.
***********************INITIALIZATION*********************************
REPID = SY-REPID.
" variable having the program name
IT_HEADER = 'IT_VBAK'.
IT_ITEM = 'IT_VBAP'.
CLEAR TY_KEYINFO.
TY_KEYINFO-HEADER01 = 'VBELN'.
" comparing the keys and relating the header and item internal tables
TY_KEYINFO-ITEM01 = 'VBELN'.
TY_KEYINFO-HEADER02 = SPACE.
TY_KEYINFO-ITEM02 = 'POSNR'.
***********************VALIDATION CHECK*******************************
AT SELECTION-SCREEN.
PERFORM VAL_CHK.
" validation check for the input
**********************PROCESSING LOGIC********************************
START-OF-SELECTION.
PERFORM POP_HDR.
" populating the header data
PERFORM POP_ITEM. " populating the item data
PERFORM FIELD_CATALOG.
" mapping all the fields to the field catalog
PERFORM OUTPUT.
" displaying ouput using the function module
&----
*& Form VAL_CHK
&----
text VALIDATION CHECK FOR SALES DOCUMENT
----
--> p1 text
<-- p2 text
----
FORM VAL_CHK .
SELECT VBELN
ERDAT
ERNAM
AUART
NETWR UP TO 1 ROWS
FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'NO HEADER DETAILS EXIST'.
ELSE.
SELECT VBELN
POSNR
MATNR
MEINS
ZMENG
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'NO ITEM DETAILS EXIST'.
ENDIF.
ENDIF.
CLEAR IT_VBAK.
CLEAR IT_VBAP.
ENDFORM. " VAL_CHK
&----
*& Form POP_HDR
&----
text POPULATING THE HEADER DETAILS
----
--> p1 text
<-- p2 text
----
FORM POP_HDR .
SELECT VBELN
ERDAT
ERNAM
AUART
NETWR
FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE VBELN IN S_VBELN.
ENDFORM. " POP_HDR
&----
*& Form POP_ITEM
&----
text POPULATING THE ITEM DETAILS
----
--> p1 text
<-- p2 text
----
FORM POP_ITEM .
SELECT VBELN
POSNR
MATNR
MEINS
ZMENG
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
ENDFORM. " POP_ITEM
&----
*& Form FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM FIELD_CATALOG .
TY_FIELDCAT-TABNAME = 'IT_VBAK'.
TY_FIELDCAT-FIELDNAME = 'VBELN'.
TY_FIELDCAT-SELTEXT_L = 'DOC NO'.
TY_FIELDCAT-COL_POS = 1.
TY_FIELDCAT-OUTPUTLEN = 10.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAK'.
TY_FIELDCAT-FIELDNAME = 'ERDAT'.
TY_FIELDCAT-SELTEXT_L = 'DATE'.
TY_FIELDCAT-COL_POS = 2.
TY_FIELDCAT-OUTPUTLEN = 8.
TY_FIELDCAT-DATATYPE = 'DATS'.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAK'.
TY_FIELDCAT-FIELDNAME = 'ERNAM'.
TY_FIELDCAT-SELTEXT_L = 'NAME'.
TY_FIELDCAT-COL_POS = 3.
TY_FIELDCAT-OUTPUTLEN = 12.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAK'.
TY_FIELDCAT-FIELDNAME = 'AUART'.
TY_FIELDCAT-SELTEXT_L = 'DOC TYPE'.
TY_FIELDCAT-COL_POS = 4.
TY_FIELDCAT-OUTPUTLEN = 4.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAP'.
TY_FIELDCAT-FIELDNAME = 'VBELN'.
TY_FIELDCAT-SELTEXT_L = 'DOC NO'.
TY_FIELDCAT-OUTPUTLEN = 10.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAP'.
TY_FIELDCAT-FIELDNAME = 'POSNR'.
TY_FIELDCAT-SELTEXT_L = 'ITEM'.
TY_FIELDCAT-OUTPUTLEN = 6.
TY_FIELDCAT-DATATYPE = 'NUMC'.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAP'.
TY_FIELDCAT-FIELDNAME = 'MATNR'.
TY_FIELDCAT-SELTEXT_L = 'MAT NO'.
TY_FIELDCAT-OUTPUTLEN = 18.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAP'.
TY_FIELDCAT-FIELDNAME = 'MEINS'.
TY_FIELDCAT-SELTEXT_L = 'UNITS'.
TY_FIELDCAT-OUTPUTLEN = 3.
TY_FIELDCAT-DATATYPE = 'UNIT'.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
TY_FIELDCAT-TABNAME = 'IT_VBAP'.
TY_FIELDCAT-FIELDNAME = 'ZMENG'.
TY_FIELDCAT-SELTEXT_L = 'QUANT'.
TY_FIELDCAT-OUTPUTLEN = 13.
TY_FIELDCAT-DATATYPE = 'QUAN'.
APPEND TY_FIELDCAT TO IT_FIELDCAT.
CLEAR TY_FIELDCAT.
ENDFORM. " FIELD_CATALOG
&----
*& Form OUTPUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM OUTPUT .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER = IT_HEADER
I_TABNAME_ITEM = IT_ITEM
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = TY_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = IT_VBAK
T_OUTTAB_ITEM = IT_VBAP
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM. " OUTPUT