‎2005 Dec 27 4:36 PM
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.
‎2005 Dec 27 10:35 PM
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