Function实现ALV Table六:页眉页脚

来源:互联网 发布:三国志13自创武将数据 编辑:程序博客网 时间:2024/04/30 15:13
 

ALV提供了两种不同的页眉页脚,一种是简单的页眉,通过参数i_callback_top_of_page.还有另外一种是HTML的页眉页脚,这种页眉页脚可以实现更加多的功能,包括图片,链接等等功能,这种页眉页脚通过参数i_callback_html_top_of_pagei_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