SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation → ABAP − Reference → User Dialogs → Screens → Screen and Screen Elements → Screen Elements - Examples →Screens, HTML Browser
This example demonstrates the encapsulation of the browser controls in a class.
Source Code
REPORT demo_html_browser.
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
PRIVATE SECTION.
TYPES: pict_line(1022) TYPE x,
pict_tab TYPE STANDARD TABLE OF pict_line .
CLASS-DATA pict TYPE pict_tab.
CLASS-METHODS get_pict_tab
IMPORTING
mime_url TYPE csequence
EXPORTING
pict_tab TYPE STANDARD TABLE .
CLASS-METHODS handle_sapevent
FOR EVENT sapevent
OF cl_abap_browser
IMPORTING action.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DATA error_list TYPE cl_abap_browser=>html_table.
data(title) = CONV cl_abap_browser=>title( 'HTML Browser Demo' ).
SET HANDLER handle_sapevent.
get_pict_tab(
EXPORTING
mime_url = '/SAP/PUBLIC/BC/ABAP/Sources/ABAP_Docu_Logo.gif'
IMPORTING
pict_tab = pict ).
data(ext_data) =
VALUE cl_abap_browser=>load_tab( ( name = 'PICT.GIF'
type = 'image'
dref = REF #( pict ) ) ).
data(html_str) =
'<html>' &&
'<body>' &&
'<H1><font SIZE=5 color="#000080">HTML</font></H1>' &&
'<A HREF="http://help.sap.com/">Weblink</A>' &&
'<br><br><A HREF=SAPEVENT:"ActionCode">SAPevent</A>' &&
'<br><br>External Picture:' &&
'<br><br><img src="PICT.GIF" >' &&
'</body>' &&
'</html>'.
cl_abap_browser=>show_html(
EXPORTING
html_string = html_str
title = title
buttons = cl_abap_browser=>navigate_html
format = cl_abap_browser=>landscape
size = cl_abap_browser=>medium
data_table = ext_data
IMPORTING
html_errors = error_list ).
IF error_list IS NOT INITIAL.
LOOP AT error_list ASSIGNING field-symbol(<error>).
<error> = escape( val = <error>
format = cl_abap_format=>e_html_text ).
<error> = <error> && '<br>'.
ENDLOOP.
INSERT '<html><body>' INTO error_list INDEX 1.
APPEND '</body></html>' TO error_list.
cl_abap_browser=>show_html(
EXPORTING
html = error_list
title = 'HTML Validation Errors'
check_html = abap_false
printing = abap_true ).
ENDIF.
REPLACE '<html>'
IN html_str
WITH '<html lang="EN">' &&
'<head>' &&
'<meta name="Demo" content="Test">' &&
'<style type="text/css">' &&
'span.h1 {font-size: 150%; color:#000080; ' &&
'font-weight:bold;}' &&
'</style>' &&
'</head>'.
REPLACE '<H1><font SIZE=5 color="#000080">HTML</font></H1>'
IN html_str
WITH '<p><span class="h1">HTML</span></p>'.
REPLACE 'src="PICT.GIF"'
IN html_str
WITH 'src="PICT.GIF" alt="An example figure"'.
cl_abap_browser=>show_html(
EXPORTING
html_string = html_str
title = title
buttons = cl_abap_browser=>navigate_html
format = cl_abap_browser=>landscape
size = cl_abap_browser=>medium
data_table = ext_data
check_html = abap_true
IMPORTING
html_errors = error_list ).
IF error_list IS INITIAL.
MESSAGE 'No errors in HTML' TYPE 'S'.
ENDIF.
ENDMETHOD.
METHOD handle_sapevent.
DATA msg TYPE string.
msg = `Handling: ` && action.
MESSAGE msg TYPE 'I'.
ENDMETHOD.
METHOD get_pict_tab.
DATA pict_wa TYPE xstring.
DATA length TYPE i.
DATA mime_api TYPE REF TO if_mr_api.
mime_api = cl_mime_repository_api=>get_api( ).
mime_api->get( EXPORTING i_url = mime_url
IMPORTING e_content = pict_wa
EXCEPTIONS OTHERS = 4 ).
IF sy-subrc = 4.
RETURN.
ENDIF.
CLEAR pict_tab.
length = xstrlen( pict_wa ).
WHILE length >= 1022.
APPEND pict_wa(1022) TO pict_tab.
SHIFT pict_wa BY 1022 PLACES LEFT IN BYTE MODE.
length = xstrlen( pict_wa ).
ENDWHILE.
IF length > 0.
APPEND pict_wa TO pict_tab.
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).
Description
The class CL_ABAP_BROWSER encapsulates the use of the class CL_GUI_HTML_VIEWER. The static SHOW_HTML method can be used to display a HTML file in a dialog box. External data, in this case a picture loaded from the MIME Repository, can be passed and displayed. The SAPEVENT events are still passed on and can be handled by the user.