Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Custom ALV HTML Header

Former Member
0 Likes
986

I am trying to create a standard header for our company as we are trying increase the development of custom ALV reports. I have the header working, but I am wondering how to convert an internal table to html and display in the header. This is mostly for formatting purposes.

I have included the code i use currently below... i am open to any suggestion.. thanks.


  DATA:        V_EVENT_RECEIVER      TYPE REF TO V_LCL_EVENT_RECEIVER.
  DATA: V_SPLIT            TYPE REF TO CL_GUI_EASY_SPLITTER_CONTAINER,
        O_DOCKINGCONTAINER TYPE REF TO CL_GUI_DOCKING_CONTAINER,
        V_CONTNR_TOP       TYPE REF TO CL_GUI_CONTAINER,
        V_CONTNR_BOT       TYPE REF TO CL_GUI_CONTAINER,
        V_GRID_02          TYPE REF TO CL_GUI_ALV_GRID,
        V_HTML             TYPE REF TO CL_DD_DOCUMENT,
        V_HTML_VIEW        TYPE REF TO CL_GUI_HTML_VIEWER,
        V_TEXT20(255)      TYPE C,
        V_TEXT16(255)      TYPE C.


  IF CL_GUI_ALV_GRID=>OFFLINE( ) IS INITIAL.
*Create a container
    CREATE OBJECT O_DOCKINGCONTAINER
      EXPORTING
        RATIO                       = '95'
      EXCEPTIONS
        CNTL_ERROR                  = 1
        CNTL_SYSTEM_ERROR           = 2
        CREATE_ERROR                = 3
        LIFETIME_ERROR              = 4
        LIFETIME_DYNPRO_DYNPRO_LINK = 5
        OTHERS                      = 6.
*    IF sy-subrc NE 0.
*      MESSAGE i000 WITH text-e01."Error in creating Docking container
*      LEAVE LIST-PROCESSING.
*    ENDIF.
  ENDIF.
  CREATE OBJECT V_SPLIT
       EXPORTING
         PARENT            = O_DOCKINGCONTAINER
          ORIENTATION       = 0
         SASH_POSITION     = 25
         WITH_BORDER       = 1
       EXCEPTIONS
         CNTL_ERROR        = 1
         CNTL_SYSTEM_ERROR = 2
         OTHERS            = 3.
  IF SY-SUBRC NE 0.
*      MESSAGE i000 WITH text-e01."Error in creating Docking container
    LEAVE LIST-PROCESSING.
  ENDIF.
*   Get the containers of the splitter control
  V_CONTNR_TOP = V_SPLIT->TOP_LEFT_CONTAINER.
  V_CONTNR_BOT = V_SPLIT->BOTTOM_RIGHT_CONTAINER.

*   CREATE OBJECT o_alvgrid
  CREATE OBJECT CUSTOM_ALVGRID_1
  EXPORTING
    I_PARENT = O_DOCKINGCONTAINER.

*   Create an instance of alv control
  CREATE OBJECT CUSTOM_ALVGRID_1
  EXPORTING I_PARENT = V_CONTNR_BOT.

*  CREATE OBJECT V_HTML_VIEW
*    EXPORTING
*      PARENT = V_CONTNR_TOP.


*   Object for display of selection parameters in HTML top container
  CREATE OBJECT V_HTML
       EXPORTING
         STYLE = 'ALV_GRID'
         BACKGROUND_COLOR = cl_dd_document=>COL_TEXTAREA.

*   Must be after the SET HANDLER for TOP_OF_PAGE and foreground only
  CALL METHOD CUSTOM_ALVGRID_1->LIST_PROCESSING_EVENTS
    EXPORTING
      I_EVENT_NAME = 'TOP_OF_PAGE'
      I_DYNDOC_ID  = V_HTML.

  CALL METHOD V_HTML->ADD_GAP
    EXPORTING
      WIDTH = 25.

  CALL METHOD V_HTML->ADD_PICTURE
    EXPORTING
      PICTURE_ID       = 'BD_LOGO_TEST'
      WIDTH            = '800'
*        ALTERNATIVE_TEXT =
*        TABINDEX         =
      .

*CALL METHOD V_HTML_VIEW->LOAD_DATA
**  EXPORTING
**    URL                  =
**    TYPE                 = 'text'
**    SUBTYPE              = 'html'
**    SIZE                 = 0
**    ENCODING             =
**    CHARSET              =
**    LANGUAGE             =
**  IMPORTING
**    ASSIGNED_URL         =
*  CHANGING
*    DATA_TABLE           = <ITAB>
*  EXCEPTIONS
*    DP_INVALID_PARAMETER = 1
*    DP_ERROR_GENERAL     = 2
*    CNTL_ERROR           = 3
*    others               = 4
*        .
*IF SY-SUBRC <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
  CALL METHOD V_HTML->NEW_LINE.
** Display Text-016
*    CALL METHOD v_html->add_gap
*                EXPORTING
*                  width         = 10.
*********************************************
  DATA:
    REPID    LIKE V_TEXT16,
    UNAME    LIKE V_TEXT16,
    SYSINFO  LIKE V_TEXT16,
    TITLE    LIKE V_TEXT16,
    MONTH    LIKE V_TEXT16,
    DAY      LIKE V_TEXT16,
    YEAR     LIKE V_TEXT16,
    DATUM    LIKE V_TEXT16,
    UZEIT    LIKE V_TEXT16.

  REPID = SY-REPID.
  TITLE = SY-TITLE.
  YEAR  = SY-DATUM(4).
  MONTH = SY-DATUM+4(2).
  DAY   = SY-DATUM+6(2).
  DATUM = SY-DATUM.
  uname = sy-uname.
  uzeit = sy-uzeit.
  CONCATENATE MONTH DAY YEAR INTO DATUM SEPARATED BY SLASH.
  CONCATENATE '  Run Date:   ' ' ' datum into datum.
  Concatenate '  Run Time:   ' uzeit(2) ':' uzeit+2(2) into uzeit.
  CALL METHOD V_HTML->ADD_GAP EXPORTING WIDTH = 10.
  CALL METHOD V_HTML->ADD_TEXT
    EXPORTING
      TEXT = 'Report Title:'.
  CALL METHOD V_HTML->NEW_LINE.
  CALL METHOD V_HTML->ADD_GAP EXPORTING WIDTH = 10.
  CALL METHOD V_HTML->ADD_TEXT
    EXPORTING
      TEXT = REPID.
  CALL METHOD V_HTML->NEW_LINE.
  CALL METHOD V_HTML->ADD_GAP EXPORTING WIDTH = 10.
  CALL METHOD V_HTML->ADD_TEXT
    EXPORTING
      TEXT = uname.
  CALL METHOD V_HTML->NEW_LINE.
  CALL METHOD V_HTML->ADD_GAP EXPORTING WIDTH = 10.
  CALL METHOD V_HTML->ADD_TEXT
    EXPORTING
      TEXT = uzeit.
  CALL METHOD V_HTML->NEW_LINE.
  CALL METHOD V_HTML->ADD_GAP EXPORTING WIDTH = 10.
  CALL METHOD V_HTML->ADD_TEXT
    EXPORTING
      TEXT = DATUM.
  CALL METHOD V_HTML->NEW_LINE.
*  CALL METHOD V_HTML->ADD_LINK
*    EXPORTING
*     NAME                   = 'TEST'
*       URL                    =
*'http://adweek.blogs.com/photos/uncategorized/bk_birds.jpg'
**      TOOLTIP                =
*      TEXT                   = 'Test'
**      DESTINATION_IN_DOC_SET =
**      DESTINATION_IN_DOC_POS =
**      TABINDEX               =
**      HOTKEY                 =
**   IMPORTING
**      LINK                   =
*      .
  call method v_html->SET_DOCUMENT_BACKGROUND
    EXPORTING
      PICTURE_ID = space.
* Display the data
  CALL METHOD V_HTML->DISPLAY_DOCUMENT
    EXPORTING
      PARENT = V_CONTNR_TOP
      .
*data visible(1) type c.
*
*visible = v_html_view->visible_true.
*
*  CALL METHOD V_HTML_VIEW->SET_VISIBLE
*    EXPORTING
*      VISIBLE = 'Y'.

*   Handle the event
  CALL METHOD CUSTOM_ALVGRID_1->LIST_PROCESSING_EVENTS
    EXPORTING
      I_EVENT_NAME = 'PRINT_TOP_OF_PAGE'.

  CALL METHOD CUSTOM_ALVGRID_1->SET_TABLE_FOR_FIRST_DISPLAY
*    IMPORTING
*       is_variant                    = w_variant
*       i_save                        = c_a
*       is_layout                     = w_layout
    CHANGING
       IT_OUTTAB                     = <ITAB>
       IT_FIELDCATALOG               = GT_FIELDCAT_LVC[]
    EXCEPTIONS
       INVALID_PARAMETER_COMBINATION = 1
       PROGRAM_ERROR                 = 2
       TOO_MANY_LINES                = 3
       OTHERS                        = 4.

  IF SY-SUBRC <> 0.
*    MESSAGE i000 WITH text-e06."Error in ALV report display
    LEAVE LIST-PROCESSING.
  ENDIF.

* Create object
  IF V_EVENT_RECEIVER IS INITIAL.
    CREATE OBJECT V_EVENT_RECEIVER.
  ENDIF.

  SET HANDLER V_EVENT_RECEIVER->HANDLE_PRINT_TOP_OF_PAGE FOR
      CUSTOM_ALVGRID_1.
  SET HANDLER V_EVENT_RECEIVER->HANDLE_TOP_OF_PAGE FOR
      CUSTOM_ALVGRID_1.


1 REPLY 1
Read only

Former Member
0 Likes
514

Hi

An internal table can be converted into an HTML Template using the function Module WWW_HTML_FROM_LISTOBJECT. This will create an HTML template which will be stored in SMW0->(Zero)

Now you can call this template in your header.

Regards,

Vara