Want top of page in all levels of report...............
TYPE-POOLS: slis .
TABLES : kna1 .
TYPES : BEGIN OF ty_kna1 ,
kunnr TYPE kna1-kunnr ,
name1 TYPE kna1-name1 ,
land1 TYPE kna1-land1 ,
END OF ty_kna1 .
TYPES : BEGIN OF ty_vbak ,
vbeln TYPE vbak-vbeln ,
erdat TYPE vbak-erdat ,
netwr TYPE vbak-netwr ,
END OF ty_vbak .
TYPES : BEGIN OF ty_vbap ,
posnr TYPE vbap-posnr ,
arktx TYPE vbap-arktx ,
werks TYPE vbap-werks ,
END OF ty_vbap .
DATA : x TYPE i .
************************************************************************
* INTERNAL TABLE DECLARATION *
************************************************************************
DATA : t_kna1 TYPE STANDARD TABLE OF ty_kna1 INITIAL SIZE 1 ,
t_vbak TYPE STANDARD TABLE OF ty_vbak INITIAL SIZE 1 ,
t_vbap TYPE STANDARD TABLE OF ty_vbap INITIAL SIZE 1 .
************************************************************************
* WORK AREA DECLARATION *
************************************************************************
DATA : w_kna1 TYPE ty_kna1 ,
w_vbak TYPE ty_vbak ,
w_vbap TYPE ty_vbap .
************************************************************************
* STANDARD TYPE POOL *
************************************************************************
DATA : w_fcat TYPE slis_fieldcat_alv .
DATA : t_fcat TYPE slis_t_fieldcat_alv .
DATA : t_fcat1 TYPE slis_t_fieldcat_alv .
DATA : t_fcat2 TYPE slis_t_fieldcat_alv .
DATA : w_comments TYPE slis_listheader .
DATA: t_comments TYPE slis_t_listheader .
DATA : T_COMMENTS1 TYPE SLIS_T_LISTHEADER .
DATA : T_COMMENTS2 TYPE SLIS_T_LISTHEADER .
DATA : T_COMMENTS3 TYPE SLIS_T_LISTHEADER .
DATA : w_events TYPE slis_alv_event .
DATA : t_events TYPE slis_t_event .
DATA : t_events1 TYPE slis_t_event .
DATA : t_events2 TYPE slis_t_event .
DATA: gt_events type slis_t_event .
DATA :gd_prntparams type slis_print_alv .
************************************************************************
* SYSTEM FIELD TO HOLD CURRENT PROGRAM NAME *
************************************************************************
DATA : v_prog TYPE sy-repid .
v_prog = sy-repid .
************************************************************************
* SELECTIO SCREEN *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .
SELECT-OPTIONS : s_kunnr FOR kna1-kunnr .
SELECTION-SCREEN END OF BLOCK B1 .
************************************************************************
* FIELD CATALOG FOR KNA1-CUSTOMER DATA *
************************************************************************
w_fcat-col_pos = 1 .
w_fcat-fieldname = 'KUNNR '.
w_fcat-seltext_m = 'CUST NO'.
APPEND w_fcat TO t_fcat .
w_fcat-col_pos = 2 .
w_fcat-fieldname = 'NAME1 '.
w_fcat-seltext_m = 'CUST NAME'.
APPEND w_fcat TO t_fcat .
w_fcat-col_pos = 3 .
w_fcat-fieldname = 'LAND1 '.
w_fcat-seltext_m = 'CUST COUNTRY'.
APPEND w_fcat TO t_fcat .
************************************************************************
* FIELD CATALOG FOR VBAK-SALES DATA *
************************************************************************
w_fcat-col_pos = 1.
w_fcat-fieldname = 'VBELN '.
w_fcat-seltext_m = 'ORDER NO'.
APPEND w_fcat TO t_fcat1 .
w_fcat-col_pos = 2 .
w_fcat-fieldname = 'ERDAT '.
w_fcat-seltext_m = 'ORDER DATA'.
APPEND w_fcat TO t_fcat1 .
w_fcat-col_pos = 3.
w_fcat-fieldname = 'NETWR '.
w_fcat-seltext_m = 'NET VALUE'.
APPEND w_fcat TO t_fcat1 .
************************************************************************
* FIELD CATALOG FOR VBAP- SALES ITEM DATA *
************************************************************************
w_fcat-col_pos = 1.
w_fcat-fieldname = 'POSNR '.
w_fcat-seltext_m = 'SALES ITEM '.
APPEND w_fcat TO t_fcat2 .
w_fcat-col_pos = 2.
w_fcat-fieldname = 'ARKTX '.
w_fcat-seltext_m = 'SALES DESC'.
APPEND w_fcat TO t_fcat2 .
w_fcat-col_pos = '3'.
w_fcat-fieldname = 'WERKS '.
w_fcat-seltext_m = 'PLANT'.
APPEND w_fcat TO t_fcat2 .
************************************************************************
* TOP OF PAGE HEADING FOR BASIC LIST *
************************************************************************
w_comments-typ ='H'.
w_comments-info ='CUSTOMER DATA'.
APPEND w_comments TO t_comments .
WRITE : S_KUNNR-LOW TO S_KUNNR-LOW NO-ZERO .
WRITE : S_KUNNR-HIGH TO S_KUNNR-HIGH NO-ZERO .
DATA : A TYPE STRING .
CONCATENATE S_KUNNR-LOW ' TO' S_KUNNR-LOW INTO A SEPARATED BY SPACE .
CLEAR W_COMMENTS .
w_comments-typ ='S'.
w_comments-key ='CUST NO'.
w_comments-info = A .
APPEND w_comments TO t_comments .
************************************************************************
* TOP OF PAGE FOR BASIC LIST *
************************************************************************
w_events-name ='TOP_OF_PAGE'.
w_events-form ='SUB1'.
APPEND w_events TO t_events.
************************************************************************
* DETAIL LIST EVENT *
************************************************************************
w_events-name = 'USER_COMMAND'.
w_events-form = 'SUB2'.
APPEND w_events TO t_events .
************************************************************************
* TOP OF PAGE FOR FIRST DETAIL LIST *
************************************************************************
w_events-name = 'TOP_OF_PAGE'.
w_events-form = 'SUB3'.
APPEND w_events TO t_events1 .
************************************************************************
* TOP OF PAGE FOR SECOND DETAIL LIST *
************************************************************************
w_events-name = 'TOP_OF_PAGE'.
w_events-form = 'SUB4'.
APPEND w_events TO t_events2 .
************************************************************************
* event for second detail list *
************************************************************************
w_events-name = 'USER_COMMAND'.
w_events-form = 'SUB5'.
APPEND w_events TO t_events1 .
W_EVENTS-NAME = 'END_OF_PAGE'.
W_EVENTS-FORM = 'SUB6'.
APPEND W_EVENTS TO T_EVENTS .
************************************************************************
* FETCH DATA FROM KNA1 TABLE *
************************************************************************
SELECT kunnr
name1
land1 FROM kna1 INTO TABLE t_kna1
WHERE kunnr IN s_kunnr .
************************************************************************
* DISPLAY DATA OF KNA1 IN GRID FORMAT *
************************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = v_prog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* i_callback_top_of_page = 'TOP_OF_PAGE'
* i_callback_top_of_page = 'SUB'
* I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = t_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
it_events = t_events
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_kna1
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
*&---------------------------------------------------------------------*
*& Form SUB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub1 .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_comments
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM . "SUBC
************************************************************************
* FIRST DETAILED LIST *
************************************************************************
FORM sub2 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield .
SELECT vbeln
erdat
netwr FROM vbak INTO TABLE t_vbak
WHERE kunnr = rs_selfield-value .
********************************************************************************************************************************************
* READ TABLE IS USED TO DISPLAY CONTENT IN TOP OF PAGE OF DETAIL LIST *
********************************************************************************************************************************************
READ TABLE T_KNA1 INTO W_KNA1 WITH KEY KUNNR = RS_SELFIELD-VALUE .
************************************************************************
* DISPLAY DATA THRU FUNCTION MODULE *
************************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = v_prog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* i_callback_top_of_page = 'TOP_OF_PAGE'
** i_callback_top_of_page = 'SUB'
* I_CALLBACK_HTML_TOP_OF_PAGE = 'top_of_page '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = t_fcat1
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
it_events = t_events1
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_vbak
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
ENDFORM . "SUB1
*&---------------------------------------------------------------------*
*& Form SUB2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM sub3.
REFRESH T_COMMENTS1 .
************************************************************************
* TOP OF PAGE CONTENT FOR FIRST DETAIL LIST *
************************************************************************
CLEAR W_COMMENTS .
W_COMMENTS-TYP = 'H'.
W_COMMENTS-INFO ='LIST OF ORDERS '.
APPEND W_COMMENTS TO T_COMMENTS1 .
CLEAR W_COMMENTS .
WRITE : W_KNA1-KUNNR TO W_KNA1-KUNNR NO-ZERO . "
W_COMMENTS-TYP = 'S'.
W_COMMENTS-KEY = 'SOLD TO PARTY '.
W_COMMENTS-INFO = W_KNA1-KUNNR .
APPEND W_COMMENTS TO T_COMMENTS1 .
CLEAR W_COMMENTS .
W_COMMENTS-TYP = 'S'.
W_COMMENTS-KEY = 'NAME '.
W_COMMENTS-INFO = W_KNA1-KUNNR .
APPEND W_COMMENTS TO T_COMMENTS1 .
CLEAR W_COMMENTS .
W_COMMENTS-TYP = 'S'.
W_COMMENTS-KEY = 'COUNTRY '.
W_COMMENTS-INFO = W_KNA1-LAND1 .
APPEND W_COMMENTS TO T_COMMENTS1 .
CLEAR W_COMMENTS .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_comments1
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM .
FORM sub5 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield .
SELECT POSNR
ARKTX
WERKS FROM VBAP INTO TABLE t_VBAP
WHERE VBELN = rs_selfield-value . "
********************************************************************************************************************************************
* *
********************************************************************************************************************************************
READ TABLE T_vbak INTO W_vbak WITH KEY VBELN = RS_SELFIELD-VALUE .
READ TABLE T_kna1 INTO W_kna1 WITH KEY kunnr = RS_SELFIELD-VALUE .
************************************************************************
* DISPLAY DATA THRU FUNCTION MODULE *
************************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = v_prog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* i_callback_top_of_page = 'TOP_OF_PAGE'
** i_callback_top_of_page = 'SUB'
* I_CALLBACK_HTML_TOP_OF_PAGE = 'top_of_page '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = t_fcat2
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
it_events = t_events2
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_vbap
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
ENDFORM . "SUB1
*&---------------------------------------------------------------------*
*& Form SUB2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM sub4.
REFRESH T_COMMENTS2 . "
************************************************************************
* TOP OF PAGE CONTENT FOR FIRST DETAIL LIST *
************************************************************************
CLEAR W_COMMENTS .
W_COMMENTS-TYP = 'H'.
W_COMMENTS-INFO ='LIST OF sales item data '.
APPEND W_COMMENTS TO T_COMMENTS2 .
CLEAR W_COMMENTS .
write w_vbak-vbeln to w_vbak-vbeln no-ZERO .
W_COMMENTS-TYP = 'S'.
W_COMMENTS-KEY = 'sales doc '. "
W_COMMENTS-INFO = W_vbak-vbeln . "
APPEND W_COMMENTS TO T_COMMENTS2 .
CLEAR W_COMMENTS .
W_COMMENTS-TYP = 'S'.
W_COMMENTS-KEY = 'sales doc date '.
W_COMMENTS-INFO = W_vbak-erdat .
APPEND W_COMMENTS TO T_COMMENTS2.
CLEAR W_COMMENTS .
w_comments-typ = 'S'.
w_comments-key = 'sold to party'.
w_comments-info = w_kna1-kunnr .
APPEND W_COMMENTS TO T_COMMENTS2 .
CLEAR W_COMMENTS .
w_comments-typ = 'S'.
w_comments-key = 'name'.
w_comments-info = w_kna1-name1 .
APPEND W_COMMENTS TO T_COMMENTS2 .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_comments2
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM