Blocked ALV Report
Blocked ALV Report:
- It is used to display the multiple tables data in Block format.
*&---------------------------------------------------------------------*
*& Report ZVB_ALV_BLOCK
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_alv_block.
TYPE-POOLS:slis.
TABLES:ekko,ekpo.
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
aedat TYPE ekko-aedat,
lifnr TYPE ekko-lifnr,
END OF ty_ekko,
BEGIN OF ty_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
END OF ty_ekpo.
*Data Declarations
DATA:iw_ekko TYPE ty_ekko,
iw_ekpo TYPE ty_ekpo,
it_ekko TYPE TABLE OF ty_ekko,
it_ekpo TYPE TABLE OF ty_ekpo.
DATA:iw_fcat1 TYPE slis_fieldcat_alv,
it_fCAt1 TYPE slis_t_fieldcat_alv,
iw_layout TYPE slis_layout_alv,
IT_EVENTS TYPE SLIS_T_EVENT,
iw_fcat2 TYPE slis_fieldcat_alv,
it_fCAt2 TYPE slis_t_fieldcat_alv.
*selection screen
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
SELECT ebeln
aedat
lifnr
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN s_ebeln.
IF it_ekko IS NOT INITIAL.
SELECT ebeln
ebelp
menge
meins
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
SORT IT_EKKO BY EBELN.
SORT IT_EKPO BY EBELN.
iw_layout-zebra = 'X'.
*Fieldcatalog for IT_EKKO
iw_fcat1-col_pos = '1'.
iw_fcat1-fieldname = 'EBELN'.
iw_fcat1-seltext_l = 'Purchase Order'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
iw_fcat1-col_pos = '2'.
iw_fcat1-fieldname = 'AEDAT'.
iw_fcat1-seltEXt_l = 'PO creation date'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
iw_fcat1-col_pos = '3'.
iw_fcat1-fieldname = 'LIFNR'.
iw_fcat1-seltEXt_l = 'vendor no'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
*Fieldcatalog for IT_EKPO
iw_fcat2-col_pos = '1'.
iw_fcat2-fieldname = 'EBELN'.
iw_fcat2-seltext_l = 'Purchase Order'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '2'.
iw_fcat2-fieldname = 'EBELP'.
iw_fcat2-seltEXt_l = 'PO Item'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '3'.
iw_fcat2-fieldname = 'MENGE'.
iw_fcat2-seltEXt_l = 'Qunatity'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '4'.
iw_fcat2-fieldname = 'MEINS'.
iw_fcat2-seltEXt_l = 'Units'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
.
*Append IT_EKKO
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = IW_LAYOUT
it_fieldcat = IT_FCAT1
i_tabname = 'IT_EKKO'
it_events = IT_EVENTS
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = IT_EKKO
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*APPEND IT_EKPO
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = IW_LAYOUT
it_fieldcat = IT_FCAT2
i_tabname = 'IT_EKPO'
it_events = IT_EVENTS
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = IT_EKPO
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*Displaying Blocked ALV
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
* I_INTERFACE_CHECK = ' '
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*& Report ZVB_ALV_BLOCK
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_alv_block.
TYPE-POOLS:slis.
TABLES:ekko,ekpo.
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
aedat TYPE ekko-aedat,
lifnr TYPE ekko-lifnr,
END OF ty_ekko,
BEGIN OF ty_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
END OF ty_ekpo.
*Data Declarations
DATA:iw_ekko TYPE ty_ekko,
iw_ekpo TYPE ty_ekpo,
it_ekko TYPE TABLE OF ty_ekko,
it_ekpo TYPE TABLE OF ty_ekpo.
DATA:iw_fcat1 TYPE slis_fieldcat_alv,
it_fCAt1 TYPE slis_t_fieldcat_alv,
iw_layout TYPE slis_layout_alv,
IT_EVENTS TYPE SLIS_T_EVENT,
iw_fcat2 TYPE slis_fieldcat_alv,
it_fCAt2 TYPE slis_t_fieldcat_alv.
*selection screen
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
SELECT ebeln
aedat
lifnr
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN s_ebeln.
IF it_ekko IS NOT INITIAL.
SELECT ebeln
ebelp
menge
meins
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
SORT IT_EKKO BY EBELN.
SORT IT_EKPO BY EBELN.
iw_layout-zebra = 'X'.
*Fieldcatalog for IT_EKKO
iw_fcat1-col_pos = '1'.
iw_fcat1-fieldname = 'EBELN'.
iw_fcat1-seltext_l = 'Purchase Order'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
iw_fcat1-col_pos = '2'.
iw_fcat1-fieldname = 'AEDAT'.
iw_fcat1-seltEXt_l = 'PO creation date'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
iw_fcat1-col_pos = '3'.
iw_fcat1-fieldname = 'LIFNR'.
iw_fcat1-seltEXt_l = 'vendor no'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.
*Fieldcatalog for IT_EKPO
iw_fcat2-col_pos = '1'.
iw_fcat2-fieldname = 'EBELN'.
iw_fcat2-seltext_l = 'Purchase Order'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '2'.
iw_fcat2-fieldname = 'EBELP'.
iw_fcat2-seltEXt_l = 'PO Item'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '3'.
iw_fcat2-fieldname = 'MENGE'.
iw_fcat2-seltEXt_l = 'Qunatity'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
iw_fcat2-col_pos = '4'.
iw_fcat2-fieldname = 'MEINS'.
iw_fcat2-seltEXt_l = 'Units'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
.
*Append IT_EKKO
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = IW_LAYOUT
it_fieldcat = IT_FCAT1
i_tabname = 'IT_EKKO'
it_events = IT_EVENTS
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = IT_EKKO
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*APPEND IT_EKPO
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = IW_LAYOUT
it_fieldcat = IT_FCAT2
i_tabname = 'IT_EKPO'
it_events = IT_EVENTS
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = IT_EKPO
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*Displaying Blocked ALV
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
* I_INTERFACE_CHECK = ' '
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Output:
Comments
Post a Comment