Hi Rafael !
Please try this:
(and let me know if i am wrong)
************************************************************************
**** T-Y-P-ES - P-O-O-L-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A *****
************************************************************************
TYPE-POOLS: SLIS. " ALV Global types
************************************************************************
******** T-Y-P-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A ************
************************************************************************
TYPES: BEGIN OF ty_aux,
aux_1 TYPE c LENGTH 50,
aux_2 TYPE i,
END OF ty_aux.
************************************************************************
*DATA: IS_G_A_LAYOUT TYPE SLIS_LAYOUT_ALV. "Layout
************************************************************************
* E-V-E-N-T-S
************************************************************************
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME
VALUE'TOP_OF_PAGE',
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
GT_EVENT TYPE SLIS_T_EVENT,
LS_LINE TYPE SLIS_LISTHEADER,
L_INFO(200) TYPEC.
************************************************************************
* S-O-R-T - T-A-B-L-E-S
************************************************************************
DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_SORT TYPE SLIS_SORTINFO_ALV. "Sort table
************************************************************************
***** I-N-T-E-R-N-A-L T-A-B-L-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A ****
************************************************************************
i_aux TYPE STANDARD TABLE OF ty_aux.
************************************************************************
****** V-A-R-I-A-B-L-E-S D-E-C-L-A-R-A-T-I-O-N A-R-E-A *******
************************************************************************
DATA : V_LAYOUT TYPE SLIS_LAYOUT_ALV,
V_CNT TYPE I,
V_REPID TYPE SYST-REPID,
INITIALIZATION.
V_REPID = SY-REPID.
* ************************************************************************
******** S-T-A-R-T O-F S-E-L-E-C-T-I-O-N ************
************************************************************************
START-OF-SELECTION.
PERFORM GET_DATA. " Perform your query here and put the final data in internal table i_aux.
"You may perform your query using several performs, based on number of tables "you are using.
PERFORM PASS_FIELD_NAME USING FIELDCAT.
PERFORM EVENTTAB_BUILD USING GT_EVENT[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM PASS_DATA_LIST_OUTPUT.
PERFORM TOP_OF_PAGE.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
"Perform your queries....
*&---------------------------------------------------------------------*
*& Form PASS_FIELD_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FIELDCAT text
*----------------------------------------------------------------------*
FORM PASS_FIELD_NAME USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'AUX_1'. "Please remember to pass your field in UPPER CASE only
LS_FIELDCAT-TABNAME = 'I_AUX'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-KEY = 'X'. "Use this if your current field (AUX_1) is a key field.
LS_FIELDCAT-SELTEXT_S = TEXT-001.
LS_FIELDCAT-SELTEXT_M = TEXT-001.
LS_FIELDCAT-SELTEXT_L = TEXT-001. "Here please give the column label for display, by "double clicking on 'TEXT-001.
APPEND LS_FIELDCAT TO P_FIELDCAT.
LS_FIELDCAT-ROW_POS = '01'.
LS_FIELDCAT-COL_POS = V_CNT.
LS_FIELDCAT-FIELDNAME = 'AUX_2'. "Please remember to pass your field in UPPER CASE only
LS_FIELDCAT-TABNAME = 'I_AUX'.
LS_FIELDCAT-DO_SUM = SPACE.
LS_FIELDCAT-OUTPUTLEN = '10'.
LS_FIELDCAT-SELTEXT_S = TEXT-002.
LS_FIELDCAT-SELTEXT_M = TEXT-002.
LS_FIELDCAT-SELTEXT_L = TEXT-002.
APPEND LS_FIELDCAT TO P_FIELDCAT.
*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENT[] text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT .
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALLFUNCTION'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_GT_EVENTS[].
READTABLE P_GT_EVENTS WITHKEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_GT_EVENTS.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form COMMENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM COMMENT_BUILD USING P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-016. "Type the text which you would like to display as Report Header
APPEND LS_LINE TO P_GT_LIST_TOP_OF_PAGE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PASS_DATA_LIST_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PASS_DATA_LIST_OUTPUT .
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
IS_LAYOUT = V_LAYOUT
IT_FIELDCAT = FIELDCAT[]
I_SAVE = 'A'
IT_EVENTS = GT_EVENT
IT_SORT = GT_SORT
TABLES
T_OUTTAB = I_AUX "" -----------> This internal table's content will be finally displayed.
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LEAVE LIST-PROCESSING.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE .
CALLFUNCTION'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
Regards,
Khushboo