ALV提供了两种不同的页眉页脚,一种是简单的页眉,通过参数i_callback_top_of_page.还有另外一种是HTML的页眉页脚,这种页眉页脚可以实现更加多的功能,包括图片,链接等等功能,这种页眉页脚通过参数i_callback_html_top_of_page和i_callback_html_end_of_list实现。
下面是源代码
TYPE-POOLS slis.
TYPES ty_tab_spfli TYPE spfliOCCURS 0.
START-OF-SELECTION.
PERFORM f_display.
*&---------------------------------------------------------------------*
*& Form f_getdata
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_SPFLI text
*----------------------------------------------------------------------*
FORM f_getdata TABLES pt_spfliTYPE ty_tab_spfli.
SELECT * FROM spfli INTO TABLE pt_spfli.
ENDFORM. "f_getdata
*&---------------------------------------------------------------------*
*& Form f_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_display.
DATA: lt_spfli TYPE ty_tab_spfli,
ls_variant TYPE disvariant.
PERFORM f_getdata TABLES lt_spfli.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'SPFLI'
i_save = 'U'
* i_callback_top_of_page = 'F_TOP_OF_PAGE'
i_callback_html_top_of_page ='F_HTML_TOP_OF_PAGE'
i_callback_html_end_of_list ='F_HTML_END_OF_LIST'
is_variant = ls_variant
TABLES
t_outtab = lt_spfli.
ENDFORM. "f_display
*&---------------------------------------------------------------------*
*& Form f_html_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PR_DOCUMENT text
*----------------------------------------------------------------------*
FORM f_html_top_of_page USINGpr_document TYPE REF TO cl_dd_document.
CALL METHOD pr_document->add_text( text ='Html Top Of Page'
sap_style = cl_dd_document=>heading ).
CALL METHOD pr_document->new_line( ).
CALL METHOD pr_document->add_text( text ='Link'
sap_style = cl_dd_document=>success ).
CALL METHOD pr_document->add_gap( width =10 ).
CALL METHOD pr_document->add_link( name ='163'
url = 'www.163.com'
text = 'netease' ).
ENDFORM. "f_html_top_of_page
*&---------------------------------------------------------------------*
*& Form f_html_end_of_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PR_DOCUMENT text
*----------------------------------------------------------------------*
FORM f_html_end_of_list USINGpr_document TYPE REF TO cl_dd_document.
CALL METHOD pr_document->add_text( text ='Picture' ).
CALL METHOD pr_document->add_gap( width =10 ).
CALL METHOD pr_document->add_picture(picture_id = 'ENJOYSAP_LOGO' ).
ENDFORM. "f_html_end_of_list
*&---------------------------------------------------------------------*
*& Form f_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*FORM f_top_of_page.
* DATA: lt_listheader TYPE slis_t_listheader,
* ls_listheader LIKE LINE OFlt_listheader.
*
* ls_listheader-typ = 'H'.
* ls_listheader-info = 'Xin''s alv HEADER'.
* APPEND ls_listheader TO lt_listheader.
* ls_listheader-typ = 'S'.
* ls_listheader-info = 'Selection'.
* APPEND ls_listheader TO lt_listheader.
* ls_listheader-typ = 'A'.
* ls_listheader-info = 'Action'.
* APPEND ls_listheader TO lt_listheader.
*
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* i_logo = 'ENJOYSAP_LOGO'
* it_list_commentary = lt_listheader.
*ENDFORM. "f_top_of_page