Displaying Multiple ALV Reports through program
ALV Report:
- Displaying the header and item details in in two separate ALV reports.
*&---------------------------------------------------------------------*
*& Report ZVB_ALV
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_alv.
TABLES: vbak, vbap.
TYPE-POOLS: slis.
*Data declarations
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
matwa TYPE vbap-matwa,
END OF ty_vbap.
DATA:iw_vbak TYPE ty_vbak,
it_vbak TYPE TABLE OF ty_vbak,
iw_vbap TYPE ty_vbap,
it_vbap TYPE TABLE OF ty_vbap.
DATA:iw_fcat1 TYPE slis_fieldcat_alv,
it_fcat1 TYPE slis_t_fieldcat_alv,
iw_fcat2 TYPE slis_fieldcat_alv,
it_fcat2 TYPE slis_t_fieldcat_alv,
iw_layout TYPE slis_layout_alv.
DATA:iw_header TYPE slis_listheader,
it_header TYPE slis_t_listheader.
*Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_vbak RADIOBUTTON GROUP g1 USER-COMMAND test DEFAULT 'X',
p_vbap RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln MODIF ID a1.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: s_vbeln1 FOR vbap-vbeln MODIF ID a2,
s_posnr FOR vbap-posnr MODIF ID a2.
SELECTION-SCREEN END OF BLOCK b3.
*Displaying selection screen parameters based on Radio button selection
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF p_vbak = 'X' AND screen-group1 = 'A1'.
screen-active = 1.
MODIFY SCREEN.
ELSEIF p_vbap = 'X' AND screen-group1 = 'A2'.
screen-active = 1.
MODIFY SCREEN.
ELSEIF p_vbak = ' ' AND screen-group1 = 'A1'.
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_vbap = ' ' AND screen-group1 = 'A2'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*initialization
INITIALIZATION.
CLEAR: iw_vbak,
iw_vbap,
iw_fcat1,
iw_fcat2.
REFRESH: it_vbak,
it_vbap,
it_fcat1,
it_fcat2.
*Displaying ALV Report Header
FORM top-of-page.
CLEAR:iw_header.
REFRESH:it_header.
IF p_vbak = 'X'.
iw_header-typ = 'H'.
iw_header-infO = 'Sales Document: Header Data'.
ELSEIF p_vbap = 'X'.
iw_header-typ = 'H'.
iw_header-infO = 'Sales Document: Item Data'.
ENDIF.
APPEND iw_header TO it_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM.
START-OF-SELECTION.
iw_layout-zebra = 'X'.
IF p_vbak = 'X'. "Radio button for SO Header details
*Fetch data from VBAK
SELECT vbeln
erdat
ernam
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln.
*Fieldcatalog for ALV1 (VBAK)
iw_fcat1-col_pos = '1'.
iw_fcat1-fieldname = 'VBELN'.
iw_fcat1-seltext_l = 'Sale Order'.
iw_fcat1-outputlen = '10'.
APPEND iw_fcat1 TO it_fcat1.
iw_fcat1-col_pos = '2'.
iw_fcat1-fieldname = 'ERDAT'.
iw_fcat1-seltext_l = 'Creation Date'.
iw_fcat1-outputlen = '15'.
APPEND iw_fcat1 TO it_fcat1.
iw_fcat1-col_pos = '3'.
iw_fcat1-fieldname = 'ERNAM'.
iw_fcat1-seltext_l = 'Created By'.
iw_fcat1-outputlen = '10'.
APPEND iw_fcat1 TO it_fcat1.
*call REUSE_ALV_GRID_DISPLAY2 for VBAP
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = iw_layout
it_fieldcat = it_fcat1
TABLES
t_outtab = it_vbak.
ELSEIF p_vbap = 'X'. "Radio button for SO Item details
*Fetch data from VBAP
SELECT vbeln
posnr
matnr
matwa
FROM vbap
INTO TABLE it_vbap
WHERE vbeln IN s_vbeln1 AND
posnr IN s_posnr.
*Fieldcatalog for ALV2 (VBAP)
iw_fcat2-col_pos = '1'.
iw_fcat2-fieldname = 'VBELN'.
iw_fcat2-seltext_l = 'Sale Order'.
iw_fcat2-outputlen = '10'.
APPEND iw_fcat2 TO it_fcat2.
iw_fcat2-col_pos = '2'.
iw_fcat2-fieldname = 'POSNR'.
iw_fcat2-seltext_l = 'Item Num'.
iw_fcat2-outputlen = '10'.
APPEND iw_fcat2 TO it_fcat2.
iw_fcat2-col_pos = '3'.
iw_fcat2-fieldname = 'MATNR'.
iw_fcat2-seltext_l = 'Material Num'.
iw_fcat2-outputlen = '15'.
APPEND iw_fcat2 TO it_fcat2.
iw_fcat2-col_pos = '4'.
iw_fcat2-fieldname = 'MATWA'.
iw_fcat2-seltext_l = 'Material Entered'.
iw_fcat2-outputlen = '20'.
APPEND iw_fcat2 TO it_fcat2.
* call REUSE_ALV_GRID_DISPLAY2 for VBAP
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = iw_layout
it_fieldcat = it_fcat2
TABLES
t_outtab = it_vbap.
ENDIF.
input:
Output:
Input:
![](https://www.blogger.com/img/transparent.gif)
Output:
Comments
Post a Comment